[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