binutils Newspaper
OCTOBER 6, 2026
aarch64 — Proposed

aarch64: add PAuth_LR instructions with no or one-register operand

Adds support for AArch64 PAuth_LR instructions that take no operands or a single register operand, including new register types and tests.

This patch introduces support for AArch64 FEAT_PAuth_LR instructions that operate with zero or one register operand. It adds new instruction mnemonics like paci<k>sppc, pacnbi<k>sppc, auti<k>171615, and their register variants (autisppcr, retisppcr). A new register type R is defined to prevent misuse of SP or XZR registers. The changes include corresponding gas assembler configurations and test cases.

In Details

This patch extends the AArch64 assembler and disassembler support for the Pointer Authentication (PAuth) extension, specifically the PAuth_LR feature. It adds support for instructions that authenticate the Link Register (LR) using SP or XZR registers as diversifiers. The patch defines new instruction mnemonics and their encodings, a new register type R to constrain operand usage (preventing SP/XZR with certain instructions), and includes relevant test cases in gas/testsuite. The CI-tag:skip indicates this patch is part of a series where intermediate commits might not be independently bu…

For Context
FEAT_PAuth_LR
A specific AArch64 hardware feature extension related to Pointer Authentication, which enhances security by signing or authenticating the Link Register (LR).
PAuth_LR
Pointer Authentication for the Link Register. This feature uses special instructions to protect the LR register from being tampered with, typically used in security-sensitive code.
SP
Stack Pointer. A special-purpose register in ARM architectures that holds the address of the current top of the stack.
XZR
Zero Register in AArch64. This register always returns 0 when read and has no effect when written to. It's often used as a null operand.
gas
The GNU Assembler, part of the binutils package. It translates assembly language code into machine code.
Filed Under: aarch64securityassemblerdisassembler