comparison graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampTool.java @ 10815:825d37fcdc9e

Bugfix of stamp mask computation
author Christian Wimmer <christian.wimmer@oracle.com>
date Thu, 18 Jul 2013 13:31:08 -0700
parents a4e7a7dc74f3
children ef6915cf1e59
comparison
equal deleted inserted replaced
10814:8b0c8fbbfa1c 10815:825d37fcdc9e
66 if (addOverflow(stamp1.upperBound(), stamp2.upperBound(), kind)) { 66 if (addOverflow(stamp1.upperBound(), stamp2.upperBound(), kind)) {
67 return StampFactory.forKind(kind); 67 return StampFactory.forKind(kind);
68 } 68 }
69 long lowerBound = stamp1.lowerBound() + stamp2.lowerBound(); 69 long lowerBound = stamp1.lowerBound() + stamp2.lowerBound();
70 long upperBound = stamp1.upperBound() + stamp2.upperBound(); 70 long upperBound = stamp1.upperBound() + stamp2.upperBound();
71 long mask = IntegerStamp.maskFor(kind, lowerBound, upperBound) & (stamp1.mask() | stamp2.mask()); 71 long mask = IntegerStamp.maskFor(kind, lowerBound, upperBound);
72 72
73 return StampFactory.forInteger(kind, lowerBound, upperBound, mask); 73 return StampFactory.forInteger(kind, lowerBound, upperBound, mask);
74 } 74 }
75 75
76 public static Stamp sub(IntegerStamp stamp1, IntegerStamp stamp2) { 76 public static Stamp sub(IntegerStamp stamp1, IntegerStamp stamp2) {