[PATCH] D15781: [compiler-rt] Add support for ARM EHABI to gcc_personality_v0.
Logan Chien via llvm-commits
llvm-commits at lists.llvm.org
Sun Feb 28 07:34:32 PST 2016
logan added inline comments.
Comment at: lib/builtins/gcc_personality_v0.c:185
@@ +184,3 @@
+ if ((state & _US_ACTION_MASK) == _US_VIRTUAL_UNWIND_FRAME)
> I believe what I have is correct. In short _US_VIRTUAL_UNWIND_FRAME is the equivalent of _UA_SEARCH_PHASE on other architectures. GCC's implementation has similar logic as well.
> This is discussed in http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038b/IHI0038B_ehabi.pdf, Sec 7.3. During Phase 1, the unwinder '... calls the PR, passing state
> _US_VIRTUAL_UNWIND_FRAME, the UCB pointer, and an _Unwind_Context pointer for VRS access.' It's only during Phase 2 that the unwinder calls the PR with _US_UNWIND_FRAME_STARTING. During that phase we have to make sure that we call the landing pad if it exists, hence we can't bail early anymore here.
@timonvo: What will happen if `_US_UNWIND_FRAME_RESUME` is passed to this personality function? I think it should not search for landing pads and install the context. Am I wrong? Thanks.
More information about the llvm-commits