Commit 4e015da2 authored by Zhao Jiazhong's avatar Zhao Jiazhong Committed by Commit Bot

[mips] Fix last_call_pc_ when switching buffers

When switching buffers, the last_call_pc_ should be adjusted like
pc_, because the buffer's start address is changed.

Besides, add a missing BlockTrampolinePoolScope.

Change-Id: Iee6d9795a256e041bb2dbf7d8ca63f346a248539
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2504855Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn>
Cr-Commit-Position: refs/heads/master@{#70823}
parent 779b0edd
......@@ -3559,6 +3559,7 @@ void Assembler::GrowBuffer() {
buffer_ = std::move(new_buffer);
buffer_start_ = new_start;
pc_ += pc_delta;
last_call_pc_ += pc_delta;
reloc_info_writer.Reposition(reloc_info_writer.pos() + rc_delta,
reloc_info_writer.last_pc() + pc_delta);
......
......@@ -3755,6 +3755,7 @@ void Assembler::GrowBuffer() {
buffer_ = std::move(new_buffer);
buffer_start_ = new_start;
pc_ += pc_delta;
last_call_pc_ += pc_delta;
reloc_info_writer.Reposition(reloc_info_writer.pos() + rc_delta,
reloc_info_writer.last_pc() + pc_delta);
......
......@@ -5885,6 +5885,7 @@ void TurboAssembler::ResetSpeculationPoisonRegister() {
void TurboAssembler::CallForDeoptimization(Builtins::Name target, int,
Label* exit, DeoptimizeKind kind,
Label*) {
BlockTrampolinePoolScope block_trampoline_pool(this);
Ld(t9,
MemOperand(kRootRegister, IsolateData::builtin_entry_slot_offset(target)));
Call(t9);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment