changeset 16445:eff9559f4515

don't let reads float across SaveAllRegistersNode
author Lukas Stadler <lukas.stadler@oracle.com>
date Tue, 08 Jul 2014 16:25:10 +0200
parents 843e8efacd13
children 4584f29431be
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/SaveAllRegistersNode.java
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/SaveAllRegistersNode.java	Tue Jul 08 16:24:46 2014 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/SaveAllRegistersNode.java	Tue Jul 08 16:25:10 2014 +0200
@@ -24,15 +24,18 @@
 
 import com.oracle.graal.api.meta.*;
 import com.oracle.graal.compiler.common.type.*;
+import com.oracle.graal.graph.*;
 import com.oracle.graal.hotspot.*;
 import com.oracle.graal.lir.StandardOp.*;
 import com.oracle.graal.nodes.*;
+import com.oracle.graal.nodes.extended.*;
 import com.oracle.graal.nodes.spi.*;
 
 /**
  * Saves all allocatable registers.
  */
-public class SaveAllRegistersNode extends FixedWithNextNode implements LIRLowerable {
+@NodeInfo(allowedUsageTypes = {InputType.Memory})
+public class SaveAllRegistersNode extends FixedWithNextNode implements LIRLowerable, MemoryCheckpoint.Single {
 
     private SaveRegistersOp saveRegistersOp;
 
@@ -59,4 +62,8 @@
      */
     @NodeIntrinsic
     public static native long saveAllRegisters();
+
+    public LocationIdentity getLocationIdentity() {
+        return LocationIdentity.ANY_LOCATION;
+    }
 }