Index: src/arm/macro-assembler-arm.cc |
=================================================================== |
--- src/arm/macro-assembler-arm.cc (revision 6268) |
+++ src/arm/macro-assembler-arm.cc (working copy) |
@@ -532,16 +532,14 @@ |
const DwVfpRegister src2, |
const Condition cond) { |
// Compare and move FPSCR flags to the normal condition flags. |
- vcmp(src1, src2, cond); |
- vmrs(pc, cond); |
+ VFPCompareAndLoadFlags(src1, src2, pc, cond); |
} |
void MacroAssembler::VFPCompareAndSetFlags(const DwVfpRegister src1, |
const double src2, |
const Condition cond) { |
// Compare and move FPSCR flags to the normal condition flags. |
- vcmp(src1, src2, cond); |
- vmrs(pc, cond); |
+ VFPCompareAndLoadFlags(src1, src2, pc, cond); |
} |
@@ -549,24 +547,18 @@ |
const DwVfpRegister src2, |
const Register fpscr_flags, |
const Condition cond) { |
- // Clear the Invalid cumulative exception flags (use fpscr_flags as scratch). |
- ClearFPSCRBits(kVFPInvalidExceptionBit, fpscr_flags); |
- |
// Compare and load FPSCR. |
vcmp(src1, src2, cond); |
- vmrs(fpscr_flags); |
+ vmrs(fpscr_flags, cond); |
} |
void MacroAssembler::VFPCompareAndLoadFlags(const DwVfpRegister src1, |
const double src2, |
const Register fpscr_flags, |
const Condition cond) { |
- // Clear the Invalid cumulative exception flags (use fpscr_flags as scratch). |
- ClearFPSCRBits(kVFPInvalidExceptionBit, fpscr_flags); |
- |
// Compare and load FPSCR. |
vcmp(src1, src2, cond); |
- vmrs(fpscr_flags); |
+ vmrs(fpscr_flags, cond); |
} |