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