[perf-prof][arm64] Emit unwinding info to record the saved FP
When emitting a frame, we always push the old frame pointer at offset 0 relative to the new frame pointer. However, we didn't emit DWARF opcodes to inform perf of this. BUG= Review-Url: https://codereview.chromium.org/2795253002 Cr-Commit-Position: refs/heads/master@{#44384}
This commit is contained in:
parent
eddf90c4a7
commit
2db1f598c5
@ -24,6 +24,7 @@ void UnwindingInfoWriter::BeginInstructionBlock(int pc_offset,
|
||||
eh_frame_writer_.AdvanceLocation(pc_offset);
|
||||
if (initial_state->saved_lr_) {
|
||||
eh_frame_writer_.RecordRegisterSavedToStack(lr, kPointerSize);
|
||||
eh_frame_writer_.RecordRegisterSavedToStack(fp, 0);
|
||||
} else {
|
||||
eh_frame_writer_.RecordRegisterFollowsInitialRule(lr);
|
||||
}
|
||||
@ -76,6 +77,7 @@ void UnwindingInfoWriter::MarkFrameConstructed(int at_pc) {
|
||||
// the construction, since the LR itself is not modified in the process.
|
||||
eh_frame_writer_.AdvanceLocation(at_pc);
|
||||
eh_frame_writer_.RecordRegisterSavedToStack(lr, kPointerSize);
|
||||
eh_frame_writer_.RecordRegisterSavedToStack(fp, 0);
|
||||
saved_lr_ = true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user