* amd64-nat.h (amd64_native_gregset_supplies_p): Add gdbarch as
parameter. * amd64-nat.c (amd64_native_gregset_supplies_p): Likewise. (amd64_native_gregset_reg_offset): Add gdbarch as parameter. Replace current_gdbarch by gdbarch. Update caller. * amd64-linux-nat.c (amd64_linux_fetch_inferior_registers) (amd64_linux_store_inferior_registers): Use get_regcache_arch to get at the current architecture. Update calls of amd64_native_gregset_supplies_p. * amd64bsd-nat.c (amd64bsd_fetch_inferior_registers) (amd64bsd_store_inferior_registers): Likewise.
This commit is contained in:
parent
e101270fb8
commit
f8028488ab
5 changed files with 43 additions and 20 deletions
|
@ -1,3 +1,19 @@
|
|||
2008-01-16 Markus Deuling <deuling@de.ibm.com>
|
||||
|
||||
* amd64-nat.h (amd64_native_gregset_supplies_p): Add gdbarch as
|
||||
parameter.
|
||||
* amd64-nat.c (amd64_native_gregset_supplies_p): Likewise.
|
||||
|
||||
(amd64_native_gregset_reg_offset): Add gdbarch as parameter. Replace
|
||||
current_gdbarch by gdbarch. Update caller.
|
||||
|
||||
* amd64-linux-nat.c (amd64_linux_fetch_inferior_registers)
|
||||
(amd64_linux_store_inferior_registers): Use get_regcache_arch to get at
|
||||
the current architecture. Update calls of
|
||||
amd64_native_gregset_supplies_p.
|
||||
* amd64bsd-nat.c (amd64bsd_fetch_inferior_registers)
|
||||
(amd64bsd_store_inferior_registers): Likewise.
|
||||
|
||||
2008-01-16 Markus Deuling <deuling@de.ibm.com>
|
||||
|
||||
* ppc-linux-nat.c (ppc_register_u_addr): Add gdbarch as parameter.
|
||||
|
|
|
@ -157,6 +157,7 @@ fill_fpregset (const struct regcache *regcache,
|
|||
static void
|
||||
amd64_linux_fetch_inferior_registers (struct regcache *regcache, int regnum)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
int tid;
|
||||
|
||||
/* GNU/Linux LWP ID's are process ID's. */
|
||||
|
@ -164,7 +165,7 @@ amd64_linux_fetch_inferior_registers (struct regcache *regcache, int regnum)
|
|||
if (tid == 0)
|
||||
tid = PIDGET (inferior_ptid); /* Not a threaded program. */
|
||||
|
||||
if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
|
||||
if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
|
||||
{
|
||||
elf_gregset_t regs;
|
||||
|
||||
|
@ -176,7 +177,7 @@ amd64_linux_fetch_inferior_registers (struct regcache *regcache, int regnum)
|
|||
return;
|
||||
}
|
||||
|
||||
if (regnum == -1 || !amd64_native_gregset_supplies_p (regnum))
|
||||
if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
|
||||
{
|
||||
elf_fpregset_t fpregs;
|
||||
|
||||
|
@ -194,6 +195,7 @@ amd64_linux_fetch_inferior_registers (struct regcache *regcache, int regnum)
|
|||
static void
|
||||
amd64_linux_store_inferior_registers (struct regcache *regcache, int regnum)
|
||||
{
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
int tid;
|
||||
|
||||
/* GNU/Linux LWP ID's are process ID's. */
|
||||
|
@ -201,7 +203,7 @@ amd64_linux_store_inferior_registers (struct regcache *regcache, int regnum)
|
|||
if (tid == 0)
|
||||
tid = PIDGET (inferior_ptid); /* Not a threaded program. */
|
||||
|
||||
if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
|
||||
if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
|
||||
{
|
||||
elf_gregset_t regs;
|
||||
|
||||
|
@ -217,7 +219,7 @@ amd64_linux_store_inferior_registers (struct regcache *regcache, int regnum)
|
|||
return;
|
||||
}
|
||||
|
||||
if (regnum == -1 || !amd64_native_gregset_supplies_p (regnum))
|
||||
if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
|
||||
{
|
||||
elf_fpregset_t fpregs;
|
||||
|
||||
|
|
|
@ -51,23 +51,23 @@ int amd64_native_gregset64_num_regs = AMD64_NUM_GREGS;
|
|||
general-purpose register set. */
|
||||
|
||||
static int
|
||||
amd64_native_gregset_reg_offset (int regnum)
|
||||
amd64_native_gregset_reg_offset (struct gdbarch *gdbarch, int regnum)
|
||||
{
|
||||
int *reg_offset = amd64_native_gregset64_reg_offset;
|
||||
int num_regs = amd64_native_gregset64_num_regs;
|
||||
|
||||
gdb_assert (regnum >= 0);
|
||||
|
||||
if (gdbarch_ptr_bit (current_gdbarch) == 32)
|
||||
if (gdbarch_ptr_bit (gdbarch) == 32)
|
||||
{
|
||||
reg_offset = amd64_native_gregset32_reg_offset;
|
||||
num_regs = amd64_native_gregset32_num_regs;
|
||||
}
|
||||
|
||||
if (num_regs > gdbarch_num_regs (current_gdbarch))
|
||||
num_regs = gdbarch_num_regs (current_gdbarch);
|
||||
if (num_regs > gdbarch_num_regs (gdbarch))
|
||||
num_regs = gdbarch_num_regs (gdbarch);
|
||||
|
||||
if (regnum < num_regs && regnum < gdbarch_num_regs (current_gdbarch))
|
||||
if (regnum < num_regs && regnum < gdbarch_num_regs (gdbarch))
|
||||
return reg_offset[regnum];
|
||||
|
||||
return -1;
|
||||
|
@ -77,9 +77,9 @@ amd64_native_gregset_reg_offset (int regnum)
|
|||
register REGNUM. */
|
||||
|
||||
int
|
||||
amd64_native_gregset_supplies_p (int regnum)
|
||||
amd64_native_gregset_supplies_p (struct gdbarch *gdbarch, int regnum)
|
||||
{
|
||||
return (amd64_native_gregset_reg_offset (regnum) != -1);
|
||||
return (amd64_native_gregset_reg_offset (gdbarch, regnum) != -1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -105,7 +105,7 @@ amd64_supply_native_gregset (struct regcache *regcache,
|
|||
{
|
||||
if (regnum == -1 || regnum == i)
|
||||
{
|
||||
int offset = amd64_native_gregset_reg_offset (i);
|
||||
int offset = amd64_native_gregset_reg_offset (gdbarch, i);
|
||||
|
||||
if (offset != -1)
|
||||
regcache_raw_supply (regcache, i, regs + offset);
|
||||
|
@ -135,13 +135,13 @@ amd64_collect_native_gregset (const struct regcache *regcache,
|
|||
for (i = 0; i <= I386_EIP_REGNUM; i++)
|
||||
{
|
||||
if (regnum == -1 || regnum == i)
|
||||
memset (regs + amd64_native_gregset_reg_offset (i), 0, 8);
|
||||
memset (regs + amd64_native_gregset_reg_offset (gdbarch, i), 0, 8);
|
||||
}
|
||||
/* Ditto for %cs, %ss, %ds, %es, %fs, and %gs. */
|
||||
for (i = I386_CS_REGNUM; i <= I386_GS_REGNUM; i++)
|
||||
{
|
||||
if (regnum == -1 || regnum == i)
|
||||
memset (regs + amd64_native_gregset_reg_offset (i), 0, 8);
|
||||
memset (regs + amd64_native_gregset_reg_offset (gdbarch, i), 0, 8);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -152,7 +152,7 @@ amd64_collect_native_gregset (const struct regcache *regcache,
|
|||
{
|
||||
if (regnum == -1 || regnum == i)
|
||||
{
|
||||
int offset = amd64_native_gregset_reg_offset (i);
|
||||
int offset = amd64_native_gregset_reg_offset (gdbarch, i);
|
||||
|
||||
if (offset != -1)
|
||||
regcache_raw_collect (regcache, i, regs + offset);
|
||||
|
|
|
@ -33,7 +33,8 @@ extern int amd64_native_gregset64_num_regs;
|
|||
/* Return whether the native general-purpose register set supplies
|
||||
register REGNUM. */
|
||||
|
||||
extern int amd64_native_gregset_supplies_p (int regnum);
|
||||
extern int amd64_native_gregset_supplies_p (struct gdbarch *gdbarch,
|
||||
int regnum);
|
||||
|
||||
/* Supply register REGNUM, whose contents are store in BUF, to
|
||||
REGCACHE. If REGNUM is -1, supply all appropriate registers. */
|
||||
|
|
|
@ -41,7 +41,9 @@
|
|||
static void
|
||||
amd64bsd_fetch_inferior_registers (struct regcache *regcache, int regnum)
|
||||
{
|
||||
if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
|
||||
if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
|
||||
{
|
||||
struct reg regs;
|
||||
|
||||
|
@ -54,7 +56,7 @@ amd64bsd_fetch_inferior_registers (struct regcache *regcache, int regnum)
|
|||
return;
|
||||
}
|
||||
|
||||
if (regnum == -1 || !amd64_native_gregset_supplies_p (regnum))
|
||||
if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
|
||||
{
|
||||
struct fpreg fpregs;
|
||||
|
||||
|
@ -72,7 +74,9 @@ amd64bsd_fetch_inferior_registers (struct regcache *regcache, int regnum)
|
|||
static void
|
||||
amd64bsd_store_inferior_registers (struct regcache *regcache, int regnum)
|
||||
{
|
||||
if (regnum == -1 || amd64_native_gregset_supplies_p (regnum))
|
||||
struct gdbarch *gdbarch = get_regcache_arch (regcache);
|
||||
|
||||
if (regnum == -1 || amd64_native_gregset_supplies_p (gdbarch, regnum))
|
||||
{
|
||||
struct reg regs;
|
||||
|
||||
|
@ -90,7 +94,7 @@ amd64bsd_store_inferior_registers (struct regcache *regcache, int regnum)
|
|||
return;
|
||||
}
|
||||
|
||||
if (regnum == -1 || !amd64_native_gregset_supplies_p (regnum))
|
||||
if (regnum == -1 || !amd64_native_gregset_supplies_p (gdbarch, regnum))
|
||||
{
|
||||
struct fpreg fpregs;
|
||||
|
||||
|
|
Loading…
Reference in a new issue