# HG changeset patch # User Doug Simon # Date 1424344278 -3600 # Node ID 910c4f1006c962381fa840f870bb713096654424 # Parent 71a6d0ba3a49feaee1eff80c115e3c3abdf46297# Parent c162000dd30c48c65d8cc975e04de93ca0a00382 Merge. diff -r 71a6d0ba3a49 -r 910c4f1006c9 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 Thu Feb 19 11:41:13 2015 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Thu Feb 19 12:11:18 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;