# HG changeset patch # User Lukas Stadler # Date 1305883863 -7200 # Node ID 55f1db570dfac05d274f8bef74a2bfae816fdb3d # Parent 49a8790b85a22618a832575c5d5ae043d99473dd# Parent 6e3cc55cf54e7cea7a954d112da4623fd48a7219 merge diff -r 6e3cc55cf54e -r 55f1db570dfa graal/GraalCompiler/src/com/sun/c1x/graph/BlockMap.java --- a/graal/GraalCompiler/src/com/sun/c1x/graph/BlockMap.java Fri May 20 11:15:55 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/graph/BlockMap.java Fri May 20 11:31:03 2011 +0200 @@ -329,6 +329,18 @@ } } + public static boolean canTrap(int opcode) { + switch (opcode) { + case INVOKESTATIC: + case INVOKESPECIAL: + case INVOKEVIRTUAL: + case INVOKEINTERFACE: { + return true; + } + } + return false; + } + private Block makeBlock(int startBci) { Block oldBlock = blockMap[startBci]; if (oldBlock == null) { diff -r 6e3cc55cf54e -r 55f1db570dfa graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java --- a/graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java Fri May 20 11:15:55 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/value/FrameState.java Fri May 20 11:31:03 2011 +0200 @@ -225,7 +225,7 @@ * @param i the index into the locals * @return the instruction that produced the value for the specified local */ - public final Value localAt(int i) { + public Value localAt(int i) { assert i < localsSize : "local variable index out of range: " + i; return (Value) inputs().get(i); } @@ -236,7 +236,7 @@ * @param i the index into the stack, with {@code 0} being the bottom of the stack * @return the instruction at the specified position in the stack */ - public final Value stackAt(int i) { + public Value stackAt(int i) { assert i >= 0 && i < (localsSize + stackSize); return (Value) inputs().get(localsSize + i); } @@ -246,7 +246,7 @@ * @param i the index into the lock stack * @return the instruction which produced the object at the specified location in the lock stack */ - public final Value lockAt(int i) { + public Value lockAt(int i) { assert i >= 0; return (Value) inputs().get(localsSize + stackSize + i); } @@ -295,7 +295,7 @@ * @param i a value in the range {@code [0 .. valuesSize()]} * @return the value at index {@code i} which may be {@code null} */ - public final Value valueAt(int i) { + public Value valueAt(int i) { assert i < (localsSize + stackSize); return (Value) inputs().get(i); } @@ -308,7 +308,7 @@ * * @return the number of local variables in this frame */ - public final int valuesSize() { + public int valuesSize() { return localsSize + stackSize; } @@ -405,7 +405,7 @@ * * @param proc the call back called to process each live value traversed */ - public final void forEachLiveStateValue(ValueProcedure proc) { + public void forEachLiveStateValue(ValueProcedure proc) { for (int i = 0; i < valuesSize(); i++) { Value value = valueAt(i); if (value != null) { diff -r 6e3cc55cf54e -r 55f1db570dfa graal/GraalGraph/src/com/oracle/graal/graph/Graph.java --- a/graal/GraalGraph/src/com/oracle/graal/graph/Graph.java Fri May 20 11:15:55 2011 +0200 +++ b/graal/GraalGraph/src/com/oracle/graal/graph/Graph.java Fri May 20 11:31:03 2011 +0200 @@ -56,11 +56,11 @@ public Root root() { return root; } - + public NodeBitMap createNodeBitMap() { return new NodeBitMap(); } - + public NodeMap createNodeMap() { return new NodeMap(); }