This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
- From: Kevin Buettner <kevinb at redhat dot com>
- To: Elena Zannoni <ezannoni at cygnus dot com>
- Cc: gdb-patches at sources dot redhat dot com, vmakarov at redhat dot com
- Date: Wed, 5 Dec 2001 14:56:41 -0700
- Subject: Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
- References: <15367.50385.770078.559327@krustylu.cygnus.com> <3C07CD1A.4010403@cygnus.com> <15367.63139.561172.481628@krustylu.cygnus.com>
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