| Index: src/x64/codegen-x64.cc
|
| ===================================================================
|
| --- src/x64/codegen-x64.cc (revision 4872)
|
| +++ src/x64/codegen-x64.cc (working copy)
|
| @@ -4423,7 +4423,7 @@
|
| // Since xmm3 is 1 and xmm2 is -0.5 this is simply xmm2 + xmm3.
|
| __ addsd(xmm2, xmm3);
|
| // xmm2 now has 0.5.
|
| - __ comisd(xmm2, xmm1);
|
| + __ ucomisd(xmm2, xmm1);
|
| call_runtime.Branch(not_equal);
|
|
|
| // Calculates square root.
|
| @@ -6506,7 +6506,7 @@
|
| ¬_numbers);
|
| LoadComparisonOperand(masm_, right_side, xmm1, left_side, right_side,
|
| ¬_numbers);
|
| - __ comisd(xmm0, xmm1);
|
| + __ ucomisd(xmm0, xmm1);
|
| // Bail out if a NaN is involved.
|
| not_numbers.Branch(parity_even, left_side, right_side);
|
|
|
| @@ -8903,7 +8903,7 @@
|
| CpuFeatures::Scope fscope(SSE2);
|
| __ movsd(xmm0, FieldOperand(object, HeapNumber::kValueOffset));
|
| __ movsd(xmm1, FieldOperand(probe, HeapNumber::kValueOffset));
|
| - __ comisd(xmm0, xmm1);
|
| + __ ucomisd(xmm0, xmm1);
|
| __ j(parity_even, not_found); // Bail out if NaN is involved.
|
| __ j(not_equal, not_found); // The cache did not contain this value.
|
| __ jmp(&load_result_from_cache);
|
| @@ -9110,7 +9110,7 @@
|
| FloatingPointHelper::LoadFloatOperand(masm, rax, xmm1,
|
| &non_number_comparison);
|
|
|
| - __ comisd(xmm0, xmm1);
|
| + __ ucomisd(xmm0, xmm1);
|
|
|
| // Don't base result on EFLAGS when a NaN is involved.
|
| __ j(parity_even, &unordered);
|
|
|