# HG changeset patch # User Roland Schatz # Date 1397649163 -7200 # Node ID ec22234bde0d34bae5dc87c73bc0ade81759f8ee # Parent d5a1206e1923849677fd02d1ae307118a40d3567 Pass more restricted interfaces to ArithmeticLIRLowerable and LocationNode in LIR generation. diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64MemoryPeephole.java --- a/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64MemoryPeephole.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64MemoryPeephole.java Wed Apr 16 13:52:43 2014 +0200 @@ -77,7 +77,7 @@ } protected AMD64AddressValue makeAddress(Access access) { - return (AMD64AddressValue) access.nullCheckLocation().generateAddress(gen, gen.operand(access.object())); + return (AMD64AddressValue) access.nullCheckLocation().generateAddress(gen, gen.getLIRGeneratorTool(), gen.operand(access.object())); } protected Value emitBinaryMemory(AMD64Arithmetic op, boolean commutative, ValueNode x, ValueNode y, Access access) { diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java --- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java Wed Apr 16 13:52:43 2014 +0200 @@ -422,7 +422,7 @@ } else if (node instanceof LIRLowerable) { ((LIRLowerable) node).generate(this); } else if (node instanceof ArithmeticLIRLowerable) { - ((ArithmeticLIRLowerable) node).generate(this); + ((ArithmeticLIRLowerable) node).generate(this, gen); } else { throw GraalInternalError.shouldNotReachHere("node is not LIRLowerable: " + node); } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AndNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AndNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AndNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -81,8 +81,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitAnd(gen.operand(x()), gen.operand(y()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitAnd(builder.operand(x()), builder.operand(y()))); } @Override diff -r d5a1206e1923 -r ec22234bde0d 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 Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatAddNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -65,20 +65,20 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - Value op1 = gen.operand(x()); - Value op2 = gen.operand(y()); - if (!y().isConstant() && !livesLonger(this, y(), gen)) { + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + Value op1 = builder.operand(x()); + Value op2 = builder.operand(y()); + if (!y().isConstant() && !livesLonger(this, y(), builder)) { Value op = op1; op1 = op2; op2 = op; } - gen.setResult(this, gen.getLIRGeneratorTool().emitAdd(op1, op2)); + builder.setResult(this, gen.emitAdd(op1, op2)); } - public static boolean livesLonger(ValueNode after, ValueNode value, NodeLIRBuilderTool gen) { + public static boolean livesLonger(ValueNode after, ValueNode value, NodeMappableLIRBuilder builder) { for (Node usage : value.usages()) { - if (usage != after && usage instanceof ValueNode && gen.hasOperand(((ValueNode) usage))) { + if (usage != after && usage instanceof ValueNode && builder.hasOperand(((ValueNode) usage))) { return true; } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatConvertNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -201,8 +201,8 @@ tool.getLowerer().lower(this, tool); } - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitFloatConvert(op, gen.operand(getInput()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitFloatConvert(op, builder.operand(getInput()))); } public boolean generate(MemoryArithmeticLIRLowerer gen, Access access) { diff -r d5a1206e1923 -r ec22234bde0d 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 Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatDivNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -57,8 +57,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitDiv(gen.operand(x()), gen.operand(y()), null)); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitDiv(builder.operand(x()), builder.operand(y()), null)); } @Override diff -r d5a1206e1923 -r ec22234bde0d 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 Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatMulNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -60,15 +60,15 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - Value op1 = gen.operand(x()); - Value op2 = gen.operand(y()); - if (!y().isConstant() && !FloatAddNode.livesLonger(this, y(), gen)) { + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + Value op1 = builder.operand(x()); + Value op2 = builder.operand(y()); + if (!y().isConstant() && !FloatAddNode.livesLonger(this, y(), builder)) { Value op = op1; op1 = op2; op2 = op; } - gen.setResult(this, gen.getLIRGeneratorTool().emitMul(op1, op2)); + builder.setResult(this, gen.emitMul(op1, op2)); } @Override diff -r d5a1206e1923 -r ec22234bde0d 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 Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatRemNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -57,8 +57,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitRem(gen.operand(x()), gen.operand(y()), null)); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitRem(builder.operand(x()), builder.operand(y()), null)); } @Override diff -r d5a1206e1923 -r ec22234bde0d 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 Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatSubNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -76,8 +76,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitSub(gen.operand(x()), gen.operand(y()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitSub(builder.operand(x()), builder.operand(y()))); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerAddNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerAddNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerAddNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -89,16 +89,16 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - Value op1 = gen.operand(x()); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + Value op1 = builder.operand(x()); assert op1 != null : x() + ", this=" + this; - Value op2 = gen.operand(y()); - if (!y().isConstant() && !FloatAddNode.livesLonger(this, y(), gen)) { + Value op2 = builder.operand(y()); + if (!y().isConstant() && !FloatAddNode.livesLonger(this, y(), builder)) { Value op = op1; op1 = op2; op2 = op; } - gen.setResult(this, gen.getLIRGeneratorTool().emitAdd(op1, op2)); + builder.setResult(this, gen.emitAdd(op1, op2)); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerMulNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerMulNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerMulNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -75,15 +75,15 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - Value op1 = gen.operand(x()); - Value op2 = gen.operand(y()); - if (!y().isConstant() && !FloatAddNode.livesLonger(this, y(), gen)) { + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + Value op1 = builder.operand(x()); + Value op2 = builder.operand(y()); + if (!y().isConstant() && !FloatAddNode.livesLonger(this, y(), builder)) { Value op = op1; op1 = op2; op2 = op; } - gen.setResult(this, gen.getLIRGeneratorTool().emitMul(op1, op2)); + builder.setResult(this, gen.emitMul(op1, op2)); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerSubNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerSubNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerSubNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -117,8 +117,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitSub(gen.operand(x()), gen.operand(y()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitSub(builder.operand(x()), builder.operand(y()))); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/LeftShiftNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/LeftShiftNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/LeftShiftNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -92,7 +92,7 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitShl(gen.operand(x()), gen.operand(y()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitShl(builder.operand(x()), builder.operand(y()))); } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NarrowNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NarrowNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NarrowNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -110,8 +110,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitNarrow(gen.operand(getInput()), getResultBits())); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitNarrow(builder.operand(getInput()), getResultBits())); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NegateNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NegateNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NegateNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -47,7 +47,7 @@ /** * Creates new NegateNode instance. - * + * * @param x the instruction producing the value that is input to this instruction */ public NegateNode(ValueNode x) { @@ -88,7 +88,7 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitNegate(gen.operand(x()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitNegate(builder.operand(x()))); } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NotNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NotNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NotNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -53,7 +53,7 @@ /** * Creates new NegateNode instance. - * + * * @param x the instruction producing the value that is input to this instruction */ public NotNode(ValueNode x) { @@ -73,7 +73,7 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitNot(gen.operand(x()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitNot(builder.operand(x()))); } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/OrNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/OrNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/OrNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -73,8 +73,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitOr(gen.operand(x()), gen.operand(y()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitOr(builder.operand(x()), builder.operand(y()))); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ReinterpretNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ReinterpretNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ReinterpretNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -102,9 +102,9 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - PlatformKind kind = gen.getLIRGeneratorTool().getPlatformKind(stamp()); - gen.setResult(this, gen.getLIRGeneratorTool().emitReinterpret(kind, gen.operand(value()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + PlatformKind kind = gen.getPlatformKind(stamp()); + builder.setResult(this, gen.emitReinterpret(kind, builder.operand(value()))); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/RightShiftNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/RightShiftNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/RightShiftNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -98,7 +98,7 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitShr(gen.operand(x()), gen.operand(y()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitShr(builder.operand(x()), builder.operand(y()))); } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/SignExtendNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/SignExtendNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/SignExtendNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -105,8 +105,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitSignExtend(gen.operand(getInput()), getInputBits(), getResultBits())); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitSignExtend(builder.operand(getInput()), getInputBits(), getResultBits())); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnsignedRightShiftNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnsignedRightShiftNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/UnsignedRightShiftNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -92,7 +92,7 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitUShr(gen.operand(x()), gen.operand(y()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitUShr(builder.operand(x()), builder.operand(y()))); } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/XorNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/XorNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/XorNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -72,8 +72,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitXor(gen.operand(x()), gen.operand(y()))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitXor(builder.operand(x()), builder.operand(y()))); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ZeroExtendNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ZeroExtendNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ZeroExtendNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -85,8 +85,8 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitZeroExtend(gen.operand(getInput()), getInputBits(), getResultBits())); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitZeroExtend(builder.operand(getInput()), getInputBits(), getResultBits())); } @Override diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AddLocationNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AddLocationNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AddLocationNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -107,9 +107,9 @@ } @Override - public Value generateAddress(NodeLIRBuilderTool gen, Value base) { - Value xAddr = getX().generateAddress(gen, base); - return getY().generateAddress(gen, xAddr); + public Value generateAddress(NodeMappableLIRBuilder builder, LIRGeneratorTool gen, Value base) { + Value xAddr = getX().generateAddress(builder, gen, base); + return getY().generateAddress(builder, gen, xAddr); } @NodeIntrinsic diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ComputeAddressNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ComputeAddressNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ComputeAddressNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -49,7 +49,7 @@ @Override public void generate(NodeLIRBuilderTool gen) { - Value addr = getLocation().generateAddress(gen, gen.operand(getObject())); + Value addr = getLocation().generateAddress(gen, gen.getLIRGeneratorTool(), gen.operand(getObject())); gen.setResult(this, addr); } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ConstantLocationNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ConstantLocationNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ConstantLocationNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -65,7 +65,7 @@ } @Override - public Value generateAddress(NodeLIRBuilderTool gen, Value base) { - return gen.getLIRGeneratorTool().emitAddress(base, getDisplacement(), Value.ILLEGAL, 0); + public Value generateAddress(NodeMappableLIRBuilder builder, LIRGeneratorTool gen, Value base) { + return gen.emitAddress(base, getDisplacement(), Value.ILLEGAL, 0); } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -61,7 +61,7 @@ @Override public void generate(NodeLIRBuilderTool gen) { - Value address = location().generateAddress(gen, gen.operand(object())); + Value address = location().generateAddress(gen, gen.getLIRGeneratorTool(), gen.operand(object())); PlatformKind readKind = gen.getLIRGeneratorTool().getPlatformKind(stamp()); gen.setResult(this, gen.getLIRGeneratorTool().emitLoad(readKind, address, this)); } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -96,7 +96,7 @@ } @Override - public Value generateAddress(NodeLIRBuilderTool gen, Value base) { - return gen.getLIRGeneratorTool().emitAddress(base, displacement, gen.operand(getIndex()), getIndexScaling()); + public Value generateAddress(NodeMappableLIRBuilder builder, LIRGeneratorTool gen, Value base) { + return gen.emitAddress(base, displacement, builder.operand(getIndex()), getIndexScaling()); } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LocationNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LocationNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LocationNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -60,5 +60,5 @@ // nothing to do... } - public abstract Value generateAddress(NodeLIRBuilderTool gen, Value base); + public abstract Value generateAddress(NodeMappableLIRBuilder builder, LIRGeneratorTool gen, Value base); } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -54,7 +54,7 @@ @Override public void generate(NodeLIRBuilderTool gen) { - Value address = location().generateAddress(gen, gen.operand(object())); + Value address = location().generateAddress(gen, gen.getLIRGeneratorTool(), gen.operand(object())); PlatformKind readKind = gen.getLIRGeneratorTool().getPlatformKind(stamp()); gen.setResult(this, gen.getLIRGeneratorTool().emitLoad(readKind, address, this)); } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SnippetLocationNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SnippetLocationNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SnippetLocationNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -100,7 +100,7 @@ } @Override - public Value generateAddress(NodeLIRBuilderTool gen, Value base) { + public Value generateAddress(NodeMappableLIRBuilder builder, LIRGeneratorTool gen, Value base) { throw new GraalInternalError("locationIdentity must be a constant so that this node can be canonicalized: " + locationIdentity); } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -44,7 +44,7 @@ @Override public void generate(NodeLIRBuilderTool gen) { - Value address = location().generateAddress(gen, gen.operand(object())); + Value address = location().generateAddress(gen, gen.getLIRGeneratorTool(), gen.operand(object())); // It's possible a constant was forced for other usages so inspect the value directly and // use a constant if it can be directly stored. Value v; diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoweredCompareAndSwapNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoweredCompareAndSwapNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoweredCompareAndSwapNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -73,7 +73,7 @@ @Override public void generate(NodeLIRBuilderTool gen) { - gen.visitCompareAndSwap(this, location().generateAddress(gen, gen.operand(object()))); + gen.visitCompareAndSwap(this, location().generateAddress(gen, gen.getLIRGeneratorTool(), gen.operand(object()))); } public MemoryCheckpoint asMemoryCheckpoint() { diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/ArithmeticLIRLowerable.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/ArithmeticLIRLowerable.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/ArithmeticLIRLowerable.java Wed Apr 16 13:52:43 2014 +0200 @@ -26,5 +26,5 @@ public interface ArithmeticLIRLowerable extends ArithmeticOperation { - void generate(NodeLIRBuilderTool gen); + void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen); } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64FloatConvertNode.java --- a/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64FloatConvertNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.replacements.amd64/src/com/oracle/graal/replacements/amd64/AMD64FloatConvertNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -51,7 +51,7 @@ throw GraalInternalError.shouldNotReachHere(); } - public void generate(NodeLIRBuilderTool gen) { - gen.setResult(this, gen.getLIRGeneratorTool().emitFloatConvert(op, gen.operand(value))); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + builder.setResult(this, gen.emitFloatConvert(op, builder.operand(value))); } } diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.replacements.hsail/src/com/oracle/graal/replacements/hsail/HSAILMathIntrinsicsNode.java --- a/graal/com.oracle.graal.replacements.hsail/src/com/oracle/graal/replacements/hsail/HSAILMathIntrinsicsNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.replacements.hsail/src/com/oracle/graal/replacements/hsail/HSAILMathIntrinsicsNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -53,7 +53,7 @@ /** * Gets the parameter passed to the math operation that this node represents. - * + * * @return the parameter */ public ValueNode getParameter() { @@ -62,7 +62,7 @@ /** * Returns the math operation represented by this node. - * + * * @return the operation */ public HSAILArithmetic operation() { @@ -71,7 +71,7 @@ /** * Creates a new HSAILMathIntrinsicNode. - * + * * @param x the argument to the math operation * @param op the math operation */ @@ -85,30 +85,30 @@ * Generates the LIR instructions for the math operation represented by this node. */ @Override - public void generate(NodeLIRBuilderTool gen) { - Value input = gen.operand(getParameter()); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + Value input = builder.operand(getParameter()); Value result; switch (operation()) { case ABS: - result = gen.getLIRGeneratorTool().emitMathAbs(input); + result = gen.emitMathAbs(input); break; case CEIL: - result = ((HSAILLIRGenerator) (gen.getLIRGeneratorTool())).emitMathCeil(input); + result = ((HSAILLIRGenerator) gen).emitMathCeil(input); break; case FLOOR: - result = ((HSAILLIRGenerator) (gen.getLIRGeneratorTool())).emitMathFloor(input); + result = ((HSAILLIRGenerator) gen).emitMathFloor(input); break; case RINT: - result = ((HSAILLIRGenerator) (gen.getLIRGeneratorTool())).emitMathRint(input); + result = ((HSAILLIRGenerator) gen).emitMathRint(input); break; case SQRT: - result = gen.getLIRGeneratorTool().emitMathSqrt(input); + result = gen.emitMathSqrt(input); break; default: throw GraalInternalError.shouldNotReachHere(); } - gen.setResult(this, result); + builder.setResult(this, result); } /** @@ -136,7 +136,7 @@ /** * Node intrinsic for {@link Math} routines taking a single int parameter. - * + * * @param value * @param op the math operation * @return the result of the operation @@ -146,7 +146,7 @@ /** * Node intrinsic for {@link Math} routines taking a single double parameter. - * + * * @param value the input parameter * @param op the math operation * @return the result of the operation @@ -156,7 +156,7 @@ /** * Node intrinsic for {@link Math} routines taking a single float parameter. - * + * * @param value the input parameter * @param op the math operation * @return the result of the operation @@ -166,10 +166,10 @@ /** * Node intrinsic for {@link Math} routines taking a single double parameter. - * + * * @param value the input parameter * @param op the math operation - * + * * @return the result of the operation */ @NodeIntrinsic diff -r d5a1206e1923 -r ec22234bde0d graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MathIntrinsicNode.java --- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MathIntrinsicNode.java Wed Apr 02 17:53:06 2014 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MathIntrinsicNode.java Wed Apr 16 13:52:43 2014 +0200 @@ -61,35 +61,35 @@ } @Override - public void generate(NodeLIRBuilderTool gen) { - Value input = gen.operand(x()); + public void generate(NodeMappableLIRBuilder builder, ArithmeticLIRGenerator gen) { + Value input = builder.operand(x()); Value result; switch (operation()) { case ABS: - result = gen.getLIRGeneratorTool().emitMathAbs(input); + result = gen.emitMathAbs(input); break; case SQRT: - result = gen.getLIRGeneratorTool().emitMathSqrt(input); + result = gen.emitMathSqrt(input); break; case LOG: - result = gen.getLIRGeneratorTool().emitMathLog(input, false); + result = gen.emitMathLog(input, false); break; case LOG10: - result = gen.getLIRGeneratorTool().emitMathLog(input, true); + result = gen.emitMathLog(input, true); break; case SIN: - result = gen.getLIRGeneratorTool().emitMathSin(input); + result = gen.emitMathSin(input); break; case COS: - result = gen.getLIRGeneratorTool().emitMathCos(input); + result = gen.emitMathCos(input); break; case TAN: - result = gen.getLIRGeneratorTool().emitMathTan(input); + result = gen.emitMathTan(input); break; default: throw GraalInternalError.shouldNotReachHere(); } - gen.setResult(this, result); + builder.setResult(this, result); } public Constant evalConst(Constant... inputs) {