| Index: src/mips64/lithium-codegen-mips64.cc
|
| diff --git a/src/mips64/lithium-codegen-mips64.cc b/src/mips64/lithium-codegen-mips64.cc
|
| index ae2e792f42c17f24d0ac70b8a3f62aca82950137..6746ae8e5dea07ac8a03dcee46cb11a24a453699 100644
|
| --- a/src/mips64/lithium-codegen-mips64.cc
|
| +++ b/src/mips64/lithium-codegen-mips64.cc
|
| @@ -4473,22 +4473,11 @@ void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) {
|
| }
|
|
|
| if (instr->NeedsCanonicalization()) {
|
| - Label is_nan;
|
| - // Check for NaN. All NaNs must be canonicalized.
|
| - __ BranchF(NULL, &is_nan, eq, value, value);
|
| - __ Branch(¬_nan);
|
| -
|
| - // Only load canonical NaN if the comparison above set the overflow.
|
| - __ bind(&is_nan);
|
| - __ LoadRoot(at, Heap::kNanValueRootIndex);
|
| - __ ldc1(double_scratch, FieldMemOperand(at, HeapNumber::kValueOffset));
|
| + __ FPUCanonicalizeNaN(double_scratch, value);
|
| __ sdc1(double_scratch, MemOperand(scratch, 0));
|
| - __ Branch(&done);
|
| + } else {
|
| + __ sdc1(value, MemOperand(scratch, 0));
|
| }
|
| -
|
| - __ bind(¬_nan);
|
| - __ sdc1(value, MemOperand(scratch, 0));
|
| - __ bind(&done);
|
| }
|
|
|
|
|
|
|