aboutsummaryrefslogtreecommitdiff
path: root/opcodes/csky-dis.c
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/csky-dis.c')
-rw-r--r--opcodes/csky-dis.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/opcodes/csky-dis.c b/opcodes/csky-dis.c
index e3a0a46..afe54c4 100644
--- a/opcodes/csky-dis.c
+++ b/opcodes/csky-dis.c
@@ -263,24 +263,15 @@ csky_get_disassembler (bfd *abfd)
return print_insn_csky;
}
-/* Parse the string of disassembler options. */
-static void
-parse_csky_dis_options (const char *opts_in)
+/* Parse a disassembler option. */
+static bool
+parse_csky_option (const char *opt, void *data ATTRIBUTE_UNUSED)
{
- char *opts = xstrdup (opts_in);
- char *opt = opts;
- char *opt_end = opts;
-
- for (; opt_end != NULL; opt = opt_end + 1)
- {
- if ((opt_end = strchr (opt, ',')) != NULL)
- *opt_end = 0;
- if (strcmp (opt, "abi-names") == 0)
- using_abi = 1;
- else
- fprintf (stderr,
- "unrecognized disassembler option: %s", opt);
- }
+ if (strcmp (opt, "abi-names") == 0)
+ using_abi = 1;
+ else
+ fprintf (stderr, "unrecognized disassembler option: %s", opt);
+ return true;
}
/* Get general register name. */
@@ -1058,7 +1049,7 @@ print_insn_csky (bfd_vma memaddr, struct disassemble_info *info)
if (info->disassembler_options)
{
- parse_csky_dis_options (info->disassembler_options);
+ for_each_disassembler_option (info, parse_csky_option, NULL);
info->disassembler_options = NULL;
}