Fix sigtramp cache code so that PPC register are read only if there is H/W.

This commit is contained in:
Paul Gilliam 2006-11-13 17:37:36 +00:00
parent 10e14daab1
commit 4019046acc
2 changed files with 14 additions and 8 deletions

View File

@ -1,3 +1,7 @@
2006-10-31 Paul Gilliam <pgilliam@us.ibm.com>
* ppc-linux-tdep.c (ppc_linux_sigtramp_cache): Don't futz with
the floating point registers if there aren't any.
2006-11-12 Ben Harris <bjh21@NetBSD.org>
* arm-tdep.c (arm_unwind_pc): Use arm_addr_bits_remove.

View File

@ -916,14 +916,16 @@ ppc_linux_sigtramp_cache (struct frame_info *next_frame,
trad_frame_set_reg_addr (this_cache, tdep->ppc_cr_regnum,
gpregs + 38 * tdep->wordsize);
/* Floating point registers. */
for (i = 0; i < 32; i++)
{
int regnum = i + FP0_REGNUM;
trad_frame_set_reg_addr (this_cache, regnum, fpregs + i * tdep->wordsize);
}
trad_frame_set_reg_addr (this_cache, tdep->ppc_fpscr_regnum,
fpregs + 32 * tdep->wordsize);
if (ppc_floating_point_unit_p (gdbarch)) {
/* Floating point registers. */
for (i = 0; i < 32; i++)
{
int regnum = i + FP0_REGNUM;
trad_frame_set_reg_addr (this_cache, regnum, fpregs + i * tdep->wordsize);
}
trad_frame_set_reg_addr (this_cache, tdep->ppc_fpscr_regnum,
fpregs + 32 * tdep->wordsize);
}
trad_frame_set_id (this_cache, frame_id_build (base, func));
}