[libunwind] [libunwind][arm64e] Mach-O Support unwinding PAuth_LR frames (PR #202772)

Daniil Kovalev via cfe-commits cfe-commits at lists.llvm.org
Fri Jun 26 06:41:58 PDT 2026


================
@@ -1917,6 +1917,28 @@ class _LIBUNWIND_HIDDEN Registers_arm64 {
 #endif
     _registers.__pc = value;
   }
+  __attribute__((target("pauth-lr"))) void setIPPAuthLR(uint64_t value,
+                                                        uint64_t signing_pc) {
+#if defined(_LIBUNWIND_TARGET_AARCH64_AUTHENTICATED_UNWINDING)
+#if __has_builtin(__builtin_ptrauth_auth_with_pc_and_resign)
+    value = (uint64_t)ptrauth_auth_with_pc_and_resign(
+        (void *)value, ptrauth_key_process_dependent_code, (void *)getSP(),
+        (void *)signing_pc, ptrauth_key_return_address, &_registers.__pc);
----------------
kovdan01 wrote:

Was it intentional to use different identifiers `ptrauth_key_return_address` and `ptrauth_key_process_dependent_code` for authenticating and resigning (given that for real platforms like arm64e these seem to be identical and stand for IB key)? It probably deserves a comment with explanation

https://github.com/llvm/llvm-project/pull/202772


More information about the cfe-commits mailing list