* 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.
This commit is contained in:
Mark Kettenis 2001-10-31 22:24:06 +00:00
parent aaa68313b8
commit fc633446cd
6 changed files with 49 additions and 22 deletions

View File

@ -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

View File

@ -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))

View File

@ -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", \

View File

@ -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", \

View File

@ -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", \

View File

@ -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. */