Mercurial > hg > graal-compiler
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; + } }