]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Correct disassembly of dot product instructions. users/linaro/binutils-2_28-branch
authorTamar Christina <tamar.christina@arm.com>
Tue, 19 Dec 2017 12:05:20 +0000 (12:05 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 15 Jan 2018 17:44:11 +0000 (15:44 -0200)
commit0231dce141801ffcdfef8b7f14cd903a6d3f21ba
tree193eea30265348d6e413321287ad706953bc11a1
parent7ebfa8a8441093a287e8896c503a162b673c15f7
Correct disassembly of dot product instructions.

Dot products deviate from the normal disassembly rules for lane indexed
instruction. Their canonical representation is in the form of:

v0.2s, v0.8b, v0.4b[0] instead of v0.2s, v0.8b, v0.b[0] to try to denote
that these instructions select 4x 1 byte elements instead of a single 1 byte
element.

Previously we were disassembling them following the normal rules, this patch
corrects the disassembly.

gas/

PR gas/22559
* config/tc-aarch64.c (vectype_to_qualifier): Support AARCH64_OPND_QLF_S_4B.
* gas/testsuite/gas/aarch64/dotproduct.d: Update disassembly.

include/

PR gas/22559
* aarch64.h (aarch64_opnd_qualifier): Add AARCH64_OPND_QLF_S_4B.

opcodes/

PR gas/22559
* aarch64-asm.c (aarch64_ins_reglane): Change AARCH64_OPND_QLF_S_B to
AARCH64_OPND_QLF_S_4B
* aarch64-dis.c (aarch64_ext_reglane): Change AARCH64_OPND_QLF_S_B to
AARCH64_OPND_QLF_S_4B
* aarch64-opc.c (aarch64_opnd_qualifiers): Add 4b variant.
* aarch64-tbl.h (QL_V2DOT): Change S_B to S_4B.

Change-Id: Ie80d878ceaeaca281f85583e77e4e367e2a909ea
gas/ChangeLog.linaro
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/dotproduct.d
include/ChangeLog.linaro
include/opcode/aarch64.h
opcodes/ChangeLog.linaro
opcodes/aarch64-asm.c
opcodes/aarch64-dis.c
opcodes/aarch64-opc.c
opcodes/aarch64-tbl.h