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 692ab98f9953e77cf6908fac9c8cdae714efa561..65f9e31e7b794cf0a3f07a9f4141919870ae0c19 100644 |
--- a/src/compiler/mips64/code-generator-mips64.cc |
+++ b/src/compiler/mips64/code-generator-mips64.cc |
@@ -1030,6 +1030,24 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
__ Cvt_s_ul(i.OutputDoubleRegister(), i.InputRegister(0)); |
break; |
} |
+ case kMips64FloorWD: { |
+ FPURegister scratch = kScratchDoubleReg; |
+ __ floor_w_d(scratch, i.InputDoubleRegister(0)); |
+ __ mfc1(i.OutputRegister(), scratch); |
+ break; |
+ } |
+ case kMips64CeilWD: { |
+ FPURegister scratch = kScratchDoubleReg; |
+ __ ceil_w_d(scratch, i.InputDoubleRegister(0)); |
+ __ mfc1(i.OutputRegister(), scratch); |
+ break; |
+ } |
+ case kMips64RoundWD: { |
+ FPURegister scratch = kScratchDoubleReg; |
+ __ round_w_d(scratch, i.InputDoubleRegister(0)); |
+ __ mfc1(i.OutputRegister(), scratch); |
+ break; |
+ } |
case kMips64TruncWD: { |
FPURegister scratch = kScratchDoubleReg; |
// Other arches use round to zero here, so we follow. |