mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1205229 - IonMonkey: MIPS32: Make more CodeGenerator functions can be shared. r=nbp
--- js/src/jit/mips32/CodeGenerator-mips32.cpp | 9 +++++---- js/src/jit/mips32/CodeGenerator-mips32.h | 7 +++++-- 2 files changed, 10 insertions(+), 6 deletions(-)
This commit is contained in:
parent
48acf844c8
commit
246c121179
@ -135,7 +135,8 @@ CodeGeneratorMIPS::visitCompareAndBranch(LCompareAndBranch* comp)
|
||||
emitBranch(ToRegister(comp->left()), ToRegister(comp->right()), cond,
|
||||
comp->ifTrue(), comp->ifFalse());
|
||||
} else {
|
||||
emitBranch(ToRegister(comp->left()), ToAddress(comp->right()), cond,
|
||||
masm.load32(ToAddress(comp->right()), ScratchRegister);
|
||||
emitBranch(ToRegister(comp->left()), ScratchRegister, cond,
|
||||
comp->ifTrue(), comp->ifFalse());
|
||||
}
|
||||
}
|
||||
@ -1744,7 +1745,7 @@ CodeGeneratorMIPS::visitGuardClass(LGuardClass* guard)
|
||||
Register tmp = ToRegister(guard->tempInt());
|
||||
|
||||
masm.loadObjClass(obj, tmp);
|
||||
bailoutCmpPtr(Assembler::NotEqual, tmp, Imm32((uint32_t)guard->mir()->getClass()),
|
||||
bailoutCmpPtr(Assembler::NotEqual, tmp, ImmPtr(guard->mir()->getClass()),
|
||||
guard->snapshot());
|
||||
}
|
||||
|
||||
@ -2079,8 +2080,8 @@ CodeGeneratorMIPS::visitAsmJSLoadFuncPtr(LAsmJSLoadFuncPtr* ins)
|
||||
Register out = ToRegister(ins->output());
|
||||
unsigned addr = mir->globalDataOffset() - AsmJSGlobalRegBias;
|
||||
|
||||
BaseIndex source(GlobalReg, index, TimesFour, addr);
|
||||
masm.load32(source, out);
|
||||
BaseIndex source(GlobalReg, index, ScalePointer, addr);
|
||||
masm.loadPtr(source, out);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -35,7 +35,7 @@ class CodeGeneratorMIPS : public CodeGeneratorShared
|
||||
template <typename T1, typename T2>
|
||||
void bailoutCmp32(Assembler::Condition c, T1 lhs, T2 rhs, LSnapshot* snapshot) {
|
||||
Label skip;
|
||||
masm.ma_b(lhs, rhs, &skip, Assembler::InvertCondition(c), ShortJump);
|
||||
masm.branch32(Assembler::InvertCondition(c), lhs, rhs, &skip);
|
||||
bailout(snapshot);
|
||||
masm.bind(&skip);
|
||||
}
|
||||
@ -56,7 +56,10 @@ class CodeGeneratorMIPS : public CodeGeneratorShared
|
||||
}
|
||||
template <typename T1, typename T2>
|
||||
void bailoutCmpPtr(Assembler::Condition c, T1 lhs, T2 rhs, LSnapshot* snapshot) {
|
||||
bailoutCmp32(c, lhs, rhs, snapshot);
|
||||
Label skip;
|
||||
masm.branchPtr(Assembler::InvertCondition(c), lhs, rhs, &skip);
|
||||
bailout(snapshot);
|
||||
masm.bind(&skip);
|
||||
}
|
||||
void bailoutTestPtr(Assembler::Condition c, Register lhs, Register rhs, LSnapshot* snapshot) {
|
||||
Label bail;
|
||||
|
Loading…
Reference in New Issue
Block a user