Mercurial > hg > truffle
changeset 11761:3b25f37d5561
fixed poll-on-return for SPARC
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Tue, 24 Sep 2013 10:32:07 +0200 |
parents | ce0b00597980 |
children | 099748a1a931 |
files | graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotReturnOp.java |
diffstat | 1 files changed, 4 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotReturnOp.java Tue Sep 24 08:51:02 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotReturnOp.java Tue Sep 24 10:32:07 2013 +0200 @@ -26,13 +26,12 @@ import static com.oracle.graal.lir.LIRInstruction.OperandFlag.*; import static com.oracle.graal.phases.GraalOptions.*; -import com.oracle.graal.api.code.*; import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.sparc.*; -import com.oracle.graal.graph.*; import com.oracle.graal.lir.*; import com.oracle.graal.lir.asm.*; import com.oracle.graal.lir.sparc.SPARCControlFlow.ReturnOp; +import com.oracle.graal.sparc.*; /** * Returns from a function. @@ -50,11 +49,10 @@ @Override public void emitCode(TargetMethodAssembler tasm, SPARCMacroAssembler masm) { - leaveFrame(tasm); if (!isStub && tasm.frameContext != null || !OptEliminateSafepoints.getValue()) { - Register scratchForSafepointOnReturn = null; - GraalInternalError.unimplemented("need to find a scratch register for the safepoint instruction sequence"); - SPARCHotSpotSafepointOp.emitCode(tasm, masm, graalRuntime().getConfig(), true, null, scratchForSafepointOnReturn); + // Using the same scratch register as LIR_Assembler::return_op + // in c1_LIRAssembler_sparc.cpp + SPARCHotSpotSafepointOp.emitCode(tasm, masm, graalRuntime().getConfig(), true, null, SPARC.l0); } ReturnOp.emitCodeHelper(tasm, masm); }