================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to