diff options
author | Tamar Christina <tamar.christina@arm.com> | 2017-06-28 11:09:01 +0100 |
---|---|---|
committer | Jiong Wang <jiong.wang@arm.com> | 2017-06-28 11:09:01 +0100 |
commit | 65a55fbbd949868f7df3c65d39eb8d4455515132 (patch) | |
tree | 004ff233f1a34016efc97cef4bf89a5e0003033b /opcodes/aarch64-asm.c | |
parent | c604a79ad4d47070bbcc0bc082188fb16892ceef (diff) | |
download | binutils-65a55fbbd949868f7df3c65d39eb8d4455515132.zip binutils-65a55fbbd949868f7df3c65d39eb8d4455515132.tar.gz binutils-65a55fbbd949868f7df3c65d39eb8d4455515132.tar.bz2 |
[AArch64] Add dot product support for AArch64 to binutils
gas/
* config/tc-aarch64.c (aarch64_reg_parse_32_64): Accept 4B.
(aarch64_features): Added dotprod.
* doc/c-aarch64.texi: Added dotprod.
* testsuite/gas/aarch64/dotproduct.d: New.
* testsuite/gas/aarch64/dotproduct.s: New.
opcodes/
* aarch64-asm.c (aarch64_ins_reglane): Added 4B dotprod.
* aarch64-dis.c (aarch64_ext_reglane): Likewise.
* aarch64-tbl.h (QL_V3DOT, QL_V2DOT): New.
(aarch64_feature_dotprod, DOT_INSN): New.
(udot, sdot): New.
* aarch64-dis-2.c: Regenerated.
include/
* opcode/aarch64.h: (AARCH64_FEATURE_DOTPROD): New.
(aarch64_insn_class): Added dotprod.
Diffstat (limited to 'opcodes/aarch64-asm.c')
-rw-r--r-- | opcodes/aarch64-asm.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c index 6d2c75a..345d599 100644 --- a/opcodes/aarch64-asm.c +++ b/opcodes/aarch64-asm.c @@ -121,6 +121,20 @@ aarch64_ins_reglane (const aarch64_operand *self, const aarch64_opnd_info *info, insert_field (FLD_imm5, code, value, 0); } } + else if (inst->opcode->iclass == dotproduct) + { + unsigned reglane_index = info->reglane.index; + switch (info->qualifier) + { + case AARCH64_OPND_QLF_S_B: + /* L:H */ + assert (reglane_index < 4); + insert_fields (code, reglane_index, 0, 2, FLD_L, FLD_H); + break; + default: + assert (0); + } + } else { /* index for e.g. SQDMLAL <Va><d>, <Vb><n>, <Vm>.<Ts>[<index>] |