* src/vm/jit/sparc64/codegen.c (codegen): Do not generate code for ASTORE
authoredwin <none@none>
Wed, 22 Nov 2006 18:20:58 +0000 (18:20 +0000)
committeredwin <none@none>
Wed, 22 Nov 2006 18:20:58 +0000 (18:20 +0000)
storing a returnAddress, as 1) the store is dead, and 2) the dest.
variable has no valid allocation.

src/vm/jit/sparc64/codegen.c

index 01b3fabab68c2370afad58b180e1271e58570b21..e4396290c324d8ec9ee53b3bad4370c847d9ac90 100644 (file)
@@ -418,7 +418,6 @@ bool codegen(jitdata *jd)
                case ICMD_DLOAD:      /* ...  ==> ..., content of local variable      */
                case ICMD_ISTORE:     /* ..., value  ==> ...                          */
                case ICMD_LSTORE:     /* ..., value  ==> ...                          */
-               case ICMD_ASTORE:     /* ..., value  ==> ...                          */
                case ICMD_FSTORE:     /* ..., value  ==> ...                          */
                case ICMD_DSTORE:     /* ..., value  ==> ...                          */
                case ICMD_COPY:
@@ -427,6 +426,11 @@ bool codegen(jitdata *jd)
                        emit_copy(jd, iptr, VAROP(iptr->s1), VAROP(iptr->dst));
                        break;
        
+               case ICMD_ASTORE:
+                       if (!(iptr->flags.bits & INS_FLAG_RETADDR))
+                               emit_copy(jd, iptr, VAROP(iptr->s1), VAROP(iptr->dst));
+                       break;
+
 
                /* pop/dup/swap operations ********************************************/