changeset 13120:37b166b8f08e

Reintroduce constructor used by node intrinsics
author Christian Wimmer <christian.wimmer@oracle.com>
date Fri, 22 Nov 2013 11:52:42 -0800
parents e2933e3d4fb0
children a4eb86dc383e
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadNode.java
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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()));