| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index 8b6c4a44970ce54e7228deeb405d94bcc1c4ebe1..190af3b8768e87831e0e7fbf12c96e3d860b382f 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -4452,17 +4452,17 @@ void MacroAssembler::AdduAndCheckForOverflow(Register dst, Register left,
|
| } else {
|
| if (dst.is(left)) {
|
| mov(scratch, left); // Preserve left.
|
| - addiu(dst, left, right.immediate()); // Left is overwritten.
|
| + Addu(dst, left, right.immediate()); // Left is overwritten.
|
| xor_(scratch, dst, scratch); // Original left.
|
| // Load right since xori takes uint16 as immediate.
|
| - addiu(t9, zero_reg, right.immediate());
|
| + Addu(t9, zero_reg, right);
|
| xor_(overflow_dst, dst, t9);
|
| and_(overflow_dst, overflow_dst, scratch);
|
| } else {
|
| addiu(dst, left, right.immediate());
|
| xor_(overflow_dst, dst, left);
|
| // Load right since xori takes uint16 as immediate.
|
| - addiu(t9, zero_reg, right.immediate());
|
| + Addu(t9, zero_reg, right);
|
| xor_(scratch, dst, t9);
|
| and_(overflow_dst, scratch, overflow_dst);
|
| }
|
| @@ -4520,17 +4520,17 @@ void MacroAssembler::SubuAndCheckForOverflow(Register dst, Register left,
|
| } else {
|
| if (dst.is(left)) {
|
| mov(scratch, left); // Preserve left.
|
| - addiu(dst, left, -(right.immediate())); // Left is overwritten.
|
| + Subu(dst, left, right); // Left is overwritten.
|
| xor_(overflow_dst, dst, scratch); // scratch is original left.
|
| // Load right since xori takes uint16 as immediate.
|
| - addiu(t9, zero_reg, right.immediate());
|
| + Addu(t9, zero_reg, right);
|
| xor_(scratch, scratch, t9); // scratch is original left.
|
| and_(overflow_dst, scratch, overflow_dst);
|
| } else {
|
| - addiu(dst, left, -(right.immediate()));
|
| + Subu(dst, left, right);
|
| xor_(overflow_dst, dst, left);
|
| // Load right since xori takes uint16 as immediate.
|
| - addiu(t9, zero_reg, right.immediate());
|
| + Addu(t9, zero_reg, right);
|
| xor_(scratch, left, t9);
|
| and_(overflow_dst, scratch, overflow_dst);
|
| }
|
|
|