Add support for V_4B so we can properly reject it.
authorTamar Christina <tamar.christina@arm.com>
Tue, 19 Dec 2017 12:04:13 +0000 (12:04 +0000)
committerTamar Christina <tamar.christina@arm.com>
Tue, 19 Dec 2017 12:19:15 +0000 (12:19 +0000)
commita3b3345ae62503982698171bcfce0afe23bd8a31
tree3d456a11868c44ea882e3490e6c157d8a6c525f7
parentbef7475fbda88374ca488b0acbbfe1d3d4ab3e5f
Add support for V_4B so we can properly reject it.

Previously parse_vector_type_for_operand was changed to allow the use of 4b
register size for indexed lane instructions. However this had the unintended
side effect of also allowing 4b for normal vector registers.

Because this support was only partial the rest of the tool silently treated
4b as 8b and continued. This patch adds full support for 4b so it can be
properly distinguished from 8b and the correct errors are generated.

With this patch you still can't encode any instruction which actually requires
v<num>.4b but such instructions don't exist so to prevent needing a workaround
in get_vreg_qualifier_from_value this was just omitted.

gas/

PR gas/22529
* config/tc-aarch64.c (vectype_to_qualifier): Support AARCH64_OPND_QLF_V_4B.
* gas/testsuite/gas/aarch64/pr22529.s: New.
* gas/testsuite/gas/aarch64/pr22529.d: New.
* gas/testsuite/gas/aarch64/pr22529.l: New.

include/

PR gas/22529
* opcode/aarch64.h (aarch64_opnd_qualifier): Add AARCH64_OPND_QLF_V_4B.

opcodes/

PR gas/22529
* aarch64-opc.c (aarch64_opnd_qualifiers): Add 4b variant.
gas/ChangeLog
gas/config/tc-aarch64.c
gas/testsuite/gas/aarch64/pr22529.d [new file with mode: 0644]
gas/testsuite/gas/aarch64/pr22529.l [new file with mode: 0644]
gas/testsuite/gas/aarch64/pr22529.s [new file with mode: 0644]
include/ChangeLog
include/opcode/aarch64.h
opcodes/ChangeLog
opcodes/aarch64-opc.c