| Index: src/mips/assembler-mips.cc
|
| diff --git a/src/mips/assembler-mips.cc b/src/mips/assembler-mips.cc
|
| index 971e17b995c3f0c299dc234fc941fe34c49bdbb1..f907fe77d13411eab04c199c42cac37d186977cd 100644
|
| --- a/src/mips/assembler-mips.cc
|
| +++ b/src/mips/assembler-mips.cc
|
| @@ -1406,11 +1406,11 @@ void Assembler::j(int32_t target) {
|
| #if DEBUG
|
| // Get pc of delay slot.
|
| uint32_t ipc = reinterpret_cast<uint32_t>(pc_ + 1 * kInstrSize);
|
| - bool in_range = (ipc ^ static_cast<uint32_t>(target) >>
|
| - (kImm26Bits + kImmFieldShift)) == 0;
|
| + bool in_range = ((ipc ^ static_cast<uint32_t>(target)) >>
|
| + (kImm26Bits + kImmFieldShift)) == 0;
|
| DCHECK(in_range && ((target & 3) == 0));
|
| #endif
|
| - GenInstrJump(J, target >> 2);
|
| + GenInstrJump(J, (target >> 2) & kImm26Mask);
|
| }
|
|
|
|
|
| @@ -1432,12 +1432,12 @@ void Assembler::jal(int32_t target) {
|
| #ifdef DEBUG
|
| // Get pc of delay slot.
|
| uint32_t ipc = reinterpret_cast<uint32_t>(pc_ + 1 * kInstrSize);
|
| - bool in_range = (ipc ^ static_cast<uint32_t>(target) >>
|
| - (kImm26Bits + kImmFieldShift)) == 0;
|
| + bool in_range = ((ipc ^ static_cast<uint32_t>(target)) >>
|
| + (kImm26Bits + kImmFieldShift)) == 0;
|
| DCHECK(in_range && ((target & 3) == 0));
|
| #endif
|
| positions_recorder()->WriteRecordedPositions();
|
| - GenInstrJump(JAL, target >> 2);
|
| + GenInstrJump(JAL, (target >> 2) & kImm26Mask);
|
| }
|
|
|
|
|
|
|