зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1498371 - Implement visitCompareBitwise. r=nbp
Fixes basic/testScriptCloning.js.
This commit is contained in:
Родитель
d5fe62a279
Коммит
e7903c1595
|
@ -954,13 +954,30 @@ CodeGenerator::visitCompareBAndBranch(LCompareBAndBranch* lir)
|
||||||
void
|
void
|
||||||
CodeGenerator::visitCompareBitwise(LCompareBitwise* lir)
|
CodeGenerator::visitCompareBitwise(LCompareBitwise* lir)
|
||||||
{
|
{
|
||||||
MOZ_CRASH("visitCompareBitwise");
|
MCompare* mir = lir->mir();
|
||||||
|
Assembler::Condition cond = JSOpToCondition(mir->compareType(), mir->jsop());
|
||||||
|
const ValueOperand lhs = ToValue(lir, LCompareBitwise::LhsInput);
|
||||||
|
const ValueOperand rhs = ToValue(lir, LCompareBitwise::RhsInput);
|
||||||
|
const Register output = ToRegister(lir->output());
|
||||||
|
|
||||||
|
MOZ_ASSERT(IsEqualityOp(mir->jsop()));
|
||||||
|
|
||||||
|
masm.cmpPtrSet(cond, lhs.valueReg(), rhs.valueReg(), output);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CodeGenerator::visitCompareBitwiseAndBranch(LCompareBitwiseAndBranch* lir)
|
CodeGenerator::visitCompareBitwiseAndBranch(LCompareBitwiseAndBranch* lir)
|
||||||
{
|
{
|
||||||
MOZ_CRASH("visitCompareBitwiseAndBranch");
|
MCompare* mir = lir->cmpMir();
|
||||||
|
Assembler::Condition cond = JSOpToCondition(mir->compareType(), mir->jsop());
|
||||||
|
const ValueOperand lhs = ToValue(lir, LCompareBitwiseAndBranch::LhsInput);
|
||||||
|
const ValueOperand rhs = ToValue(lir, LCompareBitwiseAndBranch::RhsInput);
|
||||||
|
|
||||||
|
MOZ_ASSERT(mir->jsop() == JSOP_EQ || mir->jsop() == JSOP_STRICTEQ ||
|
||||||
|
mir->jsop() == JSOP_NE || mir->jsop() == JSOP_STRICTNE);
|
||||||
|
|
||||||
|
masm.cmpPtr(lhs.valueReg(), rhs.valueReg());
|
||||||
|
emitBranch(cond, lir->ifTrue(), lir->ifFalse());
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Загрузка…
Ссылка в новой задаче