* i386-linux-nat.c (GETREGS_SUPPLIES, supply_gregset,

fill_gregset): Add support for "orig_eax" register.
This commit is contained in:
Mark Kettenis 2001-11-04 14:30:42 +00:00
parent 6441c4a026
commit 3fb1c83804
2 changed files with 9 additions and 1 deletions

View File

@ -1,5 +1,8 @@
2001-11-04 Mark Kettenis <kettenis@gnu.org> 2001-11-04 Mark Kettenis <kettenis@gnu.org>
* i386-linux-nat.c (GETREGS_SUPPLIES, supply_gregset,
fill_gregset): Add support for "orig_eax" register.
Add support for "orig_eax" pseudo register on Linux/x86. Add support for "orig_eax" pseudo register on Linux/x86.
* i386-linux-tdep.c: Include "inferior.h". * i386-linux-tdep.c: Include "inferior.h".
(i386_linux_register_name, i386_linux_register_byte, (i386_linux_register_name, i386_linux_register_byte,

View File

@ -88,7 +88,7 @@ static int regmap[] =
/* Which ptrace request retrieves which registers? /* Which ptrace request retrieves which registers?
These apply to the corresponding SET requests as well. */ These apply to the corresponding SET requests as well. */
#define GETREGS_SUPPLIES(regno) \ #define GETREGS_SUPPLIES(regno) \
(0 <= (regno) && (regno) <= 15) ((0 <= (regno) && (regno) <= 15) || (regno) == I386_LINUX_ORIG_EAX_REGNUM)
#define GETFPREGS_SUPPLIES(regno) \ #define GETFPREGS_SUPPLIES(regno) \
(FP0_REGNUM <= (regno) && (regno) <= LAST_FPU_CTRL_REGNUM) (FP0_REGNUM <= (regno) && (regno) <= LAST_FPU_CTRL_REGNUM)
#define GETFPXREGS_SUPPLIES(regno) \ #define GETFPXREGS_SUPPLIES(regno) \
@ -306,6 +306,8 @@ supply_gregset (elf_gregset_t *gregsetp)
for (i = 0; i < NUM_GREGS; i++) for (i = 0; i < NUM_GREGS; i++)
supply_register (i, (char *) (regp + regmap[i])); supply_register (i, (char *) (regp + regmap[i]));
supply_register (I386_LINUX_ORIG_EAX_REGNUM, (char *) (regp + ORIG_EAX));
} }
/* Fill register REGNO (if it is a general-purpose register) in /* Fill register REGNO (if it is a general-purpose register) in
@ -321,6 +323,9 @@ fill_gregset (elf_gregset_t *gregsetp, int regno)
for (i = 0; i < NUM_GREGS; i++) for (i = 0; i < NUM_GREGS; i++)
if ((regno == -1 || regno == i)) if ((regno == -1 || regno == i))
*(regp + regmap[i]) = *(elf_greg_t *) &registers[REGISTER_BYTE (i)]; *(regp + regmap[i]) = *(elf_greg_t *) &registers[REGISTER_BYTE (i)];
if (regno == -1 || regno == I386_LINUX_ORIG_EAX_REGNUM)
read_register_gen (I386_LINUX_ORIG_EAX_REGNUM, (char *) (regp + ORIG_EAX));
} }
#ifdef HAVE_PTRACE_GETREGS #ifdef HAVE_PTRACE_GETREGS