changeset 22437:2a7fbe938296

[SPARC] Move storing of DelayedLIRInstruction into the TailDelayedLIRInstruction interface
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Tue, 11 Aug 2015 11:34:13 +0200
parents 896d0a9f94da
children d94dd15e757a
files graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCLIRInstructionMixin.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCTailDelayedLIRInstruction.java
diffstat 4 files changed, 9 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java	Tue Aug 11 11:07:15 2015 +0200
+++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java	Tue Aug 11 11:34:13 2015 +0200
@@ -414,7 +414,7 @@
                     boolean overlap = acc.add(inst);
                     if (!overlap && inst instanceof SPARCTailDelayedLIRInstruction) {
                         // We have found a non overlapping LIR instruction which can be delayed
-                        ((SPARCLIRInstructionMixin) inst).setDelayedControlTransfer(delayedTransfer);
+                        ((SPARCTailDelayedLIRInstruction) inst).setDelayedControlTransfer(delayedTransfer);
                         delayedTransfer = null;
                     }
                 }
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCLIRInstructionMixin.java	Tue Aug 11 11:07:15 2015 +0200
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCLIRInstructionMixin.java	Tue Aug 11 11:34:13 2015 +0200
@@ -28,15 +28,6 @@
         return false;
     }
 
-    default void setDelayedControlTransfer(SPARCDelayedControlTransfer holder) {
-        assert this instanceof SPARCTailDelayedLIRInstruction : this;
-        getSPARCLIRInstructionStore().delayedControlTransfer = holder;
-    }
-
-    default SPARCDelayedControlTransfer getDelayedControlTransfer() {
-        return getSPARCLIRInstructionStore().delayedControlTransfer;
-    }
-
     default SizeEstimate estimateSize() {
         return getSPARCLIRInstructionStore().estimate;
     }
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java	Tue Aug 11 11:07:15 2015 +0200
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java	Tue Aug 11 11:34:13 2015 +0200
@@ -377,7 +377,7 @@
     }
 
     @Opcode("CAS")
-    public static final class CompareAndSwapOp extends SPARCLIRInstruction {
+    public static final class CompareAndSwapOp extends SPARCLIRInstruction implements SPARCTailDelayedLIRInstruction {
         public static final LIRInstructionClass<CompareAndSwapOp> TYPE = LIRInstructionClass.create(CompareAndSwapOp.class);
         public static final SizeEstimate SIZE = SizeEstimate.create(2);
 
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCTailDelayedLIRInstruction.java	Tue Aug 11 11:07:15 2015 +0200
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCTailDelayedLIRInstruction.java	Tue Aug 11 11:34:13 2015 +0200
@@ -45,4 +45,11 @@
  * . The DelayedControlTransfer instruction will emit the code just with Nop in the delay slot.
  */
 public interface SPARCTailDelayedLIRInstruction extends SPARCLIRInstructionMixin {
+    default void setDelayedControlTransfer(SPARCDelayedControlTransfer holder) {
+        getSPARCLIRInstructionStore().delayedControlTransfer = holder;
+    }
+
+    default SPARCDelayedControlTransfer getDelayedControlTransfer() {
+        return getSPARCLIRInstructionStore().delayedControlTransfer;
+    }
 }