[PATCH 0/7] aarch64: Add FEAT_PAuth_LR asm/disasm support

Muhammad Kamran muhammad.kamran@arm.com
Thu Aug 27 15:10:07 GMT 2026


This series adds AArch64 assembler and disassembler support for
FEAT_PAuth_LR.

FEAT_PAuth_LR adds pointer authentication instructions that sign or
authenticate LR using SP and a PC value as diversifiers.  The series adds
the new +pauth-lr feature option, makes it imply +pauth, and adds the
new instruction mnemonics, including the register and imm16 PC-relative
forms.  The imm16 PC-relative operand is handled as a gas internal fixup.

The generated opcode files are split into separate commits only to make
the manual table changes easier to review.  Before pushing upstream,
each "regenerate autogenerated files from aarch64-gen" commit is to be
squashed into the preceding commit that changes the generator inputs.

Because of this review-only split, some intermediate commits do not build
standalone: they update the generator inputs but not the corresponding
generated opcode files.  I have marked those commits with CI-tag:skip for
Linaro CI so that CI builds the following commit containing the regenerated
files.  These tags will be removed before upstream merge, when the
generated-file commits are squashed back into their corresponding
functional commits.

Tested with the AArch64 gas testsuite.

Patch summary:

aarch64: add PAuth_LR instructions belonging to NOP space
aarch64: regenerate autogenerated files from aarch64-gen
aarch64: add pauth-lr feature option
aarch64: add PAuth_LR instructions with no or one-register operand
aarch64: regenerate autogenerated files from aarch64-gen
aarch64: add PAuth_LR instructions with imm16 operand
aarch64: regenerate autogenerated files from aarch64-gen

Matthieu Longo (4):
  aarch64: add PAuth_LR instructions belonging to NOP space
  aarch64: add pauth-lr feature option
  aarch64: add PAuth_LR instructions with no or one-register operand
  aarch64: add PAuth_LR instructions with imm16 operand

Muhammad Kamran (3):
  aarch64: regenerate autogenerated files from aarch64-gen
  aarch64: regenerate autogenerated files from aarch64-gen
  aarch64: regenerate autogenerated files from aarch64-gen

 gas/config/tc-aarch64.c                  |  49 ++-
 gas/testsuite/gas/aarch64/pauth_lr-bad.d |   3 +
 gas/testsuite/gas/aarch64/pauth_lr-bad.l |  18 +
 gas/testsuite/gas/aarch64/pauth_lr-bad.s |  26 ++
 gas/testsuite/gas/aarch64/pauth_lr.d     |  38 ++
 gas/testsuite/gas/aarch64/pauth_lr.s     |  48 +++
 gas/testsuite/gas/aarch64/system-3.d     |   2 +
 gas/testsuite/gas/aarch64/system-3.s     |   4 +
 gas/testsuite/gas/aarch64/system.d       |   2 +-
 include/opcode/aarch64.h                 |   4 +
 opcodes/aarch64-asm-2.c                  |   2 +
 opcodes/aarch64-dis-2.c                  | 476 +++++++++++++++--------
 opcodes/aarch64-opc-2.c                  |   1 +
 opcodes/aarch64-opc.c                    |   7 +-
 opcodes/aarch64-tbl-2.h                  |  17 +
 opcodes/aarch64-tbl.h                    |  36 ++
 16 files changed, 569 insertions(+), 164 deletions(-)
 create mode 100644 gas/testsuite/gas/aarch64/pauth_lr-bad.d
 create mode 100644 gas/testsuite/gas/aarch64/pauth_lr-bad.l
 create mode 100644 gas/testsuite/gas/aarch64/pauth_lr-bad.s
 create mode 100644 gas/testsuite/gas/aarch64/pauth_lr.d
 create mode 100644 gas/testsuite/gas/aarch64/pauth_lr.s

-- 
2.43.0



More information about the Binutils mailing list