# HG changeset patch # User Thomas Wuerthinger # Date 1424298888 -3600 # Node ID 45c90acd813e0238369684c9663ff553f4561633 # Parent fb38e004503cabe2e3e4646505301fb17a0ab0bc Fix startBci for returnBlock and unwindBlock. diff -r fb38e004503c -r 45c90acd813e graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Wed Feb 18 21:55:31 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Wed Feb 18 23:34:48 2015 +0100 @@ -367,6 +367,7 @@ private int blocksNotYetAssignedId; public int returnCount; + private int returnBci; /** * Creates a new BlockMap instance from bytecode of the given method . @@ -465,6 +466,7 @@ case RETURN: { returnCount++; current = null; + returnBci = bci; break; } case ATHROW: { @@ -769,11 +771,15 @@ // Add return block. BciBlock returnBlock = new BciBlock(); + returnBlock.startBci = returnBci; + returnBlock.endBci = returnBci; returnBlock.setId(newBlocks.length - 2); newBlocks[newBlocks.length - 2] = returnBlock; // Add unwind block. ExceptionDispatchBlock unwindBlock = new ExceptionDispatchBlock(); + unwindBlock.startBci = -1; + unwindBlock.endBci = -1; unwindBlock.deoptBci = method.isSynchronized() ? BytecodeFrame.UNWIND_BCI : BytecodeFrame.AFTER_EXCEPTION_BCI; unwindBlock.setId(newBlocks.length - 1); newBlocks[newBlocks.length - 1] = unwindBlock;