diff options
author | Andrew Cagney <cagney@redhat.com> | 1997-09-03 07:31:55 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 1997-09-03 07:31:55 +0000 |
commit | ee36741e6385ff705602158daca8c511960ee7b2 (patch) | |
tree | 6530cd91c915609b24c8dcc2b4f40e0245350621 | |
parent | b5e935ae855757d6f0b51b28b0bbc48a4c996f69 (diff) | |
download | gdb-ee36741e6385ff705602158daca8c511960ee7b2.zip gdb-ee36741e6385ff705602158daca8c511960ee7b2.tar.gz gdb-ee36741e6385ff705602158daca8c511960ee7b2.tar.bz2 |
Allow backends to set the architecture using bfd_architecture enum
instead of some magic name.
-rw-r--r-- | gdb/ChangeLog | 10 | ||||
-rw-r--r-- | gdb/sh3-rom.c | 4 | ||||
-rw-r--r-- | gdb/top.c | 56 |
3 files changed, 50 insertions, 20 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 04de252..8613031 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +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. diff --git a/gdb/sh3-rom.c b/gdb/sh3-rom.c index a4e3b71..8d8705c 100644 --- a/gdb/sh3-rom.c +++ b/gdb/sh3-rom.c @@ -284,7 +284,7 @@ sh3_open (args, from_tty) } /* 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); } @@ -333,7 +333,7 @@ sh3e_open (args, from_tty) } /* 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 @@ -118,7 +118,7 @@ static void set_endian_auto PARAMS ((char *, int)); 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)); @@ -3242,8 +3242,27 @@ extern const bfd_arch_info_type bfd_default_arch_struct; 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; @@ -3260,22 +3279,9 @@ set_architecture (args, 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); } } @@ -3317,6 +3323,20 @@ info_architecture (args, from_tty) } } +/* 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) |