| 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 9f881ec587da5e73c144c60a4374c2c2d5359e62..8bc7deb35b21ff944052ffbea976e6aee5a484f4 100644
|
| --- a/src/compiler/mips64/code-generator-mips64.cc
|
| +++ b/src/compiler/mips64/code-generator-mips64.cc
|
| @@ -1041,6 +1041,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);
|
| @@ -1090,6 +1096,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;
|
| Register tmp_fcsr = kScratchReg;
|
|
|