| Index: src/compiler/mips64/code-generator-mips64.cc
|
| diff --git a/src/compiler/mips64/code-generator-mips64.cc b/src/compiler/mips64/code-generator-mips64.cc
|
| index 56c6fe19615c38b5df3c1db4b3a9f86351d57c00..4e6a05d65f34aa9b9502f7cad1a863c20b0873fc 100644
|
| --- a/src/compiler/mips64/code-generator-mips64.cc
|
| +++ b/src/compiler/mips64/code-generator-mips64.cc
|
| @@ -1028,6 +1028,12 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
|
| __ cvt_d_w(i.OutputDoubleRegister(), scratch);
|
| break;
|
| }
|
| + case kMips64CvtSW: {
|
| + FPURegister scratch = kScratchDoubleReg;
|
| + __ mtc1(i.InputRegister(0), scratch);
|
| + __ cvt_s_w(i.OutputDoubleRegister(), scratch);
|
| + break;
|
| + }
|
| case kMips64CvtSL: {
|
| FPURegister scratch = kScratchDoubleReg;
|
| __ dmtc1(i.InputRegister(0), scratch);
|
| @@ -1077,6 +1083,30 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
|
| __ mfc1(i.OutputRegister(), scratch);
|
| break;
|
| }
|
| + case kMips64FloorWS: {
|
| + FPURegister scratch = kScratchDoubleReg;
|
| + __ floor_w_s(scratch, i.InputDoubleRegister(0));
|
| + __ mfc1(i.OutputRegister(), scratch);
|
| + break;
|
| + }
|
| + case kMips64CeilWS: {
|
| + FPURegister scratch = kScratchDoubleReg;
|
| + __ ceil_w_s(scratch, i.InputDoubleRegister(0));
|
| + __ mfc1(i.OutputRegister(), scratch);
|
| + break;
|
| + }
|
| + case kMips64RoundWS: {
|
| + FPURegister scratch = kScratchDoubleReg;
|
| + __ round_w_s(scratch, i.InputDoubleRegister(0));
|
| + __ mfc1(i.OutputRegister(), scratch);
|
| + break;
|
| + }
|
| + case kMips64TruncWS: {
|
| + FPURegister scratch = kScratchDoubleReg;
|
| + __ trunc_w_s(scratch, i.InputDoubleRegister(0));
|
| + __ mfc1(i.OutputRegister(), scratch);
|
| + break;
|
| + }
|
| case kMips64TruncLS: {
|
| FPURegister scratch = kScratchDoubleReg;
|
| // Other arches use round to zero here, so we follow.
|
|
|