diff options
author | Mark Kettenis <kettenis@gnu.org> | 2001-10-31 22:24:06 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2001-10-31 22:24:06 +0000 |
commit | fc633446cdd297e770680b1ec4983c5db4ae59d2 (patch) | |
tree | 7ef01f6bb81e501fcc8babaa6ff8e338c249caf4 /gdb | |
parent | aaa68313b8a2c635670eb03130a4d06f195c93c5 (diff) | |
download | gdb-fc633446cdd297e770680b1ec4983c5db4ae59d2.zip gdb-fc633446cdd297e770680b1ec4983c5db4ae59d2.tar.gz gdb-fc633446cdd297e770680b1ec4983c5db4ae59d2.tar.bz2 |
* 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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 11 | ||||
-rw-r--r-- | gdb/config/i386/tm-i386.h | 24 | ||||
-rw-r--r-- | gdb/config/i386/tm-i386os9k.h | 2 | ||||
-rw-r--r-- | gdb/config/i386/tm-ptx.h | 2 | ||||
-rw-r--r-- | gdb/config/i386/tm-symmetry.h | 2 | ||||
-rw-r--r-- | gdb/i386-tdep.c | 30 |
6 files changed, 49 insertions, 22 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fca30f1..36df6e7 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2001-10-31 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. + 2001-10-31 Christopher Faylor <cgf@redhat.com> * win32-nat.c (register_loaded_dll): Attempt to ensure that the case of diff --git a/gdb/config/i386/tm-i386.h b/gdb/config/i386/tm-i386.h index 5f2386c..e821700 100644 --- a/gdb/config/i386/tm-i386.h +++ b/gdb/config/i386/tm-i386.h @@ -127,25 +127,6 @@ extern CORE_ADDR i386_saved_pc_after_call (struct frame_info *frame); /* 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, @@ -195,6 +176,11 @@ extern CORE_ADDR i386_saved_pc_after_call (struct frame_info *frame); #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. */ #define STAB_REG_TO_REGNUM(reg) i386_stab_reg_to_regnum ((reg)) diff --git a/gdb/config/i386/tm-i386os9k.h b/gdb/config/i386/tm-i386os9k.h index 10fbdb4..78fbc21 100644 --- a/gdb/config/i386/tm-i386os9k.h +++ b/gdb/config/i386/tm-i386os9k.h @@ -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", \ diff --git a/gdb/config/i386/tm-ptx.h b/gdb/config/i386/tm-ptx.h index 50bfe4b..2a1731a 100644 --- a/gdb/config/i386/tm-ptx.h +++ b/gdb/config/i386/tm-ptx.h @@ -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", \ diff --git a/gdb/config/i386/tm-symmetry.h b/gdb/config/i386/tm-symmetry.h index a335ba9..7828181 100644 --- a/gdb/config/i386/tm-symmetry.h +++ b/gdb/config/i386/tm-symmetry.h @@ -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", \ diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 700ae25..4035e93 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -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. */ @@ -62,6 +79,19 @@ int i386_register_raw_size[MAX_NUM_REGS] = { 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. */ |