Reviewers: Mads Ager, Description: Fix comparison bug on ARM. Retrieves the result of VFP comparison from the VFP status register.
BUG=none TEST=none Please review this at http://codereview.chromium.org/6020014/ SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/ Affected files: M src/arm/lithium-codegen-arm.cc Index: src/arm/lithium-codegen-arm.cc =================================================================== --- src/arm/lithium-codegen-arm.cc (revision 6170) +++ src/arm/lithium-codegen-arm.cc (working copy) @@ -1077,6 +1077,7 @@ } else if (r.IsDouble()) { DoubleRegister reg = ToDoubleRegister(instr->input()); __ vcmp(reg, 0.0); + __ vmrs(pc); // Move vector status bits to normal status bits. EmitBranch(true_block, false_block, ne); } else { ASSERT(r.IsTagged()); @@ -1114,6 +1115,7 @@ __ sub(ip, reg, Operand(kHeapObjectTag)); __ vldr(dbl_scratch, ip, HeapNumber::kValueOffset); __ vcmp(dbl_scratch, 0.0); + __ vmrs(pc); // Move vector status bits to normal status bits. __ b(eq, false_label); __ b(true_label); -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
