# HG changeset patch # User Gilles Duboscq # Date 1382539861 -7200 # Node ID 7cf8b577b6e1d51ca5713b0fe846b4ae404875a7 # Parent eb9ac998b46f0019b7a1dae0e85ba260ee93b825 Fix integer stamp join for downMask/lowerBound diff -r eb9ac998b46f -r 7cf8b577b6e1 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/IntegerStamp.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/IntegerStamp.java Wed Oct 23 15:44:39 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/IntegerStamp.java Wed Oct 23 16:51:01 2013 +0200 @@ -185,7 +185,9 @@ return StampFactory.illegal(Kind.Illegal); } IntegerStamp other = (IntegerStamp) otherStamp; - return createStamp(other, Math.min(upperBound, other.upperBound), Math.max(lowerBound, other.lowerBound), downMask | other.downMask, upMask & other.upMask); + long newDownMask = downMask | other.downMask; + long newLowerBound = Math.max(lowerBound, other.lowerBound) | newDownMask; + return createStamp(other, Math.min(upperBound, other.upperBound), newLowerBound, newDownMask, upMask & other.upMask); } @Override