diff options
| author | Ahmed Bougacha <ahmed@bougacha.org> | 2024-05-31 14:08:10 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-31 14:08:10 -0700 |
| commit | cc548ec47c05971a67ed9ec7086d414aabcf8b05 (patch) | |
| tree | 7eba3555718856da0f5f8e7727b006105de78a59 /lldb/test/API/python_api/interpreter | |
| parent | 68fdc1cf87eb04686e079af27eaeec0f1c41f8cc (diff) | |
[AArch64][PAC] Lower authenticated calls with ptrauth bundles. (#85736)
This adds codegen support for the "ptrauth" operand bundles, which can
be used to augment indirect calls with the equivalent of an
`@llvm.ptrauth.auth` intrinsic call on the call target (possibly
preceded by an `@llvm.ptrauth.blend` on the auth discriminator if
applicable.)
This allows the generation of combined authenticating calls
on AArch64 (in the BLRA* PAuth instructions), while avoiding
the raw just-authenticated function pointer from being
exposed to attackers.
This is done by threading a PtrAuthInfo descriptor through
the call lowering infrastructure, eventually selecting a BLRA
pseudo. The pseudo encapsulates the safe discriminator
computation, which together with the real BLRA* call get emitted
in late pseudo expansion in AsmPrinter.
Note that this also applies to the other forms of indirect calls,
notably invokes, rvmarker, and tail calls. Tail-calls in particular
bring some additional complexity, with the intersecting register
constraints of BTI and PAC discriminator computation.
However this doesn't currently support PAuth_LR tail-call variants.
This also adopts an x8+ allocation order for GPR64noip, matching
GPR64.
Diffstat (limited to 'lldb/test/API/python_api/interpreter')
0 files changed, 0 insertions, 0 deletions
