# HG changeset patch # User Doug Simon # Date 1399303623 -7200 # Node ID 97b49458b616bf1f702f97e8435db20d0ad05d38 # Parent c62e120e8cd9f4216d22802e6cb9f395f006049e made FloatRemNode implement Lowerable diff -r c62e120e8cd9 -r 97b49458b616 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Mon May 05 11:34:11 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java Mon May 05 17:27:03 2014 +0200 @@ -203,7 +203,7 @@ boxingSnippets.lower((BoxNode) n, tool); } else if (n instanceof UnboxNode) { boxingSnippets.lower((UnboxNode) n, tool); - } else if (n instanceof DeoptimizeNode || n instanceof UnwindNode) { + } else if (n instanceof DeoptimizeNode || n instanceof UnwindNode || n instanceof FloatRemNode) { /* No lowering, we generate LIR directly for these nodes. */ } else { throw GraalInternalError.shouldNotReachHere("Node implementing Lowerable not handled: " + n); diff -r c62e120e8cd9 -r 97b49458b616 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 Mon May 05 11:34:11 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatRemNode.java Mon May 05 17:27:03 2014 +0200 @@ -31,7 +31,7 @@ import com.oracle.graal.nodes.spi.*; @NodeInfo(shortName = "%") -public final class FloatRemNode extends FloatArithmeticNode implements Canonicalizable { +public class FloatRemNode extends FloatArithmeticNode implements Canonicalizable, Lowerable { public FloatRemNode(Stamp stamp, ValueNode x, ValueNode y, boolean isStrictFP) { super(stamp, x, y, isStrictFP); @@ -57,6 +57,11 @@ } @Override + public void lower(LoweringTool tool) { + tool.getLowerer().lower(this, tool); + } + + @Override public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { builder.setResult(this, gen.emitRem(builder.operand(x()), builder.operand(y()), null)); }