* Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
2001-11-30 13:08 ` Elena Zannoni
@ 2001-11-24 6:47 ` Elena Zannoni
2001-11-30 13:36 ` Daniel Jacobowitz
2001-12-05 13:58 ` Kevin Buettner
2 siblings, 0 replies; 16+ messages in thread
From: Elena Zannoni @ 2001-11-24 6:47 UTC (permalink / raw)
To: Andrew Cagney; +Cc: Elena Zannoni, gdb-patches, vmakarov
Andrew Cagney writes:
> Just FYI,
>
> It should be using the multi-arch method.
>
> Andrew
Damn, yes, overlooked it.
Here is a new patch. Retested as well.
This shouldn't effect the linux-ppc platform.
I'll look at that next.
Elena
2001-11-22 Elena Zannoni <ezannoni@redhat.com>
Based on a patch from Vladimir Makarov <vmakarov@redhat.com>:
* config/rs6000/tm-rs6000.h (STAB_REG_TO_REGNUM): Delete it.
It is now multiarched.
* rs6000-tdep.c (rs6000_stab_reg_to_regnum): New function.
(rs6000_gdbarch_init): Set gdbarch_stab_to_regnum.
Index: rs6000-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v
retrieving revision 1.28
diff -u -p -r1.28 rs6000-tdep.c
--- rs6000-tdep.c 2001/10/21 17:19:37 1.28
+++ rs6000-tdep.c 2001/11/30 20:58:50
@@ -1613,6 +1613,32 @@ rs6000_register_convert_to_raw (struct t
memcpy (to, from, REGISTER_RAW_SIZE (n));
}
+/* 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;
+ else
+ regnum = 70;
+ break;
+ case 65: regnum = 67; /* lr */
+ break;
+ case 66: regnum = 68; /* ctr */
+ break;
+ case 76: regnum = 69; /* xer */
+ 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);
set_gdbarch_frame_init_saved_regs (gdbarch, rs6000_frame_init_saved_regs);
set_gdbarch_init_extra_frame_info (gdbarch, rs6000_init_extra_frame_info);
Index: config/rs6000/tm-rs6000.h
===================================================================
RCS file: /cvs/src/src/gdb/config/rs6000/tm-rs6000.h,v
retrieving revision 1.13
diff -u -p -r1.13 tm-rs6000.h
--- tm-rs6000.h 2001/05/01 19:36:11 1.13
+++ tm-rs6000.h 2001/11/30 20:58:58
@@ -86,10 +86,6 @@ extern void aix_process_linenos (void);
#define FIRST_UISA_SP_REGNUM 64 /* first special register number */
#define LAST_UISA_SP_REGNUM 70 /* last special register number */
-/* convert a dbx stab register number (from `r' declaration) to a gdb REGNUM */
-
-#define STAB_REG_TO_REGNUM(value) (value)
-
/* Define other aspects of the stack frame. */
#define INIT_FRAME_PC_FIRST(fromleaf, prev) \
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
2001-11-30 13:08 ` Elena Zannoni
2001-11-24 6:47 ` Elena Zannoni
@ 2001-11-30 13:36 ` Daniel Jacobowitz
2001-11-24 11:03 ` Daniel Jacobowitz
2001-12-05 13:58 ` Kevin Buettner
2 siblings, 1 reply; 16+ messages in thread
From: Daniel Jacobowitz @ 2001-11-30 13:36 UTC (permalink / raw)
To: gdb-patches
On Fri, Nov 30, 2001 at 04:14:11PM -0500, Elena Zannoni wrote:
> Andrew Cagney writes:
> > Just FYI,
> >
> > It should be using the multi-arch method.
> >
> > Andrew
>
> Damn, yes, overlooked it.
> Here is a new patch. Retested as well.
>
> This shouldn't effect the linux-ppc platform.
> I'll look at that next.
Yes, after checking GCC I expect you're fine. False alarm.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
2001-11-30 13:36 ` Daniel Jacobowitz
@ 2001-11-24 11:03 ` Daniel Jacobowitz
0 siblings, 0 replies; 16+ messages in thread
From: Daniel Jacobowitz @ 2001-11-24 11:03 UTC (permalink / raw)
To: gdb-patches
On Fri, Nov 30, 2001 at 04:14:11PM -0500, Elena Zannoni wrote:
> Andrew Cagney writes:
> > Just FYI,
> >
> > It should be using the multi-arch method.
> >
> > Andrew
>
> Damn, yes, overlooked it.
> Here is a new patch. Retested as well.
>
> This shouldn't effect the linux-ppc platform.
> I'll look at that next.
Yes, after checking GCC I expect you're fine. False alarm.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
2001-11-30 13:08 ` Elena Zannoni
2001-11-24 6:47 ` Elena Zannoni
2001-11-30 13:36 ` Daniel Jacobowitz
@ 2001-12-05 13:58 ` Kevin Buettner
2001-12-05 14:25 ` Elena Zannoni
2 siblings, 1 reply; 16+ messages in thread
From: Kevin Buettner @ 2001-12-05 13:58 UTC (permalink / raw)
To: Elena Zannoni; +Cc: gdb-patches, vmakarov
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
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
2001-12-05 13:58 ` Kevin Buettner
@ 2001-12-05 14:25 ` Elena Zannoni
2001-12-05 14:30 ` Daniel Jacobowitz
2001-12-05 14:53 ` Kevin Buettner
0 siblings, 2 replies; 16+ messages in thread
From: Elena Zannoni @ 2001-12-05 14:25 UTC (permalink / raw)
To: Kevin Buettner; +Cc: Elena Zannoni, gdb-patches, vmakarov
Kevin Buettner writes:
> 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.)
Hmmm, should these regnums be part of the gdbarch_tdep structure?
That's how I did it for the SH. (Defined to -1 if not applicable) It
seems to me that not all the variants have register (say, for
instance) 67 defined to be the LR register or even exist. This way we
could also do error checking in this routine.
OK, for the other changes. Dan said that linux/ppc didn't need these
changes, but it sure looks like it does. The mapping would be
wrong for that as well.
Elena
>
> > + 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
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
2001-12-05 14:25 ` Elena Zannoni
@ 2001-12-05 14:30 ` Daniel Jacobowitz
2001-12-05 14:34 ` Elena Zannoni
2001-12-05 14:53 ` Kevin Buettner
1 sibling, 1 reply; 16+ messages in thread
From: Daniel Jacobowitz @ 2001-12-05 14:30 UTC (permalink / raw)
To: Elena Zannoni; +Cc: Kevin Buettner, gdb-patches, vmakarov
On Wed, Dec 05, 2001 at 05:31:20PM -0500, Elena Zannoni wrote:
> OK, for the other changes. Dan said that linux/ppc didn't need these
> changes, but it sure looks like it does. The mapping would be
> wrong for that as well.
's what I get for not being clearer or paying enough attention. I
assumed you were changing this for all PPC targets; Linux uses the same
mapping others do.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
2001-12-05 14:30 ` Daniel Jacobowitz
@ 2001-12-05 14:34 ` Elena Zannoni
0 siblings, 0 replies; 16+ messages in thread
From: Elena Zannoni @ 2001-12-05 14:34 UTC (permalink / raw)
To: Daniel Jacobowitz; +Cc: Elena Zannoni, Kevin Buettner, gdb-patches, vmakarov
Daniel Jacobowitz writes:
> On Wed, Dec 05, 2001 at 05:31:20PM -0500, Elena Zannoni wrote:
> > OK, for the other changes. Dan said that linux/ppc didn't need these
> > changes, but it sure looks like it does. The mapping would be
> > wrong for that as well.
>
> 's what I get for not being clearer or paying enough attention. I
> assumed you were changing this for all PPC targets; Linux uses the same
> mapping others do.
Ok, we are in violent agreement then. I'll fix it in the patch.
Elena
>
> --
> Daniel Jacobowitz Carnegie Mellon University
> MontaVista Software Debian GNU/Linux Developer
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
2001-12-05 14:25 ` Elena Zannoni
2001-12-05 14:30 ` Daniel Jacobowitz
@ 2001-12-05 14:53 ` Kevin Buettner
2001-12-05 14:57 ` Elena Zannoni
1 sibling, 1 reply; 16+ messages in thread
From: Kevin Buettner @ 2001-12-05 14:53 UTC (permalink / raw)
To: Elena Zannoni, Kevin Buettner; +Cc: gdb-patches, vmakarov
On Dec 5, 5:31pm, Elena Zannoni wrote:
> > > + 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.)
>
> Hmmm, should these regnums be part of the gdbarch_tdep structure?
> That's how I did it for the SH. (Defined to -1 if not applicable) It
> seems to me that not all the variants have register (say, for
> instance) 67 defined to be the LR register or even exist. This way we
> could also do error checking in this routine.
I had occassion to look at SH recently and saw how you did things. I
think the mechanism you propose would be appropriate for PPC too.
Kevin
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM
2001-12-05 14:53 ` Kevin Buettner
@ 2001-12-05 14:57 ` Elena Zannoni
0 siblings, 0 replies; 16+ messages in thread
From: Elena Zannoni @ 2001-12-05 14:57 UTC (permalink / raw)
To: Kevin Buettner; +Cc: Elena Zannoni, gdb-patches, vmakarov
Kevin Buettner writes:
> On Dec 5, 5:31pm, Elena Zannoni wrote:
>
> > > > + 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.)
> >
> > Hmmm, should these regnums be part of the gdbarch_tdep structure?
> > That's how I did it for the SH. (Defined to -1 if not applicable) It
> > seems to me that not all the variants have register (say, for
> > instance) 67 defined to be the LR register or even exist. This way we
> > could also do error checking in this routine.
>
> I had occassion to look at SH recently and saw how you did things. I
> think the mechanism you propose would be appropriate for PPC too.
>
> Kevin
Okey. I'll do that then.
Thanks!
Elena
^ permalink raw reply [flat|nested] 16+ messages in thread