# HG changeset patch # User Roland Schatz # Date 1380718657 -7200 # Node ID ee88780346a4eb11944a54d53c1cd659a49ad586 # Parent cdff87c89c5f972832c69466d9d5ba7ba6b24294 Fix bug in constant folding. diff -r cdff87c89c5f -r ee88780346a4 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatAddNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatAddNode.java Wed Oct 02 13:28:17 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatAddNode.java Wed Oct 02 14:57:37 2013 +0200 @@ -37,10 +37,10 @@ public Constant evalConst(Constant... inputs) { assert inputs.length == 2; if (kind() == Kind.Float) { - return Constant.forFloat(x().asConstant().asFloat() + y().asConstant().asFloat()); + return Constant.forFloat(inputs[0].asFloat() + inputs[1].asFloat()); } else { assert kind() == Kind.Double; - return Constant.forDouble(x().asConstant().asDouble() + y().asConstant().asDouble()); + return Constant.forDouble(inputs[0].asDouble() + inputs[1].asDouble()); } } diff -r cdff87c89c5f -r ee88780346a4 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatDivNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatDivNode.java Wed Oct 02 13:28:17 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatDivNode.java Wed Oct 02 14:57:37 2013 +0200 @@ -37,10 +37,10 @@ public Constant evalConst(Constant... inputs) { assert inputs.length == 2; if (kind() == Kind.Float) { - return Constant.forFloat(x().asConstant().asFloat() / y().asConstant().asFloat()); + return Constant.forFloat(inputs[0].asFloat() / inputs[1].asFloat()); } else { assert kind() == Kind.Double; - return Constant.forDouble(x().asConstant().asDouble() / y().asConstant().asDouble()); + return Constant.forDouble(inputs[0].asDouble() / inputs[1].asDouble()); } } diff -r cdff87c89c5f -r ee88780346a4 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatMulNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatMulNode.java Wed Oct 02 13:28:17 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatMulNode.java Wed Oct 02 14:57:37 2013 +0200 @@ -37,10 +37,10 @@ public Constant evalConst(Constant... inputs) { assert inputs.length == 2; if (kind() == Kind.Float) { - return Constant.forFloat(x().asConstant().asFloat() * y().asConstant().asFloat()); + return Constant.forFloat(inputs[0].asFloat() * inputs[1].asFloat()); } else { assert kind() == Kind.Double; - return Constant.forDouble(x().asConstant().asDouble() * y().asConstant().asDouble()); + return Constant.forDouble(inputs[0].asDouble() * inputs[1].asDouble()); } } diff -r cdff87c89c5f -r ee88780346a4 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatRemNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatRemNode.java Wed Oct 02 13:28:17 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatRemNode.java Wed Oct 02 14:57:37 2013 +0200 @@ -37,10 +37,10 @@ public Constant evalConst(Constant... inputs) { assert inputs.length == 2; if (kind() == Kind.Float) { - return Constant.forFloat(x().asConstant().asFloat() % y().asConstant().asFloat()); + return Constant.forFloat(inputs[0].asFloat() % inputs[1].asFloat()); } else { assert kind() == Kind.Double; - return Constant.forDouble(x().asConstant().asDouble() % y().asConstant().asDouble()); + return Constant.forDouble(inputs[0].asDouble() % inputs[1].asDouble()); } } diff -r cdff87c89c5f -r ee88780346a4 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatSubNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatSubNode.java Wed Oct 02 13:28:17 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatSubNode.java Wed Oct 02 14:57:37 2013 +0200 @@ -37,10 +37,10 @@ public Constant evalConst(Constant... inputs) { assert inputs.length == 2; if (kind() == Kind.Float) { - return Constant.forFloat(x().asConstant().asFloat() - y().asConstant().asFloat()); + return Constant.forFloat(inputs[0].asFloat() - inputs[1].asFloat()); } else { assert kind() == Kind.Double; - return Constant.forDouble(x().asConstant().asDouble() - y().asConstant().asDouble()); + return Constant.forDouble(inputs[0].asDouble() - inputs[1].asDouble()); } }