diff options
Diffstat (limited to 'opcodes/arc-dis.c')
-rw-r--r-- | opcodes/arc-dis.c | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/opcodes/arc-dis.c b/opcodes/arc-dis.c index 91efa96..f162725 100644 --- a/opcodes/arc-dis.c +++ b/opcodes/arc-dis.c @@ -740,16 +740,16 @@ operand_iterator_next (struct arc_operand_iterator *iter, static void parse_option (struct arc_disassemble_info *arc_infop, const char *option) { - if (disassembler_options_cmp (option, "dsp") == 0) + if (strcmp (option, "dsp") == 0) add_to_decode (arc_infop, DSP, NONE); - else if (disassembler_options_cmp (option, "spfp") == 0) + else if (strcmp (option, "spfp") == 0) add_to_decode (arc_infop, FLOAT, SPX); - else if (disassembler_options_cmp (option, "dpfp") == 0) + else if (strcmp (option, "dpfp") == 0) add_to_decode (arc_infop, FLOAT, DPX); - else if (disassembler_options_cmp (option, "quarkse_em") == 0) + else if (strcmp (option, "quarkse_em") == 0) { add_to_decode (arc_infop, FLOAT, DPX); add_to_decode (arc_infop, FLOAT, SPX); @@ -757,10 +757,10 @@ parse_option (struct arc_disassemble_info *arc_infop, const char *option) add_to_decode (arc_infop, FLOAT, QUARKSE2); } - else if (disassembler_options_cmp (option, "fpuda") == 0) + else if (strcmp (option, "fpuda") == 0) add_to_decode (arc_infop, FLOAT, DPA); - else if (disassembler_options_cmp (option, "nps400") == 0) + else if (strcmp (option, "nps400") == 0) { add_to_decode (arc_infop, ACL, NPS400); add_to_decode (arc_infop, ARITH, NPS400); @@ -777,13 +777,13 @@ parse_option (struct arc_disassemble_info *arc_infop, const char *option) add_to_decode (arc_infop, ULTRAIP, NPS400); } - else if (disassembler_options_cmp (option, "fpus") == 0) + else if (strcmp (option, "fpus") == 0) { add_to_decode (arc_infop, FLOAT, SP); add_to_decode (arc_infop, FLOAT, CVT); } - else if (disassembler_options_cmp (option, "fpud") == 0) + else if (strcmp (option, "fpud") == 0) { add_to_decode (arc_infop, FLOAT, DP); add_to_decode (arc_infop, FLOAT, CVT); @@ -827,38 +827,37 @@ parse_cpu_option (const char *option) int i; for (i = 0; cpu_types[i].name; ++i) - { - if (!disassembler_options_cmp (cpu_types[i].name, option)) - { - return cpu_types[i].flags; - } - } + if (strcmp (cpu_types[i].name, option) == 0) + return cpu_types[i].flags; /* xgettext:c-format */ opcodes_error_handler (_("unrecognised disassembler CPU option: %s"), option); return ARC_OPCODE_NONE; } +static bool +arc_parse_option (const char *option, void *data) +{ + struct arc_disassemble_info *arc_infop = data; + + if (strncmp (option, "cpu=", 4) == 0) + /* Strip leading `cpu=`. */ + arc_infop->isa_mask = parse_cpu_option (option + 4); + else + parse_option (arc_infop, option); + return true; +} + /* Go over the options list and parse it. */ static void parse_disassembler_options (struct disassemble_info *info) { struct arc_disassemble_info *arc_infop = info->private_data; - const char *option; arc_infop->isa_mask = ARC_OPCODE_NONE; - FOR_EACH_DISASSEMBLER_OPTION (option, info->disassembler_options) - { - /* A CPU option? Cannot use STRING_COMMA_LEN because strncmp is also a - preprocessor macro. */ - if (strncmp (option, "cpu=", 4) == 0) - /* Strip leading `cpu=`. */ - arc_infop->isa_mask = parse_cpu_option (option + 4); - else - parse_option (arc_infop, option); - } + for_each_disassembler_option (info, arc_parse_option, arc_infop); /* Figure out CPU type, unless it was enforced via disassembler options. */ if (arc_infop->isa_mask == ARC_OPCODE_NONE) |