[all-commits] [llvm/llvm-project] de3859: [AArch64][PAC] Lower auth/resign into checked sequ...
Ahmed Bougacha via All-commits
all-commits at lists.llvm.org
Mon Feb 12 09:49:24 PST 2024
Branch: refs/heads/users/ahmedbougacha/ptrauth-call-bundles
Home: https://github.com/llvm/llvm-project
Commit: de38592522c2d8af6845857f4d7e363c4aaa5723
https://github.com/llvm/llvm-project/commit/de38592522c2d8af6845857f4d7e363c4aaa5723
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-02-12 (Mon, 12 Feb 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: 80b05e7cda461a3fd32eb53227989f79622d4b72
https://github.com/llvm/llvm-project/commit/80b05e7cda461a3fd32eb53227989f79622d4b72
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-02-12 (Mon, 12 Feb 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
Log Message:
-----------
[AArch64] Add FPAC feature.
Commit: 251086cbf63ccdfd990023665667d367c7393c60
https://github.com/llvm/llvm-project/commit/251086cbf63ccdfd990023665667d367c7393c60
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-02-12 (Mon, 12 Feb 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.
Commit: ba334a1ba83977a0753d24a3e678b15e3f67e163
https://github.com/llvm/llvm-project/commit/ba334a1ba83977a0753d24a3e678b15e3f67e163
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-02-12 (Mon, 12 Feb 2024)
Changed paths:
M llvm/lib/Target/AArch64/AArch64RegisterInfo.td
Log Message:
-----------
[AArch64] Adopt x8+ allocation order for GPR64noip.
73078ecd381 added GPR64noip for hwasan pseudos.
Give it an allocation order that prefers allocating from x8 and up,
to match GPR64: this allows for easier regalloc, as x0-x7 are
likely to be used for parameter passing.
Commit: c9fea9a4c9e52b1e2375c74fadea8750f82d0870
https://github.com/llvm/llvm-project/commit/c9fea9a4c9e52b1e2375c74fadea8750f82d0870
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2024-02-12 (Mon, 12 Feb 2024)
Changed paths:
M llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h
M llvm/include/llvm/CodeGen/TargetLowering.h
M llvm/lib/CodeGen/GlobalISel/CallLowering.cpp
M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.h
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp
M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/ptrauth-invoke.ll
M llvm/test/CodeGen/AArch64/branch-target-enforcement-indirect-calls.ll
A llvm/test/CodeGen/AArch64/ptrauth-bti-call.ll
A llvm/test/CodeGen/AArch64/ptrauth-call-rv-marker.ll
A llvm/test/CodeGen/AArch64/ptrauth-call.ll
A llvm/test/CodeGen/AArch64/ptrauth-invoke.ll
Log Message:
-----------
[AArch64][PAC] Lower authenticated calls with ptrauth bundles.
Compare: https://github.com/llvm/llvm-project/compare/de38592522c2%5E...c9fea9a4c9e5
More information about the All-commits
mailing list