mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-25 11:58:55 +00:00
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:
parent
4aec3675d1
commit
6a7c3a1eda
@ -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) {
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user