# HG changeset patch # User Gilles Duboscq # Date 1382521741 -7200 # Node ID ae36dae46d50391e7c27e78869819b2ded1857dd # Parent c95e11c431b079c800b1be481e126f82e7b2add7 Fix StampTool.unsignedRightShift diff -r c95e11c431b0 -r ae36dae46d50 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampTool.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampTool.java Wed Oct 23 13:35:50 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampTool.java Wed Oct 23 11:49:01 2013 +0200 @@ -238,14 +238,15 @@ if (shiftCount != 0) { long lowerBound; long upperBound; + long downMask = value.downMask() >>> shiftCount; if (value.lowerBound() < 0) { - lowerBound = 0; + lowerBound = downMask; upperBound = IntegerStamp.defaultMask(kind) >>> shiftCount; } else { lowerBound = value.lowerBound() >>> shiftCount; upperBound = value.upperBound() >>> shiftCount; } - return new IntegerStamp(kind, lowerBound, upperBound, value.downMask() >>> shiftCount, value.upMask() >>> shiftCount); + return new IntegerStamp(kind, lowerBound, upperBound, downMask, value.upMask() >>> shiftCount); } } long mask = IntegerStamp.upMaskFor(kind, value.lowerBound(), value.upperBound());