binutils Newspaper
OCTOBER 6, 2026
aarch64 — Proposed

aarch64: Add FEAT_PAuth_LR asm/disasm support

Adds assembler and disassembler support for AArch64's FEAT_PAuth_LR feature, including new instructions and a feature option.

This patch series introduces assembler and disassembler support for the AArch64 FEAT_PAuth_LR (Pointer Authentication for Link Register) extension. The series adds a new +pauth-lr feature option that depends on +pauth, and incorporates new instruction mnemonics for pointer authentication of the LR register, including register and immediate PC-relative forms. The immediate PC-relative operand is handled as an internal gas fixup. The series is structured with intermediate commits for generated files to ease review of manual changes, with plans to squash them before upstream submission.

In Details

This is the cover letter for a series of 7 patches that add support for the AArch64 FEAT_PAuth_LR extension to binutils' assembler (gas) and disassembler (objdump). FEAT_PAuth_LR enhances security by allowing the Link Register (LR) to be signed or authenticated using the Stack Pointer (SP) and Program Counter (PC) as diversifiers. The series introduces a new feature flag +pauth-lr (which implies +pauth), new instruction mnemonics for various forms of PAuth_LR (register operands, immediate PC-relative operands), and integrates these into the opcode tables and parsing logic. The series uses…

For Context
FEAT_PAuth_LR
A specific AArch64 hardware feature extension for Pointer Authentication of the Link Register. It enhances security by protecting the LR register from corruption.
Link Register (LR)
In ARM architectures, the LR register stores the return address for function calls. Protecting it is crucial for preventing control-flow hijacking attacks.
Pointer Authentication (PAuth)
A security feature that uses cryptographic techniques to generate and verify pointers, making it harder for attackers to forge or corrupt pointers.
diversifiers
Values used in conjunction with cryptographic operations (like pointer authentication) to create unique keys or context for each operation, enhancing security.
gas
The GNU Assembler, part of the binutils package. It translates assembly language code into machine code.
objdump
A utility that displays information from object files, including disassembly of machine code. It is part of binutils.
internal fixup
A process within the assembler where it resolves addresses or offsets that depend on the final code layout, often without emitting explicit relocation information to the object file.
Filed Under: aarch64securityassemblerdisassemblerarchitecture