aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog10
-rw-r--r--gdb/Makefile.in5
-rw-r--r--gdb/config/sh/tm-sh.h94
-rw-r--r--gdb/sh-tdep.c2
-rw-r--r--gdb/sh-tdep.h121
-rw-r--r--gdb/sh3-rom.c2
-rw-r--r--gdb/shnbsd-tdep.c1
7 files changed, 139 insertions, 96 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6de3b8e..bfdf13c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,13 @@
+2002-05-17 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * Makefile.in (sh_tdep_h): Define and use.
+ * config/sh/tm-sh.h (sh_osabi, sh_abi, gdbarch_tdep,
+ register enum): Move to...
+ * * sh-tdep.h: ...here.
+ * sh-tdep.c: Include sh-tdep.h.
+ * sh3-rom.c: Likewise.
+ * shnbsd-tdep.c: Likewise.
+
2002-05-16 Michael Snyder <msnyder@redhat.com>
* arm-tdep.c: Spelling fix in comment.
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 333cbc3..37abd9f 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -649,6 +649,7 @@ remote_h = remote.h
remote_utils_h = remote-utils.h $(target_h)
ser_unix_h = ser-unix.h
serial_h = serial.h
+sh_tdep_h = sh-tdep.h
solist_h = solist.h
source_h = source.h
stabsread_h = stabsread.h
@@ -2052,11 +2053,11 @@ serial.o: serial.c $(defs_h) $(serial_h) $(gdb_string_h)
sh-tdep.o: sh-tdep.c $(bfd_h) $(dis_asm_h) \
$(srcdir)/../opcodes/sh-opc.h $(defs_h) $(expression_h) $(frame_h) \
$(gdbcmd_h) $(gdbtypes_h) $(symtab_h) $(value_h) $(arch_utils_h) \
- $(regcache_h) $(doublest_h)
+ $(regcache_h) $(doublest_h) $(sh_tdep_h)
sh3-rom.o: sh3-rom.c $(monitor_h) $(bfd_h) $(gdb_wait_h) $(defs_h) $(gdbcmd_h) \
$(inferior_h) $(target_h) $(serial_h) $(terminal_h) $(arch_utils_h) \
- $(regcache_h)
+ $(regcache_h) $(sh_tdep_h)
signals.o: signals/signals.c $(defs_h) $(target_h)
$(CC) -c $(INTERNAL_CFLAGS) $<
diff --git a/gdb/config/sh/tm-sh.h b/gdb/config/sh/tm-sh.h
index bae87b8..6ae6085 100644
--- a/gdb/config/sh/tm-sh.h
+++ b/gdb/config/sh/tm-sh.h
@@ -23,100 +23,6 @@
#define GDB_MULTI_ARCH 1
-/* Information that is dependent on the processor variant. */
-
-/* ABI variants that we know about. If you add to this enum, please
- update the table of names in sh-tdep.c. */
-enum sh_osabi
-{
- SH_OSABI_UNKNOWN = 0,
- SH_OSABI_LINUX,
- SH_OSABI_NETBSD_ELF,
-
- SH_OSABI_INVALID /* Keep this last. */
-};
-
-enum sh_abi
- {
- SH_ABI_UNKNOWN,
- SH_ABI_32,
- SH_ABI_64
- };
-
-struct gdbarch_tdep
- {
- int PR_REGNUM;
- int FPUL_REGNUM; /* sh3e, sh4 */
- int FPSCR_REGNUM; /* sh3e, sh4 */
- int SR_REGNUM; /* sh-dsp, sh3, sh3-dsp, sh3e, sh4 */
- int DSR_REGNUM; /* sh-dsp, sh3-dsp */
- int FP_LAST_REGNUM; /* sh3e, sh4 */
- int A0G_REGNUM; /* sh-dsp, sh3-dsp */
- int A0_REGNUM; /* sh-dsp, sh3-dsp */
- int A1G_REGNUM; /* sh-dsp, sh3-dsp */
- int A1_REGNUM; /* sh-dsp, sh3-dsp */
- int M0_REGNUM; /* sh-dsp, sh3-dsp */
- int M1_REGNUM; /* sh-dsp, sh3-dsp */
- int X0_REGNUM; /* sh-dsp, sh3-dsp */
- int X1_REGNUM; /* sh-dsp, sh3-dsp */
- int Y0_REGNUM; /* sh-dsp, sh3-dsp */
- int Y1_REGNUM; /* sh-dsp, sh3-dsp */
- int MOD_REGNUM; /* sh-dsp, sh3-dsp */
- int SSR_REGNUM; /* sh3, sh3-dsp, sh3e, sh4 */
- int SPC_REGNUM; /* sh3, sh3-dsp, sh3e, sh4 */
- int RS_REGNUM; /* sh-dsp, sh3-dsp */
- int RE_REGNUM; /* sh-dsp, sh3-dsp */
- int DR0_REGNUM; /* sh4 */
- int DR_LAST_REGNUM; /* sh4 */
- int FV0_REGNUM; /* sh4 */
- int FV_LAST_REGNUM; /* sh4 */
- /* FPP stands for Floating Point Pair, to avoid confusion with
- GDB's FP0_REGNUM, which is the number of the first Floating
- point register. Unfortunately on the sh5, the floating point
- registers are called FR, and the floating point pairs are called FP. */
- int TR7_REGNUM; /* sh5-media*/
- int FPP0_REGNUM; /* sh5-media*/
- int FPP_LAST_REGNUM; /* sh5-media*/
- int R0_C_REGNUM; /* sh5-compact*/
- int R_LAST_C_REGNUM; /* sh5-compact*/
- int PC_C_REGNUM; /* sh5-compact*/
- int GBR_C_REGNUM; /* sh5-compact*/
- int MACH_C_REGNUM; /* sh5-compact*/
- int MACL_C_REGNUM; /* sh5-compact*/
- int PR_C_REGNUM; /* sh5-compact*/
- int T_C_REGNUM; /* sh5-compact*/
- int FPSCR_C_REGNUM; /* sh5-compact*/
- int FPUL_C_REGNUM; /* sh5-compact*/
- int FP0_C_REGNUM; /* sh5-compact*/
- int FP_LAST_C_REGNUM; /* sh5-compact*/
- int DR0_C_REGNUM; /* sh5-compact*/
- int DR_LAST_C_REGNUM; /* sh5-compact*/
- int FV0_C_REGNUM; /* sh5-compact*/
- int FV_LAST_C_REGNUM; /* sh5-compact*/
- int ARG0_REGNUM;
- int ARGLAST_REGNUM;
- int FLOAT_ARGLAST_REGNUM;
- int RETURN_REGNUM;
- enum sh_osabi sh_osabi; /* OS/ABI of the inferior */
- const char *osabi_name; /* Name of the above */
- enum sh_abi sh_abi;
- };
-
-/* Registers common to all the SH variants. */
-enum
- {
- R0_REGNUM = 0,
- STRUCT_RETURN_REGNUM = 2,
- ARG0_REGNUM = 4, /* Used in h8300-tdep.c */
- ARGLAST_REGNUM = 7, /* Used in h8300-tdep.c */
- PR_REGNUM = 17, /* used in sh3-rom.c */
- GBR_REGNUM = 18,
- VBR_REGNUM = 19,
- MACH_REGNUM = 20,
- MACL_REGNUM = 21,
- SR_REGNUM = 22
- };
-
#define NUM_REALREGS 59 /* used in remote-e7000.c which is not multiarched. */
#define REGISTER_TYPE long /* used in standalone.c */
diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
index b768692..4f5a251 100644
--- a/gdb/sh-tdep.c
+++ b/gdb/sh-tdep.c
@@ -41,6 +41,8 @@
#include "regcache.h"
#include "doublest.h"
+#include "sh-tdep.h"
+
#include "elf-bfd.h"
#include "solib-svr4.h"
diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
new file mode 100644
index 0000000..81bb39d
--- /dev/null
+++ b/gdb/sh-tdep.h
@@ -0,0 +1,121 @@
+/* Target-specific definition for a Hitachi Super-H.
+ Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
+ Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+#ifndef SH_TDEP_H
+#define SH_TDEP_H
+
+/* Contributed by Steve Chamberlain sac@cygnus.com */
+
+/* Information that is dependent on the processor variant. */
+
+/* ABI variants that we know about. If you add to this enum, please
+ update the table of names in sh-tdep.c. */
+enum sh_osabi
+{
+ SH_OSABI_UNKNOWN = 0,
+ SH_OSABI_LINUX,
+ SH_OSABI_NETBSD_ELF,
+
+ SH_OSABI_INVALID /* Keep this last. */
+};
+
+enum sh_abi
+ {
+ SH_ABI_UNKNOWN,
+ SH_ABI_32,
+ SH_ABI_64
+ };
+
+struct gdbarch_tdep
+ {
+ int PR_REGNUM;
+ int FPUL_REGNUM; /* sh3e, sh4 */
+ int FPSCR_REGNUM; /* sh3e, sh4 */
+ int SR_REGNUM; /* sh-dsp, sh3, sh3-dsp, sh3e, sh4 */
+ int DSR_REGNUM; /* sh-dsp, sh3-dsp */
+ int FP_LAST_REGNUM; /* sh3e, sh4 */
+ int A0G_REGNUM; /* sh-dsp, sh3-dsp */
+ int A0_REGNUM; /* sh-dsp, sh3-dsp */
+ int A1G_REGNUM; /* sh-dsp, sh3-dsp */
+ int A1_REGNUM; /* sh-dsp, sh3-dsp */
+ int M0_REGNUM; /* sh-dsp, sh3-dsp */
+ int M1_REGNUM; /* sh-dsp, sh3-dsp */
+ int X0_REGNUM; /* sh-dsp, sh3-dsp */
+ int X1_REGNUM; /* sh-dsp, sh3-dsp */
+ int Y0_REGNUM; /* sh-dsp, sh3-dsp */
+ int Y1_REGNUM; /* sh-dsp, sh3-dsp */
+ int MOD_REGNUM; /* sh-dsp, sh3-dsp */
+ int SSR_REGNUM; /* sh3, sh3-dsp, sh3e, sh4 */
+ int SPC_REGNUM; /* sh3, sh3-dsp, sh3e, sh4 */
+ int RS_REGNUM; /* sh-dsp, sh3-dsp */
+ int RE_REGNUM; /* sh-dsp, sh3-dsp */
+ int DR0_REGNUM; /* sh4 */
+ int DR_LAST_REGNUM; /* sh4 */
+ int FV0_REGNUM; /* sh4 */
+ int FV_LAST_REGNUM; /* sh4 */
+ /* FPP stands for Floating Point Pair, to avoid confusion with
+ GDB's FP0_REGNUM, which is the number of the first Floating
+ point register. Unfortunately on the sh5, the floating point
+ registers are called FR, and the floating point pairs are called FP. */
+ int TR7_REGNUM; /* sh5-media*/
+ int FPP0_REGNUM; /* sh5-media*/
+ int FPP_LAST_REGNUM; /* sh5-media*/
+ int R0_C_REGNUM; /* sh5-compact*/
+ int R_LAST_C_REGNUM; /* sh5-compact*/
+ int PC_C_REGNUM; /* sh5-compact*/
+ int GBR_C_REGNUM; /* sh5-compact*/
+ int MACH_C_REGNUM; /* sh5-compact*/
+ int MACL_C_REGNUM; /* sh5-compact*/
+ int PR_C_REGNUM; /* sh5-compact*/
+ int T_C_REGNUM; /* sh5-compact*/
+ int FPSCR_C_REGNUM; /* sh5-compact*/
+ int FPUL_C_REGNUM; /* sh5-compact*/
+ int FP0_C_REGNUM; /* sh5-compact*/
+ int FP_LAST_C_REGNUM; /* sh5-compact*/
+ int DR0_C_REGNUM; /* sh5-compact*/
+ int DR_LAST_C_REGNUM; /* sh5-compact*/
+ int FV0_C_REGNUM; /* sh5-compact*/
+ int FV_LAST_C_REGNUM; /* sh5-compact*/
+ int ARG0_REGNUM;
+ int ARGLAST_REGNUM;
+ int FLOAT_ARGLAST_REGNUM;
+ int RETURN_REGNUM;
+ enum sh_osabi sh_osabi; /* OS/ABI of the inferior */
+ const char *osabi_name; /* Name of the above */
+ enum sh_abi sh_abi;
+ };
+
+/* Registers common to all the SH variants. */
+enum
+ {
+ R0_REGNUM = 0,
+ STRUCT_RETURN_REGNUM = 2,
+ ARG0_REGNUM = 4, /* Used in h8300-tdep.c */
+ ARGLAST_REGNUM = 7, /* Used in h8300-tdep.c */
+ PR_REGNUM = 17, /* used in sh3-rom.c */
+ GBR_REGNUM = 18,
+ VBR_REGNUM = 19,
+ MACH_REGNUM = 20,
+ MACL_REGNUM = 21,
+ SR_REGNUM = 22
+ };
+
+#endif /* SH_TDEP_H */
diff --git a/gdb/sh3-rom.c b/gdb/sh3-rom.c
index 2b07bd8..f450ac9 100644
--- a/gdb/sh3-rom.c
+++ b/gdb/sh3-rom.c
@@ -28,6 +28,8 @@
#include "arch-utils.h"
#include "regcache.h"
+#include "sh-tdep.h"
+
static struct serial *parallel;
static int parallel_in_use;
diff --git a/gdb/shnbsd-tdep.c b/gdb/shnbsd-tdep.c
index 5f9903d..7ac0489 100644
--- a/gdb/shnbsd-tdep.c
+++ b/gdb/shnbsd-tdep.c
@@ -25,6 +25,7 @@
#include "value.h"
#include "nbsd-tdep.h"
+#include "sh-tdep.h"
#include "shnbsd-tdep.h"
/* Convert an r0-r15 register number into an offset into a ptrace