gas/arc: Additional work to support multiple arc_opcode chains
authorAndrew Burgess <andrew.burgess@embecosm.com>
Mon, 28 Mar 2016 15:04:58 +0000 (16:04 +0100)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Thu, 7 Apr 2016 17:35:31 +0000 (18:35 +0100)
commitb9b47ab79f7c3de0537cacfac061560d5811a84a
treecec1e75b0f58bc92d3e5f9b6929d562d24b4968e
parentda5be03929920c8aed305f9ffac19ce37177b3c6
gas/arc: Additional work to support multiple arc_opcode chains

Building on earlier commits, this commit moves along support for having
multiple arc_opcode entries in the arc_opcodes table that have the same
mnemonic (name) field, but are not stored in a contiguous block in the
table.

In this commit we support looking up the arc_opcode_hash_entry from the
hash table, and passing this along to the find_opcode_match function,
which then finds the specific arc_opcode that we're assembling.  We
still don't actually support the multiple chains of arc_opcode entries
in this commit, but the limitation is now isolated to the
find_opcode_match function.

There is no user visible change after this commit.

gas/ChangeLog:

* config/tc-arc.c (arc_find_opcode): Now returns
arc_opcode_hash_entry pointer.
(find_opcode_match): Update argument type, extract arc_opcode from
incoming arc_opcode_hash_entry.
(find_special_case_pseudo): Update return type.
(find_special_case_flag): Update return type.
(find_special_case): Update return type.
(assemble_tokens): Lookup arc_opcode_hash_entry based on
instruction mnemonic, then use find_opcode_match to identify
specific arc_opcode.
gas/ChangeLog
gas/config/tc-arc.c