graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanForwardNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanForwardNode.java Mon Nov 17 20:38:12 2014
--- new/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanForwardNode.java Mon Nov 17 20:38:12 2014
*** 52,67 ****
--- 52,67 ----
IntegerStamp valueStamp = (IntegerStamp) getValue().stamp();
int min;
int max;
long mask = CodeUtil.mask(valueStamp.getBits());
int firstAlwaysSetBit = scan(valueStamp.downMask() & mask);
+ int firstMaybeSetBit = scan(valueStamp.upMask() & mask);
if (firstAlwaysSetBit == -1) {
int lastMaybeSetBit = BitScanReverseNode.scan(valueStamp.upMask() & mask);
! min = -1;
! min = firstMaybeSetBit;
max = lastMaybeSetBit;
} else {
int firstMaybeSetBit = scan(valueStamp.upMask() & mask);
min = firstMaybeSetBit;
max = firstAlwaysSetBit;
}
return updateStamp(StampFactory.forInteger(Kind.Int, min, max));
}
graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanForwardNode.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File