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