changeset 22701:a610e5da2e28

[SPARC] Make Op3 and Opf LIR instructions delayable
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Thu, 24 Sep 2015 14:24:07 +0200
parents c63ce17e9915
children 89520cbb9633
files graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCFloatCompareOp.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCOP3Op.java graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCOPFOp.java
diffstat 3 files changed, 6 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCFloatCompareOp.java	Fri Sep 25 09:31:04 2015 +0200
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCFloatCompareOp.java	Thu Sep 24 14:24:07 2015 +0200
@@ -34,7 +34,7 @@
 import com.oracle.graal.lir.Opcode;
 import com.oracle.graal.lir.asm.CompilationResultBuilder;
 
-public class SPARCFloatCompareOp extends SPARCLIRInstruction {
+public class SPARCFloatCompareOp extends SPARCLIRInstruction implements SPARCTailDelayedLIRInstruction {
     public static final LIRInstructionClass<SPARCFloatCompareOp> TYPE = LIRInstructionClass.create(SPARCFloatCompareOp.class);
     public static final SizeEstimate SIZE = SizeEstimate.create(1);
 
@@ -53,6 +53,7 @@
 
     @Override
     protected void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) {
+        getDelayedControlTransfer().emitControlTransfer(crb, masm);
         SPARCAssembler.OpfOp.emitFcmp(masm, opf, cc, asRegister(a), asRegister(b));
     }
 
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCOP3Op.java	Fri Sep 25 09:31:04 2015 +0200
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCOP3Op.java	Thu Sep 24 14:24:07 2015 +0200
@@ -43,7 +43,7 @@
 import com.oracle.graal.lir.Opcode;
 import com.oracle.graal.lir.asm.CompilationResultBuilder;
 
-public final class SPARCOP3Op extends SPARCLIRInstruction {
+public final class SPARCOP3Op extends SPARCLIRInstruction implements SPARCTailDelayedLIRInstruction {
     public static final LIRInstructionClass<SPARCOP3Op> TYPE = LIRInstructionClass.create(SPARCOP3Op.class);
     public static final SizeEstimate SIZE = SizeEstimate.create(1);
 
@@ -84,6 +84,7 @@
 
     @Override
     protected void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) {
+        getDelayedControlTransfer().emitControlTransfer(crb, masm);
         if (state != null) {
             crb.recordImplicitException(masm.position(), state);
         }
--- a/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCOPFOp.java	Fri Sep 25 09:31:04 2015 +0200
+++ b/graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCOPFOp.java	Thu Sep 24 14:24:07 2015 +0200
@@ -37,7 +37,7 @@
 import com.oracle.graal.lir.Opcode;
 import com.oracle.graal.lir.asm.CompilationResultBuilder;
 
-public final class SPARCOPFOp extends SPARCLIRInstruction {
+public final class SPARCOPFOp extends SPARCLIRInstruction implements SPARCTailDelayedLIRInstruction {
     public static final LIRInstructionClass<SPARCOPFOp> TYPE = LIRInstructionClass.create(SPARCOPFOp.class);
     public static final SizeEstimate SIZE = SizeEstimate.create(1);
 
@@ -66,6 +66,7 @@
 
     @Override
     protected void emitCode(CompilationResultBuilder crb, SPARCMacroAssembler masm) {
+        getDelayedControlTransfer().emitControlTransfer(crb, masm);
         if (state != null) {
             crb.recordImplicitException(masm.position(), state);
         }