diff options
author | Tamar Christina <tamar.christina@arm.com> | 2017-12-19 12:04:13 +0000 |
---|---|---|
committer | Tamar Christina <tamar.christina@arm.com> | 2017-12-19 12:19:15 +0000 |
commit | a3b3345ae62503982698171bcfce0afe23bd8a31 (patch) | |
tree | 3d456a11868c44ea882e3490e6c157d8a6c525f7 /opcodes | |
parent | bef7475fbda88374ca488b0acbbfe1d3d4ab3e5f (diff) | |
download | binutils-a3b3345ae62503982698171bcfce0afe23bd8a31.zip binutils-a3b3345ae62503982698171bcfce0afe23bd8a31.tar.gz binutils-a3b3345ae62503982698171bcfce0afe23bd8a31.tar.bz2 |
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.
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/aarch64-opc.c | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 1aa9af4..a8b8dba 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2017-12-19 Tamar Christina <tamar.christina@arm.com> + + PR gas/22529 + * aarch64-opc.c (aarch64_opnd_qualifiers): Add 4b variant. + 2017-12-18 Jan Beulich <jbeulich@suse.com> * i386-gen.c (operand_type_init): Delete OPERAND_TYPE_REGYMM and diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 96ca085..eac0279 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -699,6 +699,7 @@ struct operand_qualifier_data aarch64_opnd_qualifiers[] = {8, 1, 0x3, "d", OQK_OPD_VARIANT}, {16, 1, 0x4, "q", OQK_OPD_VARIANT}, + {1, 4, 0x0, "4b", OQK_OPD_VARIANT}, {1, 8, 0x0, "8b", OQK_OPD_VARIANT}, {1, 16, 0x1, "16b", OQK_OPD_VARIANT}, {2, 2, 0x0, "2h", OQK_OPD_VARIANT}, |