| Index: src/mips/lithium-codegen-mips.cc
|
| diff --git a/src/mips/lithium-codegen-mips.cc b/src/mips/lithium-codegen-mips.cc
|
| index c56188bb37602aff466ba5aded4f1c0ce5665bb6..424192394cb3c97351d5e2acb86d32fe08ee9a47 100644
|
| --- a/src/mips/lithium-codegen-mips.cc
|
| +++ b/src/mips/lithium-codegen-mips.cc
|
| @@ -3546,14 +3546,16 @@ void LCodeGen::DoStoreKeyedFastDoubleElement(
|
| Operand(FixedDoubleArray::kHeaderSize - kHeapObjectTag));
|
| }
|
|
|
| - 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);
|
| - __ Move(value, FixedDoubleArray::canonical_not_the_hole_nan_as_double());
|
| + 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);
|
| + __ Move(value, FixedDoubleArray::canonical_not_the_hole_nan_as_double());
|
| + }
|
|
|
| __ bind(¬_nan);
|
| __ sdc1(value, MemOperand(scratch));
|
|
|