Revision: 10606
Author:   [email protected]
Date:     Mon Feb  6 02:08:57 2012
Log:      X64: Fix bug in minus-zero check after int32 multiplication.

In optimized x64 code, the check for minus zero after multiplication
used the wrong size bit-or instruction (64-bit instead of 32-bit).

TEST=mjsunit/numops-fuzz.js
Review URL: https://chromiumcodereview.appspot.com/9316127
http://code.google.com/p/v8/source/detail?r=10606

Modified:
 /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc

=======================================
--- /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Fri Jan 27 05:03:19 2012 +++ /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Mon Feb 6 02:08:57 2012
@@ -993,11 +993,11 @@
         DeoptimizeIf(no_condition, instr->environment());
       }
     } else if (right->IsStackSlot()) {
-      __ or_(kScratchRegister, ToOperand(right));
+      __ orl(kScratchRegister, ToOperand(right));
       DeoptimizeIf(sign, instr->environment());
     } else {
       // Test the non-zero operand for negative sign.
-      __ or_(kScratchRegister, ToRegister(right));
+      __ orl(kScratchRegister, ToRegister(right));
       DeoptimizeIf(sign, instr->environment());
     }
     __ bind(&done);

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to