Mercurial > hg > graal-compiler
changeset 12538:ae36dae46d50
Fix StampTool.unsignedRightShift
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Wed, 23 Oct 2013 11:49:01 +0200 |
parents | c95e11c431b0 |
children | 97f56b7e978e |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampTool.java |
diffstat | 1 files changed, 3 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- 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());