| Index: src/arm/lithium-codegen-arm.cc
|
| ===================================================================
|
| --- src/arm/lithium-codegen-arm.cc (revision 6241)
|
| +++ src/arm/lithium-codegen-arm.cc (working copy)
|
| @@ -2197,7 +2197,7 @@
|
| __ bind(&heap_number);
|
| __ sub(ip, input_reg, Operand(kHeapObjectTag));
|
| __ vldr(dbl_tmp, ip, HeapNumber::kValueOffset);
|
| - __ vcmp(dbl_tmp, 0.0); // Sets overflow bit if NaN.
|
| + __ vcmp(dbl_tmp, 0.0); // Sets overflow bit in FPSCR flags if NaN.
|
| __ vcvt_s32_f64(flt_scratch, dbl_tmp);
|
| __ vmov(input_reg, flt_scratch); // 32-bit result of conversion.
|
| __ vmrs(pc); // Move vector status bits to normal status bits.
|
| @@ -2218,8 +2218,7 @@
|
| // back to check; note that using non-overlapping s and d regs would be
|
| // slightly faster.
|
| __ vcvt_f64_s32(dbl_scratch, flt_scratch);
|
| - __ vcmp(dbl_scratch, dbl_tmp);
|
| - __ vmrs(pc); // Move vector status bits to normal status bits.
|
| + __ VFPCompareAndSetFlags(dbl_scratch, dbl_tmp);
|
| DeoptimizeIf(ne, instr->environment()); // Not equal or unordered.
|
| if (instr->hydrogen()->CheckFlag(HValue::kBailoutOnMinusZero)) {
|
| __ tst(input_reg, Operand(input_reg));
|
|
|