* src/vm/jit/stack.c (stack_analyse): Use of real PEI data
authorchristian <none@none>
Wed, 16 Aug 2006 12:21:35 +0000 (12:21 +0000)
committerchristian <none@none>
Wed, 16 Aug 2006 12:21:35 +0000 (12:21 +0000)
(op_data[opcode][PEI]) to prevent copy propagation to LOCALVAR with
ICMD_XSTORE instead of just regarding INVOKES as PEI's.

src/vm/jit/stack.c

index 77ebe3d4bce685eabb5c63eeb42a83162b7ad81d..c8a6d4983ec03aa843ec21670161715403ef1363 100644 (file)
@@ -30,7 +30,7 @@
             Christian Thalinger
             Christian Ullrich
 
-   $Id: stack.c 5234 2006-08-14 17:50:12Z christian $
+   $Id: stack.c 5244 2006-08-16 12:21:35Z christian $
 
 */
 
@@ -2940,6 +2940,12 @@ bool stack_analyse(jitdata *jd)
                                while (--len >= 0)  {
                                        opcode = iptr->opc;
 
+                                       /* check if ICMD opcode could throw an exception        */
+                                       /* and if so remember the instruction index in last_pei */
+
+                                       if (op_data[opcode][PEI])
+                                               last_pei = bptr->icount - len - 1;
+
 #if defined(USEBUILTINTABLE)
 # if defined(ENABLE_INTRP)
                                        if (!opt_intrp) {
@@ -4892,7 +4898,7 @@ bool stack_analyse(jitdata *jd)
 
                                        _callhandling:
 
-                                               last_pei = bptr->icount - len - 1;
+/*                                             last_pei = bptr->icount - len - 1; */
 
                                                i = md->paramcount;