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());