aarch64: Add the SME2 shift instructions
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 30 Mar 2023 10:09:16 +0000 (11:09 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 30 Mar 2023 10:09:16 +0000 (11:09 +0100)
commit6efa660124f481a5ba415cedd195764ea6ac09fd
tree5ceb8e36ccb0439e3256688ff9cfb98abb06673d
parentce623e7aa486d1330c9a4529c77a302d2fdcb801
aarch64: Add the SME2 shift instructions

There are two instruction formats here:

- SQRSHR, SQRSHRU and UQRSHR, which operate on lists of two
  or four registers.

- SQRSHRN, SQRSHRUN and UQRSHRN, which operate on lists of
  four registers.

These are the first SME2 instructions to have immediate operands.
The patch makes sure that, when parsing SME2 instructions with
immediate operands, the new predicate-as-counter registers are
parsed as registers rather than as #-less immediates.
25 files changed:
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/sme2-27-invalid.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-27-invalid.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-27-invalid.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-27-noarch.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-27-noarch.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-27.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-27.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-28-invalid.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-28-invalid.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-28-invalid.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-28-noarch.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-28-noarch.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-28.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-28.s [new file with mode: 0644]
include/opcode/aarch64.h
opcodes/aarch64-asm-2.c
opcodes/aarch64-asm.c
opcodes/aarch64-asm.h
opcodes/aarch64-dis-2.c
opcodes/aarch64-dis.c
opcodes/aarch64-dis.h
opcodes/aarch64-opc-2.c
opcodes/aarch64-opc.c
opcodes/aarch64-tbl.h