diff options
author | Matthew Wahab <matthew.wahab@arm.com> | 2015-11-27 15:02:26 +0000 |
---|---|---|
committer | Matthew Wahab <matthew.wahab@arm.com> | 2015-11-27 15:05:09 +0000 |
commit | 35822b3812f74319dfad28876d37645589b83a80 (patch) | |
tree | d43a1073d6c7e3c1dcf236a29452fa07f33e8047 /opcodes/aarch64-gen.c | |
parent | 805035d70cd8637c169caf97800accdd267d1d8e (diff) | |
download | binutils-35822b3812f74319dfad28876d37645589b83a80.zip binutils-35822b3812f74319dfad28876d37645589b83a80.tar.gz binutils-35822b3812f74319dfad28876d37645589b83a80.tar.bz2 |
[AArch64] Let aliased instructions be their preferred form.
Although the AArch64 backend supports aliased instructions, the aliasing
forms are always preferred over the real instruction. This makes it
awkward to handle instructions which have aliases but which are their
own preferred form.
This patch includes the instruction being aliased in the list of
alternatives which is searched when considering which form to use.
opcodes/
2015-11-27 Matthew Wahab <matthew.wahab@arm.com>
* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Regenerate.
* aarch64-dis.c: Weaken assert.
* aarch64-gen.c: Include the instruction in the list of its
possible aliases.
Change-Id: I1f23eb25fccef76a64d3d732d58761bd25fad94e
Diffstat (limited to 'opcodes/aarch64-gen.c')
-rw-r--r-- | opcodes/aarch64-gen.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/opcodes/aarch64-gen.c b/opcodes/aarch64-gen.c index bc1e58a..155ec85 100644 --- a/opcodes/aarch64-gen.c +++ b/opcodes/aarch64-gen.c @@ -693,12 +693,14 @@ find_alias_opcode (const aarch64_opcode *opcode) /* Assume maximum of 8 disassemble preference candidates. */ const int max_num_aliases = 8; const aarch64_opcode *ent; - const aarch64_opcode *preferred[max_num_aliases]; + const aarch64_opcode *preferred[max_num_aliases + 1]; opcode_node head, **next; assert (opcode_has_alias (opcode)); i = 0; + if (opcode->name != NULL) + preferred[i++] = opcode; ent = aarch64_opcode_table; while (ent->name != NULL) { |