# HG changeset patch # User Christian Wimmer # Date 1356557864 28800 # Node ID 8b4940b9be008de2d39bfd7775c54b1e8d8c8445 # Parent 8d9c7a1099670e51c3f635dc95a1f34c9e46cc09 Add constructor for node intrinsic diff -r 8d9c7a109967 -r 8b4940b9be00 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 Dec 26 13:36:41 2012 -0800 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java Wed Dec 26 13:37:44 2012 -0800 @@ -34,7 +34,7 @@ */ public final class ReadNode extends AccessNode implements Node.IterableNodeType, LIRLowerable, Canonicalizable { - public ReadNode(ValueNode object, LocationNode location, Stamp stamp) { + public ReadNode(ValueNode object, ValueNode location, Stamp stamp) { super(object, location, stamp); } @@ -42,6 +42,12 @@ super(object, object.graph().add(new LocationNode(locationIdentity, kind, displacement)), StampFactory.forKind(kind)); } + public ReadNode(ValueNode object, ValueNode location) { + // Used by node intrinsics. Since the initial value for location is a parameter, i.e., a LocalNode, the + // constructor cannot use the declared type LocationNode + this(object, location, StampFactory.forNodeIntrinsic()); + } + @Override public void generate(LIRGeneratorTool gen) { gen.setResult(this, gen.emitLoad(gen.makeAddress(location(), object()), getNullCheck()));