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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent d6a368dd
......@@ -993,11 +993,11 @@ void LCodeGen::DoMulI(LMulI* instr) {
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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment