X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=opcodes%2Faarch64-dis.c;h=4fd94e8f7a993d22e8d25c488f94e6dacb1bceed;hb=65a55fbbd949868f7df3c65d39eb8d4455515132;hp=a860dbcb003378f2717f236b72fdc60484783d72;hpb=c604a79ad4d47070bbcc0bc082188fb16892ceef;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c index a860dbcb00..4fd94e8f7a 100644 --- a/opcodes/aarch64-dis.c +++ b/opcodes/aarch64-dis.c @@ -325,6 +325,21 @@ aarch64_ext_reglane (const aarch64_operand *self, aarch64_opnd_info *info, info->reglane.index = (unsigned) (value >> 1); } } + else if (inst->opcode->iclass == dotproduct) + { + /* Need information in other operand(s) to help decoding. */ + info->qualifier = get_expected_qualifier (inst, info->idx); + switch (info->qualifier) + { + case AARCH64_OPND_QLF_S_B: + /* L:H */ + info->reglane.index = extract_fields (code, 0, 2, FLD_H, FLD_L); + info->reglane.regno &= 0x1f; + break; + default: + return 0; + } + } else { /* Index only for e.g. SQDMLAL , , .[]