From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13858 invoked by alias); 30 Nov 2001 21:08:02 -0000 Mailing-List: contact gdb-patches-help@sourceware.cygnus.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 13783 invoked from network); 30 Nov 2001 21:07:58 -0000 Received: from unknown (HELO cygnus.com) (205.180.230.5) by hostedprojects.ges.redhat.com with SMTP; 30 Nov 2001 21:07:58 -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 NAA15846; Fri, 30 Nov 2001 13:07:55 -0800 (PST) Received: (from ezannoni@localhost) by rtl.cygnus.com (8.11.2/8.11.0) id fAULEBv01652; Fri, 30 Nov 2001 16:14:11 -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: <15367.63139.561172.481628@krustylu.cygnus.com> Date: Sat, 24 Nov 2001 06:47:00 -0000 To: Andrew Cagney 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: <3C07CD1A.4010403@cygnus.com> References: <15367.50385.770078.559327@krustylu.cygnus.com> <3C07CD1A.4010403@cygnus.com> X-Mailer: VM 6.97 under Emacs 20.7.1 X-SW-Source: 2001-11/txt/msg00416.txt.bz2 Message-ID: <20011124064700.3K6I8mxF-Yo6k5NbxiXJJOzA5IigoduTljZx25HKP8A@z> 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 Based on a patch from Vladimir Makarov : * 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) \