| Index: src/arm64/lithium-codegen-arm64.cc
|
| diff --git a/src/arm64/lithium-codegen-arm64.cc b/src/arm64/lithium-codegen-arm64.cc
|
| index 5a27c4afd535a5198b803bdc5d7eb1b29563804d..2c41989505aecebf796e8913420084e77703ed9b 100644
|
| --- a/src/arm64/lithium-codegen-arm64.cc
|
| +++ b/src/arm64/lithium-codegen-arm64.cc
|
| @@ -3605,12 +3605,9 @@ void LCodeGen::DoLoadKeyedFixedDouble(LLoadKeyedFixedDouble* instr) {
|
|
|
| if (instr->hydrogen()->RequiresHoleCheck()) {
|
| Register scratch = ToRegister(instr->temp());
|
| - // Detect the hole NaN by adding one to the integer representation of the
|
| - // result, and checking for overflow.
|
| - STATIC_ASSERT(kHoleNanInt64 == 0x7fffffffffffffff);
|
| - __ Ldr(scratch, mem_op);
|
| - __ Cmn(scratch, 1);
|
| - DeoptimizeIf(vs, instr, "hole");
|
| + __ Fmov(scratch, result);
|
| + __ Eor(scratch, scratch, kHoleNanInt64);
|
| + DeoptimizeIfZero(scratch, instr, "hole");
|
| }
|
| }
|
|
|
|
|