| 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)); | 
|  |