changeset 19493:45c90acd813e

Fix startBci for returnBlock and unwindBlock.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 18 Feb 2015 23:34:48 +0100
parents fb38e004503c
children c162000dd30c
files graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java
diffstat 1 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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;