зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1290812 - Part 42: Implement the 64bit variant of AsmReinterpretFrom/To on mips32. r=bbouvier
--- js/src/jit/mips32/CodeGenerator-mips32.cpp | 24 ++++++++++++++++++++++++ js/src/jit/mips32/CodeGenerator-mips32.h | 2 ++ 2 files changed, 26 insertions(+)
This commit is contained in:
Родитель
a031e3fbf4
Коммит
bc28f90635
|
@ -590,6 +590,30 @@ CodeGeneratorMIPS::visitAsmSelectI64(LAsmSelectI64* lir)
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
CodeGeneratorMIPS::visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir)
|
||||
{
|
||||
MOZ_ASSERT(lir->mir()->type() == MIRType::Double);
|
||||
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Int64);
|
||||
Register64 input = ToRegister64(lir->getInt64Operand(0));
|
||||
FloatRegister output = ToFloatRegister(lir->output());
|
||||
|
||||
masm.moveToDoubleLo(input.low, output);
|
||||
masm.moveToDoubleHi(input.high, output);
|
||||
}
|
||||
|
||||
void
|
||||
CodeGeneratorMIPS::visitAsmReinterpretToI64(LAsmReinterpretToI64* lir)
|
||||
{
|
||||
MOZ_ASSERT(lir->mir()->type() == MIRType::Int64);
|
||||
MOZ_ASSERT(lir->mir()->input()->type() == MIRType::Double);
|
||||
FloatRegister input = ToFloatRegister(lir->getOperand(0));
|
||||
Register64 output = ToOutRegister64(lir);
|
||||
|
||||
masm.moveFromDoubleLo(input, output.low);
|
||||
masm.moveFromDoubleHi(input, output.high);
|
||||
}
|
||||
|
||||
void
|
||||
CodeGeneratorMIPS::visitExtendInt32ToInt64(LExtendInt32ToInt64* lir)
|
||||
{
|
||||
|
|
|
@ -47,6 +47,8 @@ class CodeGeneratorMIPS : public CodeGeneratorMIPSShared
|
|||
void visitWasmLoadGlobalVarI64(LWasmLoadGlobalVarI64* ins);
|
||||
void visitWasmStoreGlobalVarI64(LWasmStoreGlobalVarI64* ins);
|
||||
void visitAsmSelectI64(LAsmSelectI64* lir);
|
||||
void visitAsmReinterpretFromI64(LAsmReinterpretFromI64* lir);
|
||||
void visitAsmReinterpretToI64(LAsmReinterpretToI64* lir);
|
||||
void visitExtendInt32ToInt64(LExtendInt32ToInt64* lir);
|
||||
void visitWrapInt64ToInt32(LWrapInt64ToInt32* lir);
|
||||
void visitClzI64(LClzI64* ins);
|
||||
|
|
Загрузка…
Ссылка в новой задаче