diff graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPre.java @ 8502:ff4fa8b0516e

-Create push patch
author Christos Kotselidis <christos.kotselidis@oracle.com>
date Wed, 20 Mar 2013 20:13:08 +0100
parents 96a337d307bd
children 86b4965f0c9a
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPre.java	Wed Mar 06 19:35:04 2013 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrierPre.java	Wed Mar 20 20:13:08 2013 +0100
@@ -27,41 +27,61 @@
 import com.oracle.graal.nodes.spi.*;
 import com.oracle.graal.nodes.type.*;
 
-public final class WriteBarrierPre extends FixedWithNextNode implements Lowerable {
+public final class WriteBarrierPre extends AbstractStateSplit implements Lowerable {
 
     @Input private ValueNode object;
     @Input private LocationNode location;
+    @Input private ValueNode expectedObject;
     private boolean doLoad;
+    private boolean profile;
+
     private String name;
 
     public ValueNode object() {
         return object;
     }
 
+    public ValueNode expectedObject() {
+        return expectedObject;
+    }
+
     public boolean doLoad() {
         return doLoad;
     }
 
+    public boolean profile() {
+        return profile;
+    }
+
+    public String getName() {
+        return name;
+    }
+
     public LocationNode location() {
         return location;
     }
 
-    public WriteBarrierPre(ValueNode object, LocationNode location, boolean doLoad) {
+    public WriteBarrierPre(ValueNode object, ValueNode expectedObject, LocationNode location, String name, boolean doLoad, boolean profile) {
         super(StampFactory.forVoid());
         this.object = object;
         this.doLoad = doLoad;
         this.location = location;
+        this.expectedObject = expectedObject;
+        this.name = name;
+        this.profile = profile;
+    }
+
+    public WriteBarrierPre(ValueNode object, ValueNode expectedObject, LocationNode location, String name, boolean doLoad) {
+        super(StampFactory.forVoid());
+        this.object = object;
+        this.doLoad = doLoad;
+        this.location = location;
+        this.expectedObject = expectedObject;
+        this.name = name;
     }
 
     public void lower(LoweringTool generator) {
         generator.getRuntime().lower(this, generator);
     }
 
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
 }