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

Reply via email to