5 #ifndef V8_COMPILER_BACKEND_ARM_UNWINDING_INFO_WRITER_ARM_H_ 6 #define V8_COMPILER_BACKEND_ARM_UNWINDING_INFO_WRITER_ARM_H_ 8 #include "src/eh-frame.h" 14 class InstructionBlock;
20 eh_frame_writer_(zone),
22 block_will_exit_(
false),
23 block_initial_states_(zone) {
24 if (enabled()) eh_frame_writer_.Initialize();
27 void SetNumberOfInstructionBlocks(
int number) {
28 if (enabled()) block_initial_states_.resize(number);
34 void MarkLinkRegisterOnTopOfStack(
int pc_offset);
35 void MarkPopLinkRegisterFromTopOfStack(
int pc_offset);
37 void MarkFrameConstructed(
int at_pc);
38 void MarkFrameDeconstructed(
int at_pc);
40 void MarkBlockWillExit() { block_will_exit_ =
true; }
42 void Finish(
int code_size) {
43 if (enabled()) eh_frame_writer_.Finish(code_size);
47 return enabled() ? &eh_frame_writer_ :
nullptr;
51 bool enabled()
const {
return FLAG_perf_prof_unwinding_info; }
55 explicit BlockInitialState(
bool saved_lr) : saved_lr_(saved_lr) {}
63 bool block_will_exit_;
72 #endif // V8_COMPILER_BACKEND_ARM_UNWINDING_INFO_WRITER_ARM_H_