# HG changeset patch # User Lukas Stadler # Date 1404995025 -7200 # Node ID 2824f2d253393e71ef8434f356727530e6616781 # Parent 41906973537e07fc4b894fd830c961796110b86a fix for getDisplacementStamp diff -r 41906973537e -r 2824f2d25339 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java --- 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