[PATCH 00/12] aarch64: Add Armv9.4-A support for the d128 extension
Victor Do Nascimento
victor.donascimento@arm.com
Wed Jan 3 01:17:14 GMT 2024
The d128 extension released as an optional architectural feature for
Armv9.4-a introduces 128-bit page table descriptors and support for
these.
Support is done via 128-bit system registers and instructions to
retrieve and write to these in the form of `mrrs'/`msrr',
respectively, as well as the 128-bit system instruction `sysp' and its
alias `tlbip': TLB Invalidate Pair operation.
This patch series adds the necessary changes for assembly, disassembly
and validation of these operations and their various operands.
Victor Do Nascimento (12):
aarch64: Add +d128 architectural feature support
aarch64: Expand maximum number of operands from 5 to 6
aarch64: Add support for xzr register in register pair operands
aarch64: Add support for optional operand pairs
aarch64: Add support for the SYSP 128-bit system instruction
aarch64: Apply narrowing of allowed immediate values for SYSP
aarch64: Create QL_SRC_X2 and QL_DEST_X2 qualifier macros
aarch64: Implement TLBIP 128-bit instruction
aarch64: Add xs variants of tlbip operands
aarch64: Add TLBIP tests
aarch64: Add support for 128-bit system register mrrs and msrr insns
arch64: Add optional operand register pair support tests
gas/config/tc-aarch64.c | 54 ++++++-
gas/doc/c-aarch64.texi | 2 +
gas/testsuite/gas/aarch64/illegal-sys128.d | 3 +
gas/testsuite/gas/aarch64/illegal-sys128.l | 4 +
gas/testsuite/gas/aarch64/illegal-sys128.s | 5 +
.../gas/aarch64/illegal-sysp-tlbip-optional.d | 4 +
.../gas/aarch64/illegal-sysp-tlbip-optional.l | 4 +
.../gas/aarch64/illegal-sysp-tlbip-optional.s | 10 ++
gas/testsuite/gas/aarch64/illegal-sysreg128.d | 2 +
gas/testsuite/gas/aarch64/illegal-sysreg128.l | 11 ++
gas/testsuite/gas/aarch64/illegal-sysreg128.s | 8 +
.../gas/aarch64/sysp-tlbip-optional.d | 17 ++
.../gas/aarch64/sysp-tlbip-optional.s | 22 +++
gas/testsuite/gas/aarch64/sysp.d | 10 ++
gas/testsuite/gas/aarch64/sysp.s | 4 +
gas/testsuite/gas/aarch64/sysreg128.d | 28 ++++
gas/testsuite/gas/aarch64/sysreg128.s | 17 ++
gas/testsuite/gas/aarch64/tlbip.d | 127 +++++++++++++++
gas/testsuite/gas/aarch64/tlbip.s | 132 +++++++++++++++
include/opcode/aarch64.h | 26 ++-
opcodes/aarch64-dis.c | 9 +-
opcodes/aarch64-opc.c | 152 +++++++++++++++++-
opcodes/aarch64-opc.h | 1 +
opcodes/aarch64-tbl.h | 34 ++++
24 files changed, 672 insertions(+), 14 deletions(-)
create mode 100644 gas/testsuite/gas/aarch64/illegal-sys128.d
create mode 100644 gas/testsuite/gas/aarch64/illegal-sys128.l
create mode 100644 gas/testsuite/gas/aarch64/illegal-sys128.s
create mode 100644 gas/testsuite/gas/aarch64/illegal-sysp-tlbip-optional.d
create mode 100644 gas/testsuite/gas/aarch64/illegal-sysp-tlbip-optional.l
create mode 100644 gas/testsuite/gas/aarch64/illegal-sysp-tlbip-optional.s
create mode 100644 gas/testsuite/gas/aarch64/illegal-sysreg128.d
create mode 100644 gas/testsuite/gas/aarch64/illegal-sysreg128.l
create mode 100644 gas/testsuite/gas/aarch64/illegal-sysreg128.s
create mode 100644 gas/testsuite/gas/aarch64/sysp-tlbip-optional.d
create mode 100644 gas/testsuite/gas/aarch64/sysp-tlbip-optional.s
create mode 100644 gas/testsuite/gas/aarch64/sysp.d
create mode 100644 gas/testsuite/gas/aarch64/sysp.s
create mode 100644 gas/testsuite/gas/aarch64/sysreg128.d
create mode 100644 gas/testsuite/gas/aarch64/sysreg128.s
create mode 100644 gas/testsuite/gas/aarch64/tlbip.d
create mode 100644 gas/testsuite/gas/aarch64/tlbip.s
--
2.42.0
More information about the Binutils
mailing list