[all-commits] [llvm/llvm-project] 735111: [AArch64][PAC] Lower auth/resign into checked sequ...
Ahmed Bougacha via All-commits
all-commits at lists.llvm.org
Mon Mar 18 22:26:28 PDT 2024
Branch: refs/heads/users/abougacha/ptrauth-auth-resign-isel
Home: https://github.com/llvm/llvm-project
Commit: 735111d2988d0582c058e337df1861a562e03f3a
https://github.com/llvm/llvm-project/commit/735111d2988d0582c058e337df1861a562e03f3a
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-03-18 (Mon, 18 Mar 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.cpp
M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.h
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
A llvm/test/CodeGen/AArch64/ptrauth-intrinsic-auth-resign-with-blend.ll
A llvm/test/CodeGen/AArch64/ptrauth-intrinsic-auth-resign.ll
Log Message:
-----------
[AArch64][PAC] Lower auth/resign into checked sequence.
This introduces 3 hardening modes in the authentication step of
auth/resign lowering:
- unchecked, which uses the AUT instructions as-is
- poison, which detects authentication failure (using an XPAC+CMP
sequence), explicitly yielding the XPAC result rather than the
AUT result, to avoid leaking
- trap, which additionally traps on authentication failure,
using BRK #0xC470 + key (IA C470, IB C471, DA C472, DB C473.)
Not all modes are necessarily useful in all contexts, and there
are more performant alternative lowerings in specific contexts
(e.g., when I/D TBI enablement is a target ABI guarantee.)
This is controlled by the `ptrauth-auth-traps` function attributes,
and can be overridden using `-aarch64-ptrauth-auth-checks=`.
Commit: 5d7cd2c4e48700f7a080affa94f4dea3ded8d02d
https://github.com/llvm/llvm-project/commit/5d7cd2c4e48700f7a080affa94f4dea3ded8d02d
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-03-18 (Mon, 18 Mar 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
Log Message:
-----------
[AArch64] Add FPAC feature.
Commit: de7afdad0e6e38d666f9516e74caeb954a9013f0
https://github.com/llvm/llvm-project/commit/de7afdad0e6e38d666f9516e74caeb954a9013f0
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-03-18 (Mon, 18 Mar 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
A llvm/test/CodeGen/AArch64/ptrauth-fpac.ll
Log Message:
-----------
[AArch64][PAC] Don't emit auth/resign checks when targeting FPAC.
When the FPAC feature is present, we can rely on its faulting
behavior to avoid emitting the expensive authentication failure
check sequence ourvelves. In which case we emit the same
sequence as a plain unchecked auth/resign.
Compare: https://github.com/llvm/llvm-project/compare/735111d2988d%5E...de7afdad0e6e
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