# HG changeset patch # User Thomas Wuerthinger # Date 1305107024 -7200 # Node ID 8c02ca1e9eb1cbbd755387a797fbf8ce420ddad0 # Parent 0f69be73d5ced82dcb37cf2fa08f17c1a2aadeb5 Fixed bci for stateBefore in BlockBegin diff -r 0f69be73d5ce -r 8c02ca1e9eb1 graal/GraalCompiler/src/com/sun/c1x/ir/BlockBegin.java --- 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 diff -r 0f69be73d5ce -r 8c02ca1e9eb1 graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java --- 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; diff -r 0f69be73d5ce -r 8c02ca1e9eb1 graal/GraalCompiler/src/com/sun/c1x/value/FrameStateAccess.java --- 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(); diff -r 0f69be73d5ce -r 8c02ca1e9eb1 graal/GraalCompiler/src/com/sun/c1x/value/FrameStateBuilder.java --- 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