From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18756 invoked by alias); 5 Dec 2001 22:25:14 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 18732 invoked from network); 5 Dec 2001 22:25:13 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by sources.redhat.com with SMTP; 5 Dec 2001 22:25:13 -0000 Received: from rtl.cygnus.com (cse.cygnus.com [205.180.230.236]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id OAA24167; Wed, 5 Dec 2001 14:25:10 -0800 (PST) Received: (from ezannoni@localhost) by rtl.cygnus.com (8.11.2/8.11.0) id fB5MVKj06287; Wed, 5 Dec 2001 17:31:20 -0500 X-Authentication-Warning: krustylu.cygnus.com: ezannoni set sender to ezannoni@cygnus.com using -f From: Elena Zannoni MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15374.41016.151518.113014@krustylu.cygnus.com> Date: Wed, 05 Dec 2001 14:25:00 -0000 To: Kevin Buettner Cc: Elena Zannoni , gdb-patches@sources.redhat.com, vmakarov@redhat.com Subject: Re: [RFA] config/rs6000/tm-rs6000.h STAB_REG_TO_REGNUM In-Reply-To: <1011205215641.ZM5797@ocotillo.lan> References: <15367.50385.770078.559327@krustylu.cygnus.com> <3C07CD1A.4010403@cygnus.com> <15367.63139.561172.481628@krustylu.cygnus.com> <1011205215641.ZM5797@ocotillo.lan> X-Mailer: VM 6.97 under Emacs 20.7.1 X-SW-Source: 2001-12/txt/msg00154.txt.bz2 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