* 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:
parent
aaa68313b8
commit
fc633446cd
6 changed files with 49 additions and 22 deletions
|
@ -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
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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", \
|
||||
|
|
|
@ -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", \
|
||||
|
|
|
@ -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", \
|
||||
|
|
|
@ -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. */
|
||||
|
||||
|
|
Loading…
Reference in a new issue