[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 USING_ARM_EHABI
+    if ((state & _US_ACTION_MASK) == _US_VIRTUAL_UNWIND_FRAME)
+#else
----------------
timonvo wrote:
> 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.


http://reviews.llvm.org/D15781





More information about the llvm-commits mailing list