MIPS: Fix 'Port [turbofan] Introduce integer multiplication with overflow.'

Port 8e18a5f2a0

Failing on r6 due to wrong registers used in macro assembler.

TEST=test-run-machops/RunInt32MulWithOverflowImm
BUG=

Review-Url: https://codereview.chromium.org/2165533002
Cr-Commit-Position: refs/heads/master@{#37861}
This commit is contained in:
marija.antic 2016-07-19 04:08:22 -07:00 committed by Commit bot
parent 4de5e1456e
commit dcf8251ecf

View File

@ -5648,9 +5648,16 @@ void MacroAssembler::MulBranchOvf(Register dst, Register left, Register right,
DCHECK(!scratch.is(left));
DCHECK(!scratch.is(right));
Mul(overflow_dst, dst, left, right);
sra(scratch, dst, 31);
xor_(overflow_dst, overflow_dst, scratch);
if (IsMipsArchVariant(kMips32r6) && dst.is(right)) {
mov(scratch, right);
Mul(overflow_dst, dst, left, scratch);
sra(scratch, dst, 31);
xor_(overflow_dst, overflow_dst, scratch);
} else {
Mul(overflow_dst, dst, left, right);
sra(scratch, dst, 31);
xor_(overflow_dst, overflow_dst, scratch);
}
BranchOvfHelperMult(this, overflow_dst, overflow_label, no_overflow_label);
}