This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[PATCH] Convert i386 target to use REGISTER_NAME


I checked this in.  I went for the easy way out for a few archaic
targets.

Mark

Index: ChangeLog
from  Mark Kettenis  <kettenis@gnu.org>

	* config/i386/tm-i386.h (REGISTER_NAMES): Remove.
	(REGISTER_NAME): New define.
	(i386_register_name): New prototype.
	* i386-tdep.c (i386_register_names): New variable.
	(i386_register_name): New function.
	* config/i386/tm-i386os9k.h, config/i386/tm-ptx.h,
	config/i386/tm-symmetry.h: Undefine REGISTER_NAME instead of
	REGISTER_NAMES.

Index: i386-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-tdep.c,v
retrieving revision 1.40
diff -u -p -r1.40 i386-tdep.c
--- i386-tdep.c 2001/10/29 23:49:31 1.40
+++ i386-tdep.c 2001/10/31 22:16:46
@@ -37,6 +37,23 @@
 
 #include "gdb_assert.h"
 
+/* Names of the registers.  The first 10 registers match the register
+   numbering scheme used by GCC for stabs and DWARF.  */
+static char *i386_register_names[] =
+{
+  "eax",   "ecx",    "edx",   "ebx",
+  "esp",   "ebp",    "esi",   "edi",
+  "eip",   "eflags", "cs",    "ss",
+  "ds",    "es",     "fs",    "gs",
+  "st0",   "st1",    "st2",   "st3",
+  "st4",   "st5",    "st6",   "st7",
+  "fctrl", "fstat",  "ftag",  "fiseg",
+  "fioff", "foseg",  "fooff", "fop",
+  "xmm0",  "xmm1",   "xmm2",  "xmm3",
+  "xmm4",  "xmm5",   "xmm6",  "xmm7",
+  "mxcsr"
+};
+
 /* i386_register_byte[i] is the offset into the register file of the
    start of register number i.  We initialize this from
    i386_register_raw_size.  */
@@ -61,6 +78,19 @@ int i386_register_raw_size[MAX_NUM_REGS]
 /* i386_register_virtual_size[i] is the size in bytes of the virtual
    type of register i.  */
 int i386_register_virtual_size[MAX_NUM_REGS];
+
+/* Return the name of register REG.  */
+
+char *
+i386_register_name (int reg)
+{
+  if (reg < 0)
+    return NULL;
+  if (reg >= sizeof (i386_register_names) / sizeof (*i386_register_names))
+    return NULL;
+
+  return i386_register_names[reg];
+}
 
 /* Convert stabs register number REG to the appropriate register
    number used by GDB.  */
Index: config/i386/tm-i386.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/tm-i386.h,v
retrieving revision 1.20
diff -u -p -r1.20 tm-i386.h
--- config/i386/tm-i386.h 2001/07/28 19:30:41 1.20
+++ config/i386/tm-i386.h 2001/10/31 22:16:46
@@ -127,25 +127,6 @@ extern CORE_ADDR i386_saved_pc_after_cal
 /* Largest number of registers we could have in any configuration.  */
 #define MAX_NUM_REGS (16 + 16 + 9)
 
-/* Initializer for an array of names of registers.  There should be at least
-   NUM_REGS strings in this initializer.  Any excess ones are simply ignored.
-   The order of the first 8 registers must match the compiler's numbering
-   scheme (which is the same as the 386 scheme) and also regmap in the various
-   *-nat.c files. */
-
-#define REGISTER_NAMES { "eax",   "ecx",    "edx",   "ebx",	\
-			 "esp",   "ebp",    "esi",   "edi",	\
-			 "eip",   "eflags", "cs",    "ss",	\
-			 "ds",    "es",     "fs",    "gs",	\
-			 "st0",   "st1",    "st2",   "st3",	\
-			 "st4",   "st5",    "st6",   "st7",	\
-			 "fctrl", "fstat",  "ftag",  "fiseg",	\
-                         "fioff", "foseg",  "fooff", "fop",	\
-			 "xmm0",  "xmm1",   "xmm2",  "xmm3",	\
-			 "xmm4",  "xmm5",   "xmm6",  "xmm7",	\
-                         "mxcsr"				\
-		       }
-
 /* Register numbers of various important registers.
    Note that some of these values are "real" register numbers,
    and correspond to the general registers of the machine,
@@ -194,6 +175,11 @@ extern CORE_ADDR i386_saved_pc_after_cal
 #define IS_SSE_REGNUM(n) (XMM0_REGNUM <= (n) && (n) <= XMM7_REGNUM)
 
 #define FPU_REG_RAW_SIZE (10)
+
+/* Return the name of register REG.  */
+
+#define REGISTER_NAME(reg) i386_register_name ((reg))
+extern char *i386_register_name (int reg);
 
 /* Use the "default" register numbering scheme for stabs and COFF.  */
 
Index: config/i386/tm-i386os9k.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/tm-i386os9k.h,v
retrieving revision 1.2
diff -u -p -r1.2 tm-i386os9k.h
--- config/i386/tm-i386os9k.h 2001/03/06 08:21:29 1.2
+++ config/i386/tm-i386os9k.h 2001/10/31 22:16:46
@@ -34,7 +34,7 @@
    scheme (which is the same as the 386 scheme) and also regmap in the various
    *-nat.c files. */
 
-#undef  REGISTER_NAMES
+#undef REGISTER_NAME
 #define REGISTER_NAMES { "eax", "ecx", "edx", "ebx", \
                          "esp", "ebp", "esi", "edi", \
                          "eip", "eflags", "cs", "ss", \
Index: config/i386/tm-ptx.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/tm-ptx.h,v
retrieving revision 1.3
diff -u -p -r1.3 tm-ptx.h
--- config/i386/tm-ptx.h 2001/03/06 08:21:29 1.3
+++ config/i386/tm-ptx.h 2001/10/31 22:16:46
@@ -69,7 +69,7 @@ since it uses host specific ptrace calls
    scheme (which is the same as the 386 scheme) and also regmap in the various
    *-nat.c files. */
 
-#undef  REGISTER_NAMES
+#undef REGISTER_NAME
 #define REGISTER_NAMES { "eax",  "ecx",    "edx",  "ebx",  \
 			 "esp",  "ebp",    "esi",  "edi",  \
 			 "eip",  "eflags", "st0",  "st1",  \
Index: config/i386/tm-symmetry.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/tm-symmetry.h,v
retrieving revision 1.6
diff -u -p -r1.6 tm-symmetry.h
--- config/i386/tm-symmetry.h 2001/08/12 03:19:22 1.6
+++ config/i386/tm-symmetry.h 2001/10/31 22:16:46
@@ -66,7 +66,7 @@
    break mysteriously for no apparent reason.  Also note that the st(0)...
    st(7) 387 registers are represented as st0...st7.  */
 
-#undef  REGISTER_NAMES
+#undef REGISTER_NAME
 #define REGISTER_NAMES {     "eax",  "edx",  "ecx",   "st0",  "st1", \
 			     "ebx",  "esi",  "edi",   "st2",  "st3", \
 			     "st4",  "st5",  "st6",   "st7",  "esp", \


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]