+Wed Sep 3 16:39:39 1997 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * top.c (set_arch): New function, update target_architecture.
+
+ * defs.h, top.c (set_architecture_from_arch_mach): Replace
+ set_architecture, takes the arch and machine as arguments.
+
+ * sh3-rom.c (sh3e_open): Update.
+ (sh3_open): Ditto.
+
Tue Sep 2 12:00:46 1997 Andrew Cagney <cagney@b1.cygnus.com>
* remote-e7000.c (e7000_fetch_registers): Fix typo, stray paren.
}
/* If we connected successfully, we know the processor is an SH3. */
- set_architecture ("sh3", 0);
+ set_architecture_from_arch_mach (bfd_arch_sh, bfd_mach_sh3);
}
}
/* If we connected successfully, we know the processor is an SH3E. */
- set_architecture ("sh3e", 0);
+ set_architecture_from_arch_mach (bfd_arch_sh, bfd_mach_sh3);
}
static void
static void show_endian PARAMS ((char *, int));
-extern void set_architecture PARAMS ((char *, int));
+static void set_architecture PARAMS ((char *, int));
static void show_architecture PARAMS ((char *, int));
const bfd_arch_info_type *target_architecture = &bfd_default_arch_struct;
int (*target_architecture_hook) PARAMS ((const bfd_arch_info_type *ap));
-/* Called if the user enters ``set architecture'' with or without an argument. */
-void
+static void
+set_arch (arch)
+ const bfd_arch_info_type *arch;
+{
+ /* FIXME: Is it compatible with gdb? */
+ /* Check with the target on the setting */
+ if (target_architecture_hook != NULL
+ && !target_architecture_hook (arch))
+ printf_unfiltered ("Target does not support `%s' architecture.\n",
+ arch->printable_name);
+ else
+ {
+ target_architecture_auto = 0;
+ target_architecture = arch;
+ }
+}
+
+
+/* Called if the user enters ``set architecture'' with or without an
+ argument. */
+static void
set_architecture (args, from_tty)
char *args;
int from_tty;
{
const bfd_arch_info_type *arch = bfd_scan_arch (args);
if (arch != NULL)
- {
- /* FIXME: Is it compatible with gdb? */
- /* Check with the target on the setting */
- if (target_architecture_hook != NULL
- && !target_architecture_hook (arch))
- printf_unfiltered ("Target does not support `%s' architecture.", args);
- else
- {
- target_architecture_auto = 0;
- target_architecture = arch;
- }
- }
+ set_arch (arch);
else
- {
- printf_unfiltered ("Architecture `%s' not reconized.\n", args);
- }
+ printf_unfiltered ("Architecture `%s' not reconized.\n", args);
}
}
}
}
+/* Set the architecture from arch/machine */
+void
+set_architecture_from_arch_mach (arch, mach)
+ enum bfd_architecture arch;
+ unsigned long mach;
+{
+ const bfd_arch_info_type *wanted = bfd_lookup_arch (arch, mach);
+ if (wanted != NULL)
+ set_arch (wanted);
+ else
+ fatal ("hardwired architecture/machine not reconized");
+}
+
+
/* Set the architecture from a BFD */
void
set_architecture_from_file (abfd)