| Index: src/arm/code-stubs-arm.cc | 
| =================================================================== | 
| --- src/arm/code-stubs-arm.cc	(revision 6241) | 
| +++ 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); | 
| 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); | 
| // "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); | 
|  | 
| // Don't base result on status bits when a NaN is involved. | 
| __ b(vs, &unordered); | 
|  |