зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1290812 - Part 11: Implement the 64bit variant of ExtendInt32toInt64 on mips64. r=h4writer
--- js/src/jit/mips-shared/Lowering-mips-shared.cpp | 2 +- js/src/jit/mips64/CodeGenerator-mips64.cpp | 12 ++++++++++++ js/src/jit/mips64/CodeGenerator-mips64.h | 1 + 3 files changed, 14 insertions(+), 1 deletion(-)
This commit is contained in:
Родитель
9f9ce55cd4
Коммит
1778e15d34
|
@ -678,5 +678,5 @@ LIRGeneratorMIPSShared::visitCopySign(MCopySign* ins)
|
|||
void
|
||||
LIRGeneratorMIPSShared::visitExtendInt32ToInt64(MExtendInt32ToInt64* ins)
|
||||
{
|
||||
MOZ_CRASH("NYI");
|
||||
defineInt64(new(alloc()) LExtendInt32ToInt64(useRegisterAtStart(ins->input())), ins);
|
||||
}
|
||||
|
|
|
@ -476,6 +476,18 @@ CodeGeneratorMIPS64::visitAsmReinterpretToI64(LAsmReinterpretToI64* lir)
|
|||
masm.as_dmfc1(ToRegister(lir->output()), ToFloatRegister(lir->input()));
|
||||
}
|
||||
|
||||
void
|
||||
CodeGeneratorMIPS64::visitExtendInt32ToInt64(LExtendInt32ToInt64* lir)
|
||||
{
|
||||
const LAllocation* input = lir->getOperand(0);
|
||||
Register output = ToRegister(lir->output());
|
||||
|
||||
if (lir->mir()->isUnsigned())
|
||||
masm.ma_dext(output, ToRegister(input), Imm32(0), Imm32(32));
|
||||
else
|
||||
masm.ma_sll(output, ToRegister(input), Imm32(0));
|
||||
}
|
||||
|
||||
void
|
||||
CodeGeneratorMIPS64::setReturnDoubleRegs(LiveRegisterSet* regs)
|
||||
{
|
||||
|
|
|
@ -52,6 +52,7 @@ class CodeGeneratorMIPS64 : public CodeGeneratorMIPSShared
|
|||
void visitAsmSelectI64(LAsmSelectI64* ins);
|
||||
void visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir);
|
||||
void visitAsmReinterpretToI64(LAsmReinterpretToI64* lir);
|
||||
void visitExtendInt32ToInt64(LExtendInt32ToInt64* lir);
|
||||
|
||||
// Out of line visitors.
|
||||
void visitOutOfLineBailout(OutOfLineBailout* ool);
|
||||
|
|
Загрузка…
Ссылка в новой задаче