| Index: src/x64/codegen-x64.cc
|
| ===================================================================
|
| --- src/x64/codegen-x64.cc (revision 2360)
|
| +++ src/x64/codegen-x64.cc (working copy)
|
| @@ -5446,6 +5446,7 @@
|
|
|
| __ bind(¬_string);
|
| // HeapNumber => false iff +0, -0, or NaN.
|
| + // These three cases set C3 when compared to zero in the FPU.
|
| __ Cmp(rdx, Factory::heap_number_map());
|
| __ j(not_equal, &true_result);
|
| // TODO(x64): Don't use fp stack, use MMX registers?
|
| @@ -5455,9 +5456,9 @@
|
| __ fucompp(); // Compare and pop both values.
|
| __ movq(kScratchRegister, rax);
|
| __ fnstsw_ax(); // Store fp status word in ax, no checking for exceptions.
|
| - __ testb(rax, Immediate(0x08)); // Test FP condition flag C3.
|
| + __ testl(rax, Immediate(0x4000)); // Test FP condition flag C3, bit 16.
|
| __ movq(rax, kScratchRegister);
|
| - __ j(zero, &false_result);
|
| + __ j(not_zero, &false_result);
|
| // Fall through to |true_result|.
|
|
|
| // Return 1/0 for true/false in rax.
|
|
|