Bug 1671871 - [MIPS] Add tls dependency for truncate i32. r=lth

Port D89550 to mips platform.

Differential Revision: https://phabricator.services.mozilla.com/D93908
This commit is contained in:
Zhao Jiazhong 2020-10-20 01:08:00 +00:00
Родитель c3b6cf7e14
Коммит 26ac54e413
2 изменённых файлов: 19 добавлений и 3 удалений

Просмотреть файл

@ -1132,12 +1132,14 @@ void CodeGenerator::visitTruncateFToInt32(LTruncateFToInt32* ins) {
void CodeGenerator::visitWasmBuiltinTruncateDToInt32(
LWasmBuiltinTruncateDToInt32* lir) {
MOZ_CRASH("NYI");
emitTruncateDouble(ToFloatRegister(lir->getOperand(0)),
ToRegister(lir->getDef(0)), lir->mir());
}
void CodeGenerator::visitWasmBuiltinTruncateFToInt32(
LWasmBuiltinTruncateFToInt32* lir) {
MOZ_CRASH("NYI");
emitTruncateFloat32(ToFloatRegister(lir->getOperand(0)),
ToRegister(lir->getDef(0)), lir->mir());
}
void CodeGenerator::visitWasmTruncateToInt32(LWasmTruncateToInt32* lir) {

Просмотреть файл

@ -182,7 +182,21 @@ void LIRGeneratorMIPSShared::lowerForBitAndAndBranch(LBitAndAndBranch* baab,
void LIRGeneratorMIPSShared::lowerWasmBuiltinTruncateToInt32(
MWasmBuiltinTruncateToInt32* ins) {
MOZ_CRASH("NYI");
MDefinition* opd = ins->input();
MOZ_ASSERT(opd->type() == MIRType::Double || opd->type() == MIRType::Float32);
if (opd->type() == MIRType::Double) {
define(new (alloc()) LWasmBuiltinTruncateDToInt32(
useRegister(opd), useFixed(ins->tls(), WasmTlsReg),
LDefinition::BogusTemp()),
ins);
return;
}
define(new (alloc()) LWasmBuiltinTruncateFToInt32(
useRegister(opd), useFixed(ins->tls(), WasmTlsReg),
LDefinition::BogusTemp()),
ins);
}
void LIRGeneratorMIPSShared::lowerForShift(LInstructionHelper<1, 2, 0>* ins,