Mercurial > hg > truffle
changeset 20066:171b650a46ee
Fix for succeeding stamps of IntegerLessThanNode.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sun, 29 Mar 2015 18:59:59 +0200 |
parents | a21dd6860791 |
children | 745e0fbcbdaf |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerLessThanNode.java |
diffstat | 1 files changed, 10 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerLessThanNode.java Sun Mar 29 18:57:14 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerLessThanNode.java Sun Mar 29 18:59:59 2015 +0200 @@ -137,11 +137,11 @@ // x < y long xUpperBound = xStamp.upperBound(); long yUpperBound = yStamp.upperBound(); - if (yUpperBound <= xUpperBound) { - if (yUpperBound != CodeUtil.minValue(bits)) { - yUpperBound--; - } - return new IntegerStamp(bits, xStamp.lowerBound(), yUpperBound, xStamp.downMask(), xStamp.upMask()); + if (yUpperBound == CodeUtil.minValue(bits)) { + return null; + } else if (yUpperBound <= xUpperBound) { + assert yUpperBound != CodeUtil.minValue(bits); + return new IntegerStamp(bits, xStamp.lowerBound(), yUpperBound - 1, xStamp.downMask(), xStamp.upMask()); } } } @@ -170,11 +170,11 @@ // y > x long xLowerBound = xStamp.lowerBound(); long yLowerBound = yStamp.lowerBound(); - if (xLowerBound >= yLowerBound) { - if (xLowerBound != CodeUtil.maxValue(bits)) { - xLowerBound++; - } - return new IntegerStamp(bits, xLowerBound, yStamp.upperBound(), yStamp.downMask(), yStamp.upMask()); + if (xLowerBound == CodeUtil.maxValue(bits)) { + return null; + } else if (xLowerBound >= yLowerBound) { + assert xLowerBound != CodeUtil.maxValue(bits); + return new IntegerStamp(bits, xLowerBound + 1, yStamp.upperBound(), yStamp.downMask(), yStamp.upMask()); } } }