[frames] Don't consider baseline prologue builtin frames BASELINE
Now that we create a full frame for interrupts during the baseline out-of-line prologue, we shouldn't consider the out-of-line prologue builtin's frames as BASELINE, but rather have the frame above be the baseline frame. Change-Id: Icf96a6be4cf4bff0e482964bece12d397a26c268 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712789 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#72919}
This commit is contained in:
parent
f4ea6c5516
commit
4bc932bfd1
@ -225,13 +225,10 @@ bool IsInterpreterFramePc(Isolate* isolate, Address pc,
|
||||
isolate->builtins()->builtin(Builtins::kInterpreterEnterBytecodeAdvance);
|
||||
Code interpreter_bytecode_dispatch =
|
||||
isolate->builtins()->builtin(Builtins::kInterpreterEnterBytecodeDispatch);
|
||||
Code baseline_prologue =
|
||||
isolate->builtins()->builtin(Builtins::kBaselineOutOfLinePrologue);
|
||||
|
||||
if (interpreter_entry_trampoline.contains(pc) ||
|
||||
interpreter_bytecode_advance.contains(pc) ||
|
||||
interpreter_bytecode_dispatch.contains(pc) ||
|
||||
baseline_prologue.contains(pc)) {
|
||||
interpreter_bytecode_dispatch.contains(pc)) {
|
||||
return true;
|
||||
} else if (FLAG_interpreted_frames_native_stack) {
|
||||
intptr_t marker = Memory<intptr_t>(
|
||||
@ -590,8 +587,7 @@ StackFrame::Type StackFrame::ComputeType(const StackFrameIteratorBase* iterator,
|
||||
if (code_obj.is_interpreter_trampoline_builtin()) {
|
||||
return INTERPRETED;
|
||||
}
|
||||
if (code_obj.is_baseline_prologue_builtin() ||
|
||||
code_obj.is_baseline_leave_frame_builtin()) {
|
||||
if (code_obj.is_baseline_leave_frame_builtin()) {
|
||||
return BASELINE;
|
||||
}
|
||||
if (code_obj.is_turbofanned()) {
|
||||
|
@ -349,7 +349,7 @@ inline int ReadUint(ByteArray array, int* index) {
|
||||
|
||||
int Code::GetBytecodeOffsetForBaselinePC(Address baseline_pc) {
|
||||
DisallowGarbageCollection no_gc;
|
||||
if (is_baseline_prologue_builtin()) return kFunctionEntryBytecodeOffset;
|
||||
CHECK(!is_baseline_prologue_builtin());
|
||||
if (is_baseline_leave_frame_builtin()) return kFunctionExitBytecodeOffset;
|
||||
CHECK_EQ(kind(), CodeKind::BASELINE);
|
||||
ByteArray data = ByteArray::cast(source_position_table());
|
||||
|
Loading…
Reference in New Issue
Block a user