changeset 16453:2824f2d25339

fix for getDisplacementStamp
author Lukas Stadler <lukas.stadler@oracle.com>
date Thu, 10 Jul 2014 14:23:45 +0200
parents 41906973537e
children 973b5704b95d
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java	Thu Jul 10 14:04:52 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java	Thu Jul 10 14:23:45 2014 +0200
@@ -106,7 +106,8 @@
     public IntegerStamp getDisplacementStamp() {
         assert indexScaling > 0 && CodeUtil.isPowerOf2(indexScaling);
         int scale = CodeUtil.log2(indexScaling);
-        return (IntegerStamp) StampTool.add(StampFactory.forInteger(64, displacement, displacement), StampTool.leftShift(index.stamp(), StampFactory.forInteger(64, scale, scale)));
+        return (IntegerStamp) StampTool.add(StampFactory.forInteger(64, displacement, displacement),
+                        StampTool.signExtend(StampTool.leftShift(index.stamp(), StampFactory.forInteger(64, scale, scale)), 64));
     }
 
     @Override