]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
gas, aarch64: Add SME2 lutv2 extension
authorsaurabh.jha@arm.com <saurabh.jha@arm.com>
Fri, 21 Jun 2024 15:30:59 +0000 (16:30 +0100)
committerRichard Earnshaw <rearnsha@arm.com>
Mon, 24 Jun 2024 14:00:40 +0000 (15:00 +0100)
commitadea87e275802fb7afe7acefae1477f692c48969
tree8b7ef7d13df4366cfb917425a09bb3e95cd14ce9
parentc702f1ad8a6a51b9c74445c77e1f6e822ba9293b
gas, aarch64: Add SME2 lutv2 extension

Introduces instructions for the SME2 lutv2 extension for AArch64. They
are documented in the following document:

  * ARM DDI0602

For both luti4 instructions, we introduced an operand called
SME_Znx2_BIT_INDEX. We use the existing function parse_vector_reg_list
for parsing but modified that function so that it can accept operands
without qualifiers and rejects instructions that have operands with
qualifiers but are not supposed to have operands with qualifiers.
For disassembly, we modified print_register_list so that it could
accept register lists without qualifiers.

For one luti4 instruction, we introduced a SME_Zdnx4_STRIDED. It is
similar to SME_Ztx4_STRIDED and we could use existing code for parsing,
encoding, and disassembly.

For movt instruction, we introduced an operand called SME_ZT0_INDEX2_12.
This is a ZT0 register with a bit index encoded in [13:12]. It is
similar to SME_ZT0_INDEX.

We also introduced an iclass named sme_size_12_b so that we can encode
size bits [13:12] correctly when only 'b' is allowed as qualifier.
20 files changed:
gas/NEWS
gas/config/tc-aarch64.c
gas/doc/c-aarch64.texi
gas/testsuite/gas/aarch64/sme2-8-invalid.l
gas/testsuite/gas/aarch64/sme2-lutv2-bad.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-lutv2-bad.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-lutv2-illegal.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-lutv2-illegal.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-lutv2-illegal.s [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-lutv2.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/sme2-lutv2.s [new file with mode: 0644]
include/opcode/aarch64.h
opcodes/aarch64-asm-2.c
opcodes/aarch64-asm.c
opcodes/aarch64-dis-2.c
opcodes/aarch64-dis.c
opcodes/aarch64-opc-2.c
opcodes/aarch64-opc.c
opcodes/aarch64-opc.h
opcodes/aarch64-tbl.h