* 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>
|
2001-10-31 Christopher Faylor <cgf@redhat.com>
|
||||||
|
|
||||||
* win32-nat.c (register_loaded_dll): Attempt to ensure that the case of
|
* 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. */
|
/* Largest number of registers we could have in any configuration. */
|
||||||
#define MAX_NUM_REGS (16 + 16 + 9)
|
#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.
|
/* Register numbers of various important registers.
|
||||||
Note that some of these values are "real" register numbers,
|
Note that some of these values are "real" register numbers,
|
||||||
and correspond to the general registers of the machine,
|
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)
|
#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. */
|
/* Use the "default" register numbering scheme for stabs and COFF. */
|
||||||
|
|
||||||
#define STAB_REG_TO_REGNUM(reg) i386_stab_reg_to_regnum ((reg))
|
#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
|
scheme (which is the same as the 386 scheme) and also regmap in the various
|
||||||
*-nat.c files. */
|
*-nat.c files. */
|
||||||
|
|
||||||
#undef REGISTER_NAMES
|
#undef REGISTER_NAME
|
||||||
#define REGISTER_NAMES { "eax", "ecx", "edx", "ebx", \
|
#define REGISTER_NAMES { "eax", "ecx", "edx", "ebx", \
|
||||||
"esp", "ebp", "esi", "edi", \
|
"esp", "ebp", "esi", "edi", \
|
||||||
"eip", "eflags", "cs", "ss", \
|
"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
|
scheme (which is the same as the 386 scheme) and also regmap in the various
|
||||||
*-nat.c files. */
|
*-nat.c files. */
|
||||||
|
|
||||||
#undef REGISTER_NAMES
|
#undef REGISTER_NAME
|
||||||
#define REGISTER_NAMES { "eax", "ecx", "edx", "ebx", \
|
#define REGISTER_NAMES { "eax", "ecx", "edx", "ebx", \
|
||||||
"esp", "ebp", "esi", "edi", \
|
"esp", "ebp", "esi", "edi", \
|
||||||
"eip", "eflags", "st0", "st1", \
|
"eip", "eflags", "st0", "st1", \
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
break mysteriously for no apparent reason. Also note that the st(0)...
|
break mysteriously for no apparent reason. Also note that the st(0)...
|
||||||
st(7) 387 registers are represented as st0...st7. */
|
st(7) 387 registers are represented as st0...st7. */
|
||||||
|
|
||||||
#undef REGISTER_NAMES
|
#undef REGISTER_NAME
|
||||||
#define REGISTER_NAMES { "eax", "edx", "ecx", "st0", "st1", \
|
#define REGISTER_NAMES { "eax", "edx", "ecx", "st0", "st1", \
|
||||||
"ebx", "esi", "edi", "st2", "st3", \
|
"ebx", "esi", "edi", "st2", "st3", \
|
||||||
"st4", "st5", "st6", "st7", "esp", \
|
"st4", "st5", "st6", "st7", "esp", \
|
||||||
|
|
|
@ -37,6 +37,23 @@
|
||||||
|
|
||||||
#include "gdb_assert.h"
|
#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
|
/* i386_register_byte[i] is the offset into the register file of the
|
||||||
start of register number i. We initialize this from
|
start of register number i. We initialize this from
|
||||||
i386_register_raw_size. */
|
i386_register_raw_size. */
|
||||||
|
@ -62,6 +79,19 @@ int i386_register_raw_size[MAX_NUM_REGS] = {
|
||||||
type of register i. */
|
type of register i. */
|
||||||
int i386_register_virtual_size[MAX_NUM_REGS];
|
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
|
/* Convert stabs register number REG to the appropriate register
|
||||||
number used by GDB. */
|
number used by GDB. */
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue