[PATCH] D128998: [libunwind] Handle G in personality string

Evgenii Stepanov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 5 16:36:54 PDT 2022


eugenis added a comment.

This seems ok in general, but I'd like someone with better knowledge of the code to review.



================
Comment at: libunwind/src/DwarfInstructions.hpp:221
+        p &= ~15ULL;
+        for (; p < cfa; p += 16) {
+          __asm__ __volatile__(
----------------
fmayer wrote:
> eugenis wrote:
> > Is this right? I'd expect to untag from current frame SP to previous frame SP, not to CFA (which could be at arbitrary offset in the frame AFAIK).
> > 
> ARM64 ABI says this: "The CFA is the value of the stack pointer (sp) at the call site in the previous frame."
> 
> (see https://github.com/ARM-software/abi-aa/blob/main/aadwarf64/aadwarf64.rst#42canonical-frame-address)
SGTM but change the comment - this is not about SP in the previous frame at all, this is about CFA being at the bottom of the current stack frame.


================
Comment at: libunwind/src/DwarfParser.hpp:54
     bool      addressesSignedWithBKey;
+    bool mteTaggedFrame;
 #endif
----------------
whitespace here and below


================
Comment at: libunwind/src/UnwindCursor.hpp:1019
     R dummy;
     return stepWithCompactEncoding(dummy);
   }
----------------
Do we need MTE support here?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D128998/new/

https://reviews.llvm.org/D128998



More information about the llvm-commits mailing list