[all-commits] [llvm/llvm-project] ee4661: [AArch64][PAC] Emit auth call for Darwin tlv acces...
Ahmed Bougacha via All-commits
all-commits at lists.llvm.org
Fri Jul 12 16:49:49 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: ee4661e0f8eaff5da011e008187362f4ba947860
https://github.com/llvm/llvm-project/commit/ee4661e0f8eaff5da011e008187362f4ba947860
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-07-12 (Fri, 12 Jul 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
A llvm/test/CodeGen/AArch64/ptrauth-tls-darwin.ll
Log Message:
-----------
[AArch64][PAC] Emit auth call for Darwin tlv access thunk. (#97658)
With ptrauth-calls, function pointers are supposed to be signed.
On Darwin that includes the TLS indirection accessor (`_tlv_get_addr`).
We simply sign it with the plain function-pointer schema (IA,0), which
lets us do a `blraaz` when calling it.
Note that this doesn't have any kind of diversity, even when function
pointer diversity is enabled in the frontend. On arm64e this accessor
is never signed that way, but the obvious alternative where this (or
another backend-generated) function pointer needs to be diversified
would need more than the "ptrauth-calls" attribute as it exists today.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list