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); |
} |