aarch64: Prefer register ranges & support wrapping
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 30 Mar 2023 10:09:10 +0000 (11:09 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 30 Mar 2023 10:09:10 +0000 (11:09 +0100)
commit4eede8c2442115513a3f0c4f3610fbd6fe919a58
tree0dd36c53aa52fe9a8d739b2c55992abd30013612
parentf5b57feac2389eba64bea45f0115474fbbb13d8e
aarch64: Prefer register ranges & support wrapping

Until now, binutils has supported register ranges such
as { v0.4s - v3.4s } as an unofficial shorthand for
{ v0.4s, v1.4s, v2.4s, v3.4s }.  The SME2 ISA embraces this form
and makes it the preferred disassembly.  It also embraces wrapped
lists such as { z31.s - z2.s }, which is something that binutils
didn't previously allow.

The range form was already binutils's preferred disassembly for 3- and
4-register lists.  This patch prefers it for 2-register lists too.
The patch also adds support for wrap-around.
12 files changed:
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/illegal-sve2.l
gas/testsuite/gas/aarch64/neon-vfp-reglist-post.d
gas/testsuite/gas/aarch64/neon-vfp-reglist.d
gas/testsuite/gas/aarch64/reglist-1.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/reglist-1.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/reglist-2.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/reglist-2.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/reglist-2.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sve.d
gas/testsuite/gas/aarch64/sve2.d
opcodes/aarch64-opc.c