From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9532 invoked by alias); 12 Apr 2002 19:54:53 -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 9452 invoked from network); 12 Apr 2002 19:54:48 -0000 Received: from unknown (HELO cygnus.com) (205.180.83.203) by sources.redhat.com with SMTP; 12 Apr 2002 19:54:48 -0000 Received: from romulus.sfbay.redhat.com (remus.sfbay.redhat.com [172.16.27.252]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id MAA26451 for ; Fri, 12 Apr 2002 12:54:46 -0700 (PDT) Received: (from kev@localhost) by romulus.sfbay.redhat.com (8.11.6/8.11.6) id g3CJsWw08249 for gdb-patches@sources.redhat.com; Fri, 12 Apr 2002 12:54:32 -0700 Date: Fri, 12 Apr 2002 12:54:00 -0000 From: Kevin Buettner Message-Id: <1020412195432.ZM8248@localhost.localdomain> To: gdb-patches@sources.redhat.com Subject: [PATCH] Power/PowerPC targets: Eliminate DEFAULT_LR_SAVE. MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-04/txt/msg00468.txt.bz2 I've just committed the patch below. It eliminates the DEFAULT_LR_SAVE macro. * ppc-tdep.h (struct gdbarch_tdep): Add new member ``lr_frame_offset''. * rs6000-tdep.c (rs6000_frame_saved_pc): Use ``lr_frame_offset'' from tdep struct instead of DEFAULT_LR_SAVE. (rs6000_gdbarch_init): Initialize ``lr_frame_offset''. * config/powerpc/tm-ppc-eabi.h (DEFAULT_LR_SAVE): Delete. * config/rs6000/tm-rs6000.h (DEFAULT_LR_SAVE): Delete. Index: ppc-tdep.h =================================================================== RCS file: /cvs/src/src/gdb/ppc-tdep.h,v retrieving revision 1.8 diff -u -p -r1.8 ppc-tdep.h --- ppc-tdep.h 11 Apr 2002 19:08:56 -0000 1.8 +++ ppc-tdep.h 12 Apr 2002 19:36:03 -0000 @@ -67,6 +67,8 @@ struct gdbarch_tdep int ppc_mq_regnum; /* Multiply/Divide extension register */ int ppc_vr0_regnum; /* First AltiVec register */ int ppc_vrsave_regnum; /* Last AltiVec register */ + int lr_frame_offset; /* Offset to ABI specific location where + link register is saved. */ }; #endif Index: rs6000-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/rs6000-tdep.c,v retrieving revision 1.53 diff -u -p -r1.53 rs6000-tdep.c --- rs6000-tdep.c 12 Apr 2002 17:12:24 -0000 1.53 +++ rs6000-tdep.c 12 Apr 2002 19:36:08 -0000 @@ -1319,7 +1319,8 @@ rs6000_frame_saved_pc (struct frame_info { CORE_ADDR func_start; struct rs6000_framedata fdata; - int wordsize = TDEP->wordsize; + struct gdbarch_tdep *tdep = TDEP; + int wordsize = tdep->wordsize; if (fi->signal_handler_caller) return read_memory_addr (fi->frame + SIG_FRAME_PC_OFFSET, wordsize); @@ -1342,7 +1343,7 @@ rs6000_frame_saved_pc (struct frame_info return read_memory_addr (fi->next->frame + SIG_FRAME_LR_OFFSET, wordsize); else - return read_memory_addr (FRAME_CHAIN (fi) + DEFAULT_LR_SAVE, + return read_memory_addr (FRAME_CHAIN (fi) + tdep->lr_frame_offset, wordsize); } @@ -2585,7 +2586,15 @@ rs6000_gdbarch_init (struct gdbarch_info break; } - /* Calculate byte offsets in raw register array. */ + /* Set lr_frame_offset. */ + if (wordsize == 8) + tdep->lr_frame_offset = 16; + else if (sysv_abi) + tdep->lr_frame_offset = 4; + else + tdep->lr_frame_offset = 8; + + /* Calculate byte offsets in raw register array. */ tdep->regoff = xmalloc (v->nregs * sizeof (int)); for (i = off = 0; i < v->nregs; i++) { Index: config/powerpc/tm-ppc-eabi.h =================================================================== RCS file: /cvs/src/src/gdb/config/powerpc/tm-ppc-eabi.h,v retrieving revision 1.9 diff -u -p -r1.9 tm-ppc-eabi.h --- config/powerpc/tm-ppc-eabi.h 9 Apr 2002 00:53:28 -0000 1.9 +++ config/powerpc/tm-ppc-eabi.h 12 Apr 2002 19:36:09 -0000 @@ -28,9 +28,6 @@ #undef SOFTWARE_SINGLE_STEP_P #define SOFTWARE_SINGLE_STEP_P() 0 -#undef DEFAULT_LR_SAVE -#define DEFAULT_LR_SAVE 4 /* eabi saves LR at 4 off of SP */ - #undef PROCESS_LINENUMBER_HOOK #undef TEXT_SEGMENT_BASE Index: config/rs6000/tm-rs6000.h =================================================================== RCS file: /cvs/src/src/gdb/config/rs6000/tm-rs6000.h,v retrieving revision 1.15 diff -u -p -r1.15 tm-rs6000.h --- config/rs6000/tm-rs6000.h 16 Dec 2001 00:59:58 -0000 1.15 +++ config/rs6000/tm-rs6000.h 12 Apr 2002 19:36:09 -0000 @@ -93,9 +93,6 @@ extern void aix_process_linenos (void); prev->next ? FRAME_SAVED_PC (prev->next) : read_pc ()); #define INIT_FRAME_PC(fromleaf, prev) /* nothing */ -/* Default offset from SP where the LR is stored */ -#define DEFAULT_LR_SAVE 8 - /* Flag for machine-specific stuff in shared files. FIXME */ #define IBM6000_TARGET