# HG changeset patch # User Lukas Stadler # Date 1341588861 -7200 # Node ID 7e397af98eab3e2b4013fa5e4cf8a7dc63c86255 # Parent eca97d497f5d05b0c969c103b75cb10157a16400 fix to float stamps (for NaN constants) diff -r eca97d497f5d -r 7e397af98eab graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/FloatStamp.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/FloatStamp.java Fri Jul 06 17:18:41 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/FloatStamp.java Fri Jul 06 17:34:21 2012 +0200 @@ -38,7 +38,7 @@ protected FloatStamp(Kind kind, double lowerBound, double upperBound, boolean nonNaN) { super(kind); - assert lowerBound <= upperBound; + assert (!nonNaN && Double.isNaN(lowerBound) && Double.isNaN(upperBound)) || lowerBound <= upperBound; this.lowerBound = lowerBound; this.upperBound = upperBound; this.nonNaN = nonNaN; diff -r eca97d497f5d -r 7e397af98eab graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampFactory.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampFactory.java Fri Jul 06 17:18:41 2012 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampFactory.java Fri Jul 06 17:34:21 2012 +0200 @@ -114,7 +114,7 @@ if (value.kind == Kind.Int || value.kind == Kind.Long) { return forInteger(value.kind, value.asLong(), value.asLong(), value.asLong() & IntegerStamp.defaultMask(value.kind)); } else if (value.kind == Kind.Float || value.kind == Kind.Double) { - return forFloat(value.kind, value.asDouble(), value.asDouble(), true); + return forFloat(value.kind, value.asDouble(), value.asDouble(), !Double.isNaN(value.asDouble())); } return forKind(value.kind.stackKind()); }