[RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
Kevin Buettner
kevinb@redhat.com
Wed Dec 5 13:58:00 GMT 2001
On Nov 30, 4:14pm, Elena Zannoni wrote:
> +/* Convert a dbx stab register number (from `r' declaration) to a gdb
> + REGNUM */
> +static int
> +rs6000_stab_reg_to_regnum (int num)
> +{
> + int regnum;
> + switch (num)
> + {
> + case 64: /* mq */
> + if (TARGET_ARCHITECTURE->mach == bfd_mach_ppc_601)
> + regnum = 124;
Hmm... I wish we had a symbolic constant for this one. (It took me
a while to figure out why this register number was different.)
> + else
> + regnum = 70;
I'd prefer to see PPC_MQ_REGNUM used here in place of the constant 70.
> + break;
> + case 65: regnum = 67; /* lr */
Likewise, here I'd like to see PPC_LR_REGNUM in place of 67.
> + break;
> + case 66: regnum = 68; /* ctr */
Likewise, here I'd like to see PPC_CTR_REGNUM in place of 68.
> + break;
> + case 76: regnum = 69; /* xer */
Likewise, here I'd like to see PPC_XER_REGNUM in place of 69.
> + break;
> + default: regnum = num;
> + break;
> + }
> + return regnum;
> +}
> +
> /* Store the address of the place in which to copy the structure the
> subroutine will return. This is called from call_function.
>
> @@ -2340,6 +2366,7 @@ rs6000_gdbarch_init (struct gdbarch_info
> rs6000_frameless_function_invocation);
> set_gdbarch_frame_chain (gdbarch, rs6000_frame_chain);
> set_gdbarch_frame_saved_pc (gdbarch, rs6000_frame_saved_pc);
> + set_gdbarch_stab_reg_to_regnum (gdbarch, rs6000_stab_reg_to_regnum);
After examining the gcc sources, it appears to me that we need this
for Linux/PPC too. Either add a similar statement to the Linux/PPC
part or move this statement up above the ``if (osabi == ELFOSABI_LINUX)''
statement. (I'd prefer the latter.)
Thanks,
Kevin
More information about the Gdb-patches
mailing list