aarch64: Make AARCH64_OPDE_REG_LIST take a bitfield
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 30 Mar 2023 10:09:08 +0000 (11:09 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Thu, 30 Mar 2023 10:09:08 +0000 (11:09 +0100)
commit38c5aa5e88406193fe184a129cd397bc09c304e2
treee3efcdc0339a3d92042dc49a914acce4a46a6eef
parentdb3c06bf93f577b9eb40e2cc5d67bfd0671d3c11
aarch64: Make AARCH64_OPDE_REG_LIST take a bitfield

AARCH64_OPDE_REG_LIST took a single operand that specified the
expected number of registers.  However, there are quite a few
SME2 instructions that have both 2-register forms and (separate)
4-register forms.  If the user tries to use a 3-register list,
it isn't obvious which opcode entry they meant.  Saying that we
expect 2 registers and saying that we expect 4 registers would
both be wrong.

This patch therefore switches the operand to a bitfield.  If a
AARCH64_OPDE_REG_LIST is reported against multiple opcode entries,
the patch ORs up the expected lengths.

This has no user-visible effect yet.  A later patch adds more error
strings, alongside tests that use them.
gas/config/tc-aarch64.c
opcodes/aarch64-opc.c