Chromium Code Reviews| Index: src/arm/simulator-arm.cc |
| diff --git a/src/arm/simulator-arm.cc b/src/arm/simulator-arm.cc |
| index e34c3116e6d0d41debcc4c6c8a8bb3e5dd3fa6cd..356fc672045a977f990b945e3403868b50831eb4 100644 |
| --- a/src/arm/simulator-arm.cc |
| +++ b/src/arm/simulator-arm.cc |
| @@ -1917,8 +1917,13 @@ void Simulator::SoftwareInterrupt(Instruction* instr) { |
| double Simulator::canonicalizeNaN(double value) { |
| - return (FPSCR_default_NaN_mode_ && std::isnan(value)) ? |
| - FixedDoubleArray::canonical_not_the_hole_nan_as_double() : value; |
| + // Default NaN value, see "NaN handling" in "IEEE 754 standard implementation |
|
Benedikt Meurer
2015/01/20 13:09:39
This is a drive-by-fix: The canonical_not_the_hole
|
| + // choices" of the ARM Reference Manual. |
| + const uint64_t kDefaultNaN = V8_UINT64_C(0x7FF8000000000000); |
| + if (FPSCR_default_NaN_mode_ && std::isnan(value)) { |
| + value = bit_cast<double>(kDefaultNaN); |
| + } |
| + return value; |
| } |