mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1032786 - IonMonkey MIPS: Change JSReturnOperand registers to a2,a3. r=nbp
This commit is contained in:
parent
f328065a60
commit
1c6d677a29
@ -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 =
|
||||
|
@ -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};
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user