Bug 1743547 - [MIPS64] Add new overload for lowerForALUInt64(). r=jseward

Port D131887 to mips64 platform.

Differential Revision: https://phabricator.services.mozilla.com/D132452
This commit is contained in:
Zhao Jiazhong 2021-12-06 08:07:33 +00:00
parent 4aec3675d1
commit 6a7c3a1eda
3 changed files with 17 additions and 0 deletions

View File

@ -53,6 +53,13 @@ void LIRGeneratorMIPSShared::lowerForALU(LInstructionHelper<1, 2, 0>* ins,
LDefinition(LDefinition::TypeFrom(mir->type()), LDefinition::REGISTER));
}
void LIRGeneratorMIPSShared::lowerForALUInt64(
LInstructionHelper<INT64_PIECES, INT64_PIECES, 0>* ins, MDefinition* mir,
MDefinition* input) {
ins->setInt64Operand(0, useInt64RegisterAtStart(input));
defineInt64ReuseInput(ins, mir, 0);
}
void LIRGeneratorMIPSShared::lowerForALUInt64(
LInstructionHelper<INT64_PIECES, 2 * INT64_PIECES, 0>* ins,
MDefinition* mir, MDefinition* lhs, MDefinition* rhs) {

View File

@ -37,6 +37,8 @@ class LIRGeneratorMIPSShared : public LIRGeneratorShared {
void lowerForALU(LInstructionHelper<1, 2, 0>* ins, MDefinition* mir,
MDefinition* lhs, MDefinition* rhs);
void lowerForALUInt64(LInstructionHelper<INT64_PIECES, INT64_PIECES, 0>* ins,
MDefinition* mir, MDefinition* input);
void lowerForALUInt64(
LInstructionHelper<INT64_PIECES, 2 * INT64_PIECES, 0>* ins,
MDefinition* mir, MDefinition* lhs, MDefinition* rhs);

View File

@ -456,6 +456,14 @@ void CodeGenerator::visitNotI64(LNotI64* lir) {
masm.ma_cmp_set(output, input.reg, zero, Assembler::Equal);
}
void CodeGenerator::visitBitNotI64(LBitNotI64* ins) {
const LAllocation* input = ins->getOperand(0);
MOZ_ASSERT(!input->isConstant());
Register inputReg = ToRegister(input);
MOZ_ASSERT(inputReg == ToRegister(ins->output()));
masm.ma_not(inputReg, inputReg);
}
void CodeGenerator::visitWasmTruncateToInt64(LWasmTruncateToInt64* lir) {
FloatRegister input = ToFloatRegister(lir->input());
Register64 output = ToOutRegister64(lir);