Index: src/mips64/assembler-mips64.cc |
diff --git a/src/mips64/assembler-mips64.cc b/src/mips64/assembler-mips64.cc |
index 91594d3dd342adbfd27d157ffe45f134de157b20..e0f12ed020f54f3102e95c73acfb599816adff98 100644 |
--- a/src/mips64/assembler-mips64.cc |
+++ b/src/mips64/assembler-mips64.cc |
@@ -1344,9 +1344,11 @@ void Assembler::bgezalc(Register rt, int16_t offset) { |
void Assembler::bgezall(Register rs, int16_t offset) { |
- DCHECK(kArchVariant == kMips64r6); |
+ DCHECK(kArchVariant != kMips64r6); |
DCHECK(!(rs.is(zero_reg))); |
+ BlockTrampolinePoolScope block_trampoline_pool(this); |
GenInstrImmediate(REGIMM, rs, BGEZALL, offset); |
+ BlockTrampolinePoolFor(1); // For associated delay slot. |
} |
@@ -1409,15 +1411,19 @@ void Assembler::bnezc(Register rs, int32_t offset) { |
void Assembler::j(int64_t target) { |
+ BlockTrampolinePoolScope block_trampoline_pool(this); |
GenInstrJump(J, static_cast<uint32_t>(target >> 2) & kImm26Mask); |
+ BlockTrampolinePoolFor(1); // For associated delay slot. |
} |
void Assembler::j(Label* target) { |
uint64_t imm = jump_offset(target); |
if (target->is_bound()) { |
+ BlockTrampolinePoolScope block_trampoline_pool(this); |
GenInstrJump(static_cast<Opcode>(kJRawMark), |
static_cast<uint32_t>(imm >> 2) & kImm26Mask); |
+ BlockTrampolinePoolFor(1); // For associated delay slot. |
} else { |
j(imm); |
} |
@@ -1427,8 +1433,11 @@ void Assembler::j(Label* target) { |
void Assembler::jal(Label* target) { |
uint64_t imm = jump_offset(target); |
if (target->is_bound()) { |
+ BlockTrampolinePoolScope block_trampoline_pool(this); |
+ positions_recorder()->WriteRecordedPositions(); |
GenInstrJump(static_cast<Opcode>(kJalRawMark), |
static_cast<uint32_t>(imm >> 2) & kImm26Mask); |
+ BlockTrampolinePoolFor(1); // For associated delay slot. |
} else { |
jal(imm); |
} |
@@ -1450,8 +1459,10 @@ void Assembler::jr(Register rs) { |
void Assembler::jal(int64_t target) { |
+ BlockTrampolinePoolScope block_trampoline_pool(this); |
positions_recorder()->WriteRecordedPositions(); |
GenInstrJump(JAL, static_cast<uint32_t>(target >> 2) & kImm26Mask); |
+ BlockTrampolinePoolFor(1); // For associated delay slot. |
} |