# HG changeset patch # User Christian Wimmer # Date 1385149962 28800 # Node ID 37b166b8f08ee78dccdc740217ae2e560df175d1 # Parent e2933e3d4fb03588ff323a3879385b96a1921176 Reintroduce constructor used by node intrinsics diff -r e2933e3d4fb0 -r 37b166b8f08e 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 Thu Nov 21 16:52:14 2013 -0800 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Fri Nov 22 11:52:42 2013 -0800 @@ -43,6 +43,15 @@ super(object, location, stamp, guard, barrierType, compressible); } + private ReadNode(ValueNode object, ValueNode location, ValueNode guard, BarrierType barrierType, boolean compressible) { + /* + * Used by node intrinsics. Really, you can trust me on that! Since the initial value for + * location is a parameter, i.e., a LocalNode, the constructor cannot use the declared type + * LocationNode. + */ + super(object, location, StampFactory.forNodeIntrinsic(), (GuardingNode) guard, barrierType, compressible); + } + @Override public void generate(LIRGeneratorTool gen) { Value address = location().generateAddress(gen, gen.operand(object()));