changeset 22463:457474423f92

Allow subclasses
author Christian Wimmer <christian.wimmer@oracle.com>
date Fri, 14 Aug 2015 17:28:00 -0700
parents f64298cbfd16
children 453c458c711e
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/memory/ReadNode.java graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/memory/WriteNode.java
diffstat 2 files changed, 13 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/memory/ReadNode.java	Fri Aug 14 17:27:40 2015 -0700
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/memory/ReadNode.java	Fri Aug 14 17:28:00 2015 -0700
@@ -40,7 +40,7 @@
  * Reads an {@linkplain FixedAccessNode accessed} value.
  */
 @NodeInfo(nameTemplate = "Read#{p#location/s}")
-public final class ReadNode extends FloatableAccessNode implements LIRLowerable, Canonicalizable, Virtualizable, GuardingNode {
+public class ReadNode extends FloatableAccessNode implements LIRLowerable, Canonicalizable, Virtualizable, GuardingNode {
 
     public static final NodeClass<ReadNode> TYPE = NodeClass.create(ReadNode.class);
 
@@ -53,7 +53,12 @@
     }
 
     public ReadNode(AddressNode address, LocationIdentity location, Stamp stamp, GuardingNode guard, BarrierType barrierType, boolean nullCheck, FrameState stateBefore) {
-        super(TYPE, address, location, stamp, guard, barrierType, nullCheck, stateBefore);
+        this(TYPE, address, location, stamp, guard, barrierType, nullCheck, stateBefore);
+    }
+
+    protected ReadNode(NodeClass<? extends ReadNode> c, AddressNode address, LocationIdentity location, Stamp stamp, GuardingNode guard, BarrierType barrierType, boolean nullCheck,
+                    FrameState stateBefore) {
+        super(c, address, location, stamp, guard, barrierType, nullCheck, stateBefore);
     }
 
     public ReadNode(AddressNode address, LocationIdentity location, ValueNode guard, BarrierType barrierType) {
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/memory/WriteNode.java	Fri Aug 14 17:27:40 2015 -0700
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/memory/WriteNode.java	Fri Aug 14 17:28:00 2015 -0700
@@ -38,7 +38,7 @@
  * Writes a given {@linkplain #value() value} a {@linkplain FixedAccessNode memory location}.
  */
 @NodeInfo(nameTemplate = "Write#{p#location/s}")
-public final class WriteNode extends AbstractWriteNode implements LIRLowerable, Simplifiable, Virtualizable {
+public class WriteNode extends AbstractWriteNode implements LIRLowerable, Simplifiable, Virtualizable {
 
     public static final NodeClass<WriteNode> TYPE = NodeClass.create(WriteNode.class);
 
@@ -55,7 +55,11 @@
     }
 
     public WriteNode(AddressNode address, LocationIdentity location, ValueNode value, BarrierType barrierType, GuardingNode guard, boolean initialization) {
-        super(TYPE, address, location, value, barrierType, guard, initialization);
+        this(TYPE, address, location, value, barrierType, guard, initialization);
+    }
+
+    protected WriteNode(NodeClass<? extends WriteNode> c, AddressNode address, LocationIdentity location, ValueNode value, BarrierType barrierType, GuardingNode guard, boolean initialization) {
+        super(c, address, location, value, barrierType, guard, initialization);
     }
 
     @Override