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