Mercurial > hg > truffle
changeset 8332:4e7c62e6930b
Explicitely allocate r10 for deoptimization operation.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Sun, 17 Mar 2013 22:57:47 +0100 |
parents | 1f1c33c860a1 |
children | e9c6fc513719 |
files | graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64DeoptimizeOp.java |
diffstat | 1 files changed, 5 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64DeoptimizeOp.java Sun Mar 17 21:27:09 2013 +0100 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64DeoptimizeOp.java Sun Mar 17 22:57:47 2013 +0100 @@ -22,12 +22,13 @@ */ package com.oracle.graal.hotspot.amd64; +import com.oracle.graal.amd64.*; import com.oracle.graal.api.code.*; import com.oracle.graal.api.code.RuntimeCallTarget.Descriptor; import com.oracle.graal.api.meta.*; import com.oracle.graal.asm.amd64.*; import com.oracle.graal.lir.*; -import com.oracle.graal.lir.LIRInstruction.Opcode; +import com.oracle.graal.lir.LIRInstruction.*; import com.oracle.graal.lir.amd64.*; import com.oracle.graal.lir.asm.*; @@ -39,17 +40,18 @@ private DeoptimizationAction action; private DeoptimizationReason reason; @State private LIRFrameState info; + @Temp protected RegisterValue deoptimizationReason; AMD64DeoptimizeOp(DeoptimizationAction action, DeoptimizationReason reason, LIRFrameState info) { this.action = action; this.reason = reason; this.info = info; + this.deoptimizationReason = AMD64.r10.asValue(Kind.Int); } @Override public void emitCode(TargetMethodAssembler tasm, AMD64MacroAssembler masm) { - Register scratch = tasm.frameMap.registerConfig.getScratchRegister(); - masm.movl(scratch, tasm.runtime.encodeDeoptActionAndReason(action, reason)); + masm.movl(deoptimizationReason.getRegister(), tasm.runtime.encodeDeoptActionAndReason(action, reason)); AMD64Call.directCall(tasm, masm, tasm.runtime.lookupRuntimeCall(DEOPTIMIZE), info); } }