]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[AArch64][PATCH 10/14] Rework code mapping vector types to operand qualifiers.
authorMatthew Wahab <matthew.wahab@arm.com>
Mon, 14 Dec 2015 17:25:35 +0000 (17:25 +0000)
committerMatthew Wahab <matthew.wahab@arm.com>
Tue, 15 Dec 2015 10:23:23 +0000 (10:23 +0000)
commita3d0d3d36ffb057a3ae0d2f78a288b8f09176ced
treec939ec97a26cbab6daca1ce7091142d547b5e7bd
parentfefb82f89804d16550a93609cd928b96a84e1564
[AArch64][PATCH 10/14] Rework code mapping vector types to operand qualifiers.

ARMv8.2 adds 16-bit floating point operations as an optional extension
to the floating point and Adv.SIMD support. The FP16 additions to the
scalar pairwise group introduce a new vector type. This patch reworks
code in the assembler to allow the addition of the new type.

The new vector type requires the addtion of a new operand qualifier to
the enum aarch64_opnd_qualifier which is defined
include/opcodes/aarch64.h, in the group prefixed by AARCH64_OPN_QLF_V_.

The correctness of the GAS utility function
tc-aarch64.c:vectype_to_qualifier is heavily dependent on the number and
ordering of this group. In particular, it makes assumptions about the
positions of the members of the group that are not true if a qualifier
for type 2H is added before the qualifier for 4H.

This patch reworks the function to weaken its assumptions, making it
calculate positions in the group from the type (B, H, S, D, Q) and
register width.

gas/
2015-12-14  Matthew Wahab  <matthew.wahab@arm.com>

* config/tc-aarch64.c (vectype_to_qualifier): Calculate operand
qualifier from per-type base and offet.

Change-Id: I95535864e342a6dec46f69d2696b3900a008f0b1
gas/ChangeLog
gas/config/tc-aarch64.c