# HG changeset patch # User Stefan Anzinger # Date 1443097447 -7200 # Node ID a610e5da2e28727dd715991879d2863ef70a3d22 # Parent c63ce17e9915dcab471f2d009caca1e8c46bb4b1 [SPARC] Make Op3 and Opf LIR instructions delayable diff -r c63ce17e9915 -r a610e5da2e28 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCFloatCompareOp.java --- 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 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)); } diff -r c63ce17e9915 -r a610e5da2e28 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCOP3Op.java --- 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 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); } diff -r c63ce17e9915 -r a610e5da2e28 graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCOPFOp.java --- 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 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); }