Bug 1032786 - IonMonkey MIPS: Change JSReturnOperand registers to a2,a3. r=nbp

This commit is contained in:
Branislav Rankov 2014-07-07 14:58:42 +02:00
parent f328065a60
commit 1c6d677a29
4 changed files with 11 additions and 9 deletions

View File

@ -186,8 +186,8 @@ class Registers
// Registers returned from a JS -> JS call.
static const uint32_t JSCallMask =
(1 << Registers::v0) |
(1 << Registers::v1);
(1 << Registers::a2) |
(1 << Registers::a3);
// Registers returned from a JS -> C call.
static const uint32_t CallMask =

View File

@ -103,8 +103,8 @@ static MOZ_CONSTEXPR_VAR Register PreBarrierReg = a1;
static MOZ_CONSTEXPR_VAR Register InvalidReg = { Registers::invalid_reg };
static MOZ_CONSTEXPR_VAR FloatRegister InvalidFloatReg = { FloatRegisters::invalid_freg };
static MOZ_CONSTEXPR_VAR Register JSReturnReg_Type = v1;
static MOZ_CONSTEXPR_VAR Register JSReturnReg_Data = v0;
static MOZ_CONSTEXPR_VAR Register JSReturnReg_Type = a3;
static MOZ_CONSTEXPR_VAR Register JSReturnReg_Data = a2;
static MOZ_CONSTEXPR_VAR Register StackPointer = sp;
static MOZ_CONSTEXPR_VAR Register FramePointer = InvalidReg;
static MOZ_CONSTEXPR_VAR Register ReturnReg = v0;
@ -127,7 +127,7 @@ static MOZ_CONSTEXPR_VAR Register AsmJSIonExitRegReturnData = JSReturnReg_Data;
static MOZ_CONSTEXPR_VAR Register AsmJSIonExitRegReturnType = JSReturnReg_Type;
static MOZ_CONSTEXPR_VAR Register AsmJSIonExitRegD0 = a0;
static MOZ_CONSTEXPR_VAR Register AsmJSIonExitRegD1 = a1;
static MOZ_CONSTEXPR_VAR Register AsmJSIonExitRegD2 = a2;
static MOZ_CONSTEXPR_VAR Register AsmJSIonExitRegD2 = t0;
static MOZ_CONSTEXPR_VAR FloatRegister f0 = {FloatRegisters::f0};
static MOZ_CONSTEXPR_VAR FloatRegister f2 = {FloatRegisters::f2};

View File

@ -17,7 +17,7 @@ namespace jit {
static MOZ_CONSTEXPR_VAR Register BaselineFrameReg = s5;
static MOZ_CONSTEXPR_VAR Register BaselineStackReg = sp;
static MOZ_CONSTEXPR_VAR ValueOperand R0(v1, v0);
static MOZ_CONSTEXPR_VAR ValueOperand R0(a3, a2);
static MOZ_CONSTEXPR_VAR ValueOperand R1(s7, s6);
static MOZ_CONSTEXPR_VAR ValueOperand R2(t7, t6);

View File

@ -195,7 +195,6 @@ JitRuntime::generateEnterJIT(JSContext *cx, EnterJitType type)
if (type == EnterJitBaseline) {
// Handle OSR.
GeneralRegisterSet regs(GeneralRegisterSet::All());
regs.take(JSReturnOperand);
regs.take(OsrFrameReg);
regs.take(BaselineFrameReg);
regs.take(reg_code);
@ -250,13 +249,16 @@ JitRuntime::generateEnterJIT(JSContext *cx, EnterJitType type)
masm.passABIArg(numStackValues);
masm.callWithABI(JS_FUNC_TO_DATA_PTR(void *, jit::InitBaselineFrameForOsr));
regs.add(OsrFrameReg);
regs.add(scratch);
regs.add(numStackValues);
regs.take(JSReturnOperand);
regs.take(ReturnReg);
Register jitcode = regs.takeAny();
masm.loadPtr(Address(StackPointer, 0), jitcode);
masm.loadPtr(Address(StackPointer, sizeof(uintptr_t)), framePtr);
masm.freeStack(2 * sizeof(uintptr_t));
MOZ_ASSERT(jitcode != ReturnReg);
Label error;
masm.freeStack(IonExitFrameLayout::SizeWithFooter());
masm.addPtr(Imm32(BaselineFrame::Size()), framePtr);