changeset 2636:8c02ca1e9eb1

Fixed bci for stateBefore in BlockBegin
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 11 May 2011 11:43:44 +0200
parents 0f69be73d5ce
children 152d4a8dc7ad
files graal/GraalCompiler/src/com/sun/c1x/ir/BlockBegin.java graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java graal/GraalCompiler/src/com/sun/c1x/value/FrameStateAccess.java graal/GraalCompiler/src/com/sun/c1x/value/FrameStateBuilder.java
diffstat 4 files changed, 12 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/ir/BlockBegin.java	Wed May 11 11:21:15 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/ir/BlockBegin.java	Wed May 11 11:43:44 2011 +0200
@@ -390,7 +390,8 @@
             }
 
             // copy state because it is modified
-            FrameState duplicate = newState.duplicate();
+            FrameState duplicate = newState.duplicate(bci());
+            assert duplicate.bci == bci() : "duplicate.bci=" + duplicate.bci + " my bci=" + bci();
 
             if (C1XOptions.UseStackMapTableLiveness) {
                 // if a liveness map is available, use it to invalidate dead locals
--- a/graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java	Wed May 11 11:21:15 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java	Wed May 11 11:43:44 2011 +0200
@@ -96,8 +96,8 @@
     /**
      * Gets a copy of this frame state.
      */
-    public FrameState duplicate() {
-        FrameState other = copy();
+    public FrameState duplicate(int bci) {
+        FrameState other = copy(bci);
         other.inputs().setAll(inputs());
         return other;
     }
@@ -449,6 +449,11 @@
         return new FrameState(bci, localsSize, stackSize, locksSize, graph());
     }
 
+
+    private FrameState copy(int newBci) {
+        return new FrameState(newBci, localsSize, stackSize, locksSize, graph());
+    }
+
     @Override
     public String shortName() {
         return "FrameState@" + bci;
--- a/graal/GraalCompiler/src/com/sun/c1x/value/FrameStateAccess.java	Wed May 11 11:21:15 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/value/FrameStateAccess.java	Wed May 11 11:43:44 2011 +0200
@@ -26,7 +26,7 @@
 
 public interface FrameStateAccess {
 
-    FrameState duplicate();
+    FrameState duplicate(int newBci);
 
     int localsSize();
 
--- a/graal/GraalCompiler/src/com/sun/c1x/value/FrameStateBuilder.java	Wed May 11 11:21:15 2011 +0200
+++ b/graal/GraalCompiler/src/com/sun/c1x/value/FrameStateBuilder.java	Wed May 11 11:43:44 2011 +0200
@@ -456,8 +456,8 @@
 
 
     @Override
-    public FrameState duplicate() {
-        return create(-1);
+    public FrameState duplicate(int bci) {
+        return create(bci);
     }
 
     @Override