mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-28 01:50:48 +00:00
2011-01-31 Yao Qi <yao@codesourcery.com>
* arm-linux-nat.c: Update calls to regcache_register_status instead of regcache_valid_p. * aix-thread.c: Likewise. * i386gnu-nat.c: Likewise.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2011-01-31 Yao Qi <yao@codesourcery.com>
|
||||
|
||||
* arm-linux-nat.c: Update calls to regcache_register_status
|
||||
instead of regcache_valid_p.
|
||||
* aix-thread.c: Likewise.
|
||||
* i386gnu-nat.c: Likewise.
|
||||
|
||||
2011-01-29 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix crash.
|
||||
|
||||
@@ -1321,7 +1321,8 @@ fill_gprs64 (const struct regcache *regcache, uint64_t *vals)
|
||||
int regno;
|
||||
|
||||
for (regno = 0; regno < ppc_num_gprs; regno++)
|
||||
if (regcache_valid_p (regcache, tdep->ppc_gp0_regnum + regno))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
tdep->ppc_gp0_regnum + regno))
|
||||
regcache_raw_collect (regcache, tdep->ppc_gp0_regnum + regno,
|
||||
vals + regno);
|
||||
}
|
||||
@@ -1333,7 +1334,8 @@ fill_gprs32 (const struct regcache *regcache, uint32_t *vals)
|
||||
int regno;
|
||||
|
||||
for (regno = 0; regno < ppc_num_gprs; regno++)
|
||||
if (regcache_valid_p (regcache, tdep->ppc_gp0_regnum + regno))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
tdep->ppc_gp0_regnum + regno))
|
||||
regcache_raw_collect (regcache, tdep->ppc_gp0_regnum + regno,
|
||||
vals + regno);
|
||||
}
|
||||
@@ -1353,7 +1355,7 @@ fill_fprs (const struct regcache *regcache, double *vals)
|
||||
for (regno = tdep->ppc_fp0_regnum;
|
||||
regno < tdep->ppc_fp0_regnum + ppc_num_fprs;
|
||||
regno++)
|
||||
if (regcache_valid_p (regcache, regno))
|
||||
if (REG_VALID == regcache_register_status (regcache, regno))
|
||||
regcache_raw_collect (regcache, regno, vals + regno);
|
||||
}
|
||||
|
||||
@@ -1377,20 +1379,22 @@ fill_sprs64 (const struct regcache *regcache,
|
||||
gdb_assert (sizeof (*iar) == register_size
|
||||
(gdbarch, gdbarch_pc_regnum (gdbarch)));
|
||||
|
||||
if (regcache_valid_p (regcache, gdbarch_pc_regnum (gdbarch)))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
gdbarch_pc_regnum (gdbarch)))
|
||||
regcache_raw_collect (regcache, gdbarch_pc_regnum (gdbarch), iar);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_ps_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ps_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_ps_regnum, msr);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_cr_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_cr_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_cr_regnum, cr);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_lr_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_lr_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_lr_regnum, lr);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_ctr_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ctr_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_ctr_regnum, ctr);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_xer_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_xer_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_xer_regnum, xer);
|
||||
if (tdep->ppc_fpscr_regnum >= 0
|
||||
&& regcache_valid_p (regcache, tdep->ppc_fpscr_regnum))
|
||||
&& REG_VALID == regcache_register_status (regcache,
|
||||
tdep->ppc_fpscr_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_fpscr_regnum, fpscr);
|
||||
}
|
||||
|
||||
@@ -1411,20 +1415,21 @@ fill_sprs32 (const struct regcache *regcache,
|
||||
gdb_assert (sizeof (*iar) == register_size (gdbarch,
|
||||
gdbarch_pc_regnum (gdbarch)));
|
||||
|
||||
if (regcache_valid_p (regcache, gdbarch_pc_regnum (gdbarch)))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
gdbarch_pc_regnum (gdbarch)))
|
||||
regcache_raw_collect (regcache, gdbarch_pc_regnum (gdbarch), iar);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_ps_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ps_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_ps_regnum, msr);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_cr_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_cr_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_cr_regnum, cr);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_lr_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_lr_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_lr_regnum, lr);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_ctr_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ctr_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_ctr_regnum, ctr);
|
||||
if (regcache_valid_p (regcache, tdep->ppc_xer_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_xer_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_xer_regnum, xer);
|
||||
if (tdep->ppc_fpscr_regnum >= 0
|
||||
&& regcache_valid_p (regcache, tdep->ppc_fpscr_regnum))
|
||||
&& REG_VALID == regcache_register_status (regcache, tdep->ppc_fpscr_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_fpscr_regnum, fpscr);
|
||||
}
|
||||
|
||||
@@ -1459,7 +1464,8 @@ store_regs_user_thread (const struct regcache *regcache, pthdb_pthread_t pdtid)
|
||||
/* Collect general-purpose register values from the regcache. */
|
||||
|
||||
for (i = 0; i < ppc_num_gprs; i++)
|
||||
if (regcache_valid_p (regcache, tdep->ppc_gp0_regnum + i))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
tdep->ppc_gp0_regnum + i))
|
||||
{
|
||||
if (arch64)
|
||||
{
|
||||
@@ -1494,19 +1500,23 @@ store_regs_user_thread (const struct regcache *regcache, pthdb_pthread_t pdtid)
|
||||
|
||||
fill_sprs32 (regcache, &tmp_iar, &tmp_msr, &tmp_cr, &tmp_lr, &tmp_ctr,
|
||||
&tmp_xer, &tmp_fpscr);
|
||||
if (regcache_valid_p (regcache, gdbarch_pc_regnum (gdbarch)))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
gdbarch_pc_regnum (gdbarch)))
|
||||
ctx.iar = tmp_iar;
|
||||
if (regcache_valid_p (regcache, tdep->ppc_ps_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_ps_regnum))
|
||||
ctx.msr = tmp_msr;
|
||||
if (regcache_valid_p (regcache, tdep->ppc_cr_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_cr_regnum))
|
||||
ctx.cr = tmp_cr;
|
||||
if (regcache_valid_p (regcache, tdep->ppc_lr_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache, tdep->ppc_lr_regnum))
|
||||
ctx.lr = tmp_lr;
|
||||
if (regcache_valid_p (regcache, tdep->ppc_ctr_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
tdep->ppc_ctr_regnum))
|
||||
ctx.ctr = tmp_ctr;
|
||||
if (regcache_valid_p (regcache, tdep->ppc_xer_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
tdep->ppc_xer_regnum))
|
||||
ctx.xer = tmp_xer;
|
||||
if (regcache_valid_p (regcache, tdep->ppc_xer_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
tdep->ppc_xer_regnum))
|
||||
ctx.fpscr = tmp_fpscr;
|
||||
}
|
||||
|
||||
@@ -1620,7 +1630,8 @@ store_regs_kernel_thread (const struct regcache *regcache, int regno,
|
||||
sprs32.pt_fpscr = tmp_fpscr;
|
||||
|
||||
if (tdep->ppc_mq_regnum >= 0)
|
||||
if (regcache_valid_p (regcache, tdep->ppc_mq_regnum))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
tdep->ppc_mq_regnum))
|
||||
regcache_raw_collect (regcache, tdep->ppc_mq_regnum,
|
||||
&sprs32.pt_mq);
|
||||
|
||||
|
||||
@@ -190,7 +190,8 @@ store_fpregister (const struct regcache *regcache, int regno)
|
||||
}
|
||||
|
||||
/* Store fpsr. */
|
||||
if (ARM_FPS_REGNUM == regno && regcache_valid_p (regcache, ARM_FPS_REGNUM))
|
||||
if (ARM_FPS_REGNUM == regno
|
||||
&& REG_VALID == regcache_register_status (regcache, ARM_FPS_REGNUM))
|
||||
regcache_raw_collect (regcache, ARM_FPS_REGNUM, fp + NWFPE_FPSR_OFFSET);
|
||||
|
||||
/* Store the floating point register. */
|
||||
@@ -226,12 +227,12 @@ store_fpregs (const struct regcache *regcache)
|
||||
}
|
||||
|
||||
/* Store fpsr. */
|
||||
if (regcache_valid_p (regcache, ARM_FPS_REGNUM))
|
||||
if (REG_VALID == regcache_register_status (regcache, ARM_FPS_REGNUM))
|
||||
regcache_raw_collect (regcache, ARM_FPS_REGNUM, fp + NWFPE_FPSR_OFFSET);
|
||||
|
||||
/* Store the floating point registers. */
|
||||
for (regno = ARM_F0_REGNUM; regno <= ARM_F7_REGNUM; regno++)
|
||||
if (regcache_valid_p (regcache, regno))
|
||||
if (REG_VALID == regcache_register_status (regcache, regno))
|
||||
collect_nwfpe_register (regcache, regno, fp);
|
||||
|
||||
ret = ptrace (PTRACE_SETFPREGS, tid, 0, fp);
|
||||
@@ -328,7 +329,7 @@ store_register (const struct regcache *regcache, int regno)
|
||||
int ret, tid;
|
||||
elf_gregset_t regs;
|
||||
|
||||
if (!regcache_valid_p (regcache, regno))
|
||||
if (REG_VALID != regcache_register_status (regcache, regno))
|
||||
return;
|
||||
|
||||
/* Get the thread id for the ptrace call. */
|
||||
@@ -378,11 +379,11 @@ store_regs (const struct regcache *regcache)
|
||||
|
||||
for (regno = ARM_A1_REGNUM; regno <= ARM_PC_REGNUM; regno++)
|
||||
{
|
||||
if (regcache_valid_p (regcache, regno))
|
||||
if (REG_VALID == regcache_register_status (regcache, regno))
|
||||
regcache_raw_collect (regcache, regno, (char *) ®s[regno]);
|
||||
}
|
||||
|
||||
if (arm_apcs_32 && regcache_valid_p (regcache, ARM_PS_REGNUM))
|
||||
if (arm_apcs_32 && REG_VALID == regcache_register_status (regcache, ARM_PS_REGNUM))
|
||||
regcache_raw_collect (regcache, ARM_PS_REGNUM,
|
||||
(char *) ®s[ARM_CPSR_GREGNUM]);
|
||||
|
||||
@@ -446,17 +447,20 @@ store_wmmx_regs (const struct regcache *regcache)
|
||||
}
|
||||
|
||||
for (regno = 0; regno < 16; regno++)
|
||||
if (regcache_valid_p (regcache, regno + ARM_WR0_REGNUM))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
regno + ARM_WR0_REGNUM))
|
||||
regcache_raw_collect (regcache, regno + ARM_WR0_REGNUM,
|
||||
®buf[regno * 8]);
|
||||
|
||||
for (regno = 0; regno < 2; regno++)
|
||||
if (regcache_valid_p (regcache, regno + ARM_WCSSF_REGNUM))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
regno + ARM_WCSSF_REGNUM))
|
||||
regcache_raw_collect (regcache, regno + ARM_WCSSF_REGNUM,
|
||||
®buf[16 * 8 + regno * 4]);
|
||||
|
||||
for (regno = 0; regno < 4; regno++)
|
||||
if (regcache_valid_p (regcache, regno + ARM_WCGR0_REGNUM))
|
||||
if (REG_VALID == regcache_register_status (regcache,
|
||||
regno + ARM_WCGR0_REGNUM))
|
||||
regcache_raw_collect (regcache, regno + ARM_WCGR0_REGNUM,
|
||||
®buf[16 * 8 + 2 * 4 + regno * 4]);
|
||||
|
||||
|
||||
@@ -272,7 +272,7 @@ gnu_store_registers (struct target_ops *ops,
|
||||
proc_debug (thread, "storing all registers");
|
||||
|
||||
for (i = 0; i < I386_NUM_GREGS; i++)
|
||||
if (regcache_valid_p (regcache, i))
|
||||
if (REG_VALID == regcache_register_status (regcache, i))
|
||||
regcache_raw_collect (regcache, i, REG_ADDR (state, i));
|
||||
}
|
||||
else
|
||||
@@ -280,7 +280,7 @@ gnu_store_registers (struct target_ops *ops,
|
||||
proc_debug (thread, "storing register %s",
|
||||
gdbarch_register_name (gdbarch, regno));
|
||||
|
||||
gdb_assert (regcache_valid_p (regcache, regno));
|
||||
gdb_assert (REG_VALID == regcache_register_status (regcache, regno));
|
||||
regcache_raw_collect (regcache, regno, REG_ADDR (state, regno));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user