]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[AArch64][SVE 30/32] Add SVE instruction classes
authorRichard Sandiford <richard.sandiford@arm.com>
Sat, 18 Jun 2016 10:13:28 +0000 (11:13 +0100)
committerRichard Sandiford <richard.sandiford@arm.com>
Tue, 23 Aug 2016 08:41:04 +0000 (09:41 +0100)
commit32054386cb652b0ca5ac31390c9de5b1784c133e
tree58740ac6c18883c71a57198cae74a26c27c27e04
parent936b52907bc22f1f0c4c4bf7865d6f70ceb25eb2
[AArch64][SVE 30/32] Add SVE instruction classes

The main purpose of the SVE aarch64_insn_classes is to describe how
an index into an aarch64_opnd_qualifier_seq_t is represented in the
instruction encoding.  Other instructions usually use flags for this
information, but (a) we're running out of those and (b) the iclass
would otherwise be unused for SVE.

include/opcode/
* aarch64.h (sve_cpy, sve_index, sve_limm, sve_misc, sve_movprfx)
(sve_pred_zm, sve_shift_pred, sve_shift_unpred, sve_size_bhs)
(sve_size_bhsd, sve_size_hsd, sve_size_sd): New aarch64_insn_classes.

opcodes/
* aarch64-opc.h (FLD_SVE_M_4, FLD_SVE_M_14, FLD_SVE_M_16)
(FLD_SVE_sz, FLD_SVE_tsz, FLD_SVE_tszl_8, FLD_SVE_tszl_19): New
aarch64_field_kinds.
* aarch64-opc.c (fields): Add corresponding entries.
* aarch64-asm.c (aarch64_get_variant): New function.
(aarch64_encode_variant_using_iclass): Likewise.
(aarch64_opcode_encode): Call it.
* aarch64-dis.c (aarch64_decode_variant_using_iclass): New function.
(aarch64_opcode_decode): Call it.

Change-Id: Ia562434a84b519aecd21b4cd7d3f5e2dfb9af67d
include/opcode/aarch64.h
opcodes/aarch64-asm.c
opcodes/aarch64-dis.c
opcodes/aarch64-opc.c
opcodes/aarch64-opc.h