Chromium Code Reviews| Index: src/arm/code-stubs-arm.cc |
| =================================================================== |
| --- src/arm/code-stubs-arm.cc (revision 6244) |
| +++ src/arm/code-stubs-arm.cc (working copy) |
| @@ -866,8 +866,7 @@ |
| __ vldr(d0, scratch2, HeapNumber::kValueOffset); |
| __ sub(probe, probe, Operand(kHeapObjectTag)); |
| __ vldr(d1, probe, HeapNumber::kValueOffset); |
| - __ vcmp(d0, d1); |
| - __ vmrs(pc); |
| + __ VFPCompareAndSetFlags(d0, d1); |
| __ b(ne, not_found); // The cache did not contain this value. |
| __ b(&load_result_from_cache); |
| } else { |
| @@ -975,8 +974,7 @@ |
| CpuFeatures::Scope scope(VFP3); |
| Label no_nan; |
| // ARMv7 VFP3 instructions to implement double precision comparison. |
| - __ vcmp(d7, d6); |
| - __ vmrs(pc); // Move vector status bits to normal status bits. |
| + __ VFPCompareAndSetFlags(d7, d6, r0); |
|
Rodolph Perfetta
2011/01/10 14:59:36
No need to clear the flags, if the result is unord
Søren Thygesen Gjesse
2011/01/11 08:56:17
OK, then I am a bit in the dark regarding the clea
Søren Thygesen Gjesse
2011/01/11 12:41:52
Done.
|
| Label nan; |
| __ b(vs, &nan); |
| __ mov(r0, Operand(EQUAL), LeaveCC, eq); |
| @@ -1096,8 +1094,7 @@ |
| __ sub(ip, tos_, Operand(kHeapObjectTag)); |
| __ vldr(d1, ip, HeapNumber::kValueOffset); |
| - __ vcmp(d1, 0.0); |
| - __ vmrs(pc); |
| + __ VFPCompareAndSetFlags(d1, 0.0, scratch); |
|
Rodolph Perfetta
2011/01/10 14:59:36
Ditto.
Søren Thygesen Gjesse
2011/01/11 12:41:52
Done.
|
| // "tos_" is a register, and contains a non zero value by default. |
| // Hence we only need to overwrite "tos_" with zero to return false for |
| // FP_ZERO or FP_NAN cases. Otherwise, by default it returns true. |
| @@ -4915,8 +4912,7 @@ |
| __ vldr(d1, r2, HeapNumber::kValueOffset); |
| // Compare operands |
| - __ vcmp(d0, d1); |
| - __ vmrs(pc); // Move vector status bits to normal status bits. |
| + __ VFPCompareAndSetFlags(d0, d1, r2); |
|
Rodolph Perfetta
2011/01/10 14:59:36
Ditto.
Søren Thygesen Gjesse
2011/01/11 12:41:52
Done.
|
| // Don't base result on status bits when a NaN is involved. |
| __ b(vs, &unordered); |