================
@@ -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