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
basic-graal Cdiff graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanForwardNode.java
graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitScanForwardNode.java
Print this page
*** 52,67 ****
IntegerStamp valueStamp = (IntegerStamp) getValue().stamp();
int min;
int max;
long mask = CodeUtil.mask(valueStamp.getBits());
int firstAlwaysSetBit = scan(valueStamp.downMask() & mask);
if (firstAlwaysSetBit == -1) {
int lastMaybeSetBit = BitScanReverseNode.scan(valueStamp.upMask() & mask);
! min = -1;
max = lastMaybeSetBit;
} else {
- int firstMaybeSetBit = scan(valueStamp.upMask() & mask);
min = firstMaybeSetBit;
max = firstAlwaysSetBit;
}
return updateStamp(StampFactory.forInteger(Kind.Int, min, max));
}
--- 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 = firstMaybeSetBit;
max = lastMaybeSetBit;
} else {
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