+2015-12-24 Mike Frysinger <vapier@gentoo.org>
+
+ * sim-options.c (OPTION_H8300H, OPTION_H8300S, OPTION_H8300SX):
+ Move to h8300/compile.c.
+ [SIM_H8300] (standard_options): Likewise.
+ (standard_option_handler): Likewise.
+
2015-12-24 Mike Frysinger <vapier@gentoo.org>
* sim-module.c [WITH_WATCHPOINTS] (modules): Always call
OPTION_DEBUG,
OPTION_HELP,
OPTION_VERSION,
-#ifdef SIM_H8300 /* FIXME: Should be movable to h8300 dir. */
- OPTION_H8300H,
- OPTION_H8300S,
- OPTION_H8300SX,
-#endif
OPTION_LOAD_LMA,
OPTION_LOAD_VMA,
OPTION_SYSROOT
'\0', "FILE NAME", "Specify debugging output file",
standard_option_handler },
-#ifdef SIM_H8300 /* FIXME: Should be movable to h8300 dir. */
- { {"h8300h", no_argument, NULL, OPTION_H8300H},
- 'h', NULL, "Indicate the CPU is H8/300H",
- standard_option_handler },
- { {"h8300s", no_argument, NULL, OPTION_H8300S},
- 'S', NULL, "Indicate the CPU is H8S",
- standard_option_handler },
- { {"h8300sx", no_argument, NULL, OPTION_H8300SX},
- 'x', NULL, "Indicate the CPU is H8SX",
- standard_option_handler },
-#endif
-
{ {"do-command", required_argument, NULL, OPTION_DO_COMMAND},
'\0', "COMMAND", ""/*undocumented*/,
standard_option_handler },
}
break;
-#ifdef SIM_H8300 /* FIXME: Can be moved to h8300 dir. */
- case OPTION_H8300H:
- set_h8300h (bfd_mach_h8300h);
- break;
- case OPTION_H8300S:
- set_h8300h (bfd_mach_h8300s);
- break;
- case OPTION_H8300SX:
- set_h8300h (bfd_mach_h8300sx);
- break;
-#endif
-
case OPTION_DO_COMMAND:
sim_do_command (sd, arg);
break;
+2015-12-24 Mike Frysinger <vapier@gentoo.org>
+
+ * compile.c (H8300_OPTIONS): New enum from common/sim-options.c.
+ (h8300_option_handler): New func from common/sim-options.c.
+ (h8300_options): New options from common/sim-options.c.
+ (sim_open): Call sim_add_option_table.
+ * tconfig.h: Delete file.
+
2015-12-24 Mike Frysinger <vapier@gentoo.org>
* tconfig.h (SIM_HAVE_SIMCACHE): Delete.
h8300_normal_mode = 1;
}
+/* H8300-specific options.
+ TODO: These really should be merged into the common model modules. */
+typedef enum {
+ OPTION_H8300H,
+ OPTION_H8300S,
+ OPTION_H8300SX
+} H8300_OPTIONS;
+
+static SIM_RC
+h8300_option_handler (SIM_DESC sd, sim_cpu *cpu ATTRIBUTE_UNUSED, int opt,
+ char *arg, int is_command ATTRIBUTE_UNUSED)
+{
+ switch ((H8300_OPTIONS) opt)
+ {
+ case OPTION_H8300H:
+ set_h8300h (bfd_mach_h8300h);
+ break;
+ case OPTION_H8300S:
+ set_h8300h (bfd_mach_h8300s);
+ break;
+ case OPTION_H8300SX:
+ set_h8300h (bfd_mach_h8300sx);
+ break;
+
+ default:
+ /* We'll actually never get here; the caller handles the error
+ case. */
+ sim_io_eprintf (sd, "Unknown option `%s'\n", arg);
+ return SIM_RC_FAIL;
+ }
+
+ return SIM_RC_OK;
+}
+
+static const OPTION h8300_options[] =
+{
+ { {"h8300h", no_argument, NULL, OPTION_H8300H},
+ 'h', NULL, "Indicate the CPU is H8/300H",
+ h8300_option_handler },
+ { {"h8300s", no_argument, NULL, OPTION_H8300S},
+ 'S', NULL, "Indicate the CPU is H8S",
+ h8300_option_handler },
+ { {"h8300sx", no_argument, NULL, OPTION_H8300SX},
+ 'x', NULL, "Indicate the CPU is H8SX",
+ h8300_option_handler },
+ { {NULL, no_argument, NULL, 0}, '\0', NULL, NULL, NULL, NULL }
+};
+
static sim_cia
h8300_pc_get (sim_cpu *cpu)
{
return 0;
}
+ if (sim_add_option_table (sd, NULL, h8300_options) != SIM_RC_OK)
+ {
+ free_state (sd);
+ return 0;
+ }
+
/* getopt will print the error message so we just have to exit if
this fails. FIXME: Hmmm... in the case of gdb we need getopt
to call print_filtered. */
+++ /dev/null
-/* h8300 target configuration file. */
-
-/* FIXME: This is a quick hack for run.c so it can support the `-h' option.
- It will eventually be replaced by a more general facility. */
-#define SIM_H8300