[PATCH 0/7] aarch64: Add FEAT_PAuth_LR asm/disasm support
Muhammad Kamran <[email protected]>
| Newsgroups | gmane.comp.gnu.binutils |
|---|---|
| Message-ID | <[email protected]> |
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