From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4682 invoked by alias); 20 Aug 2002 02:42:43 -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 4674 invoked from network); 20 Aug 2002 02:42:43 -0000 Received: from unknown (HELO cygnus.com) (205.180.83.203) by sources.redhat.com with SMTP; 20 Aug 2002 02:42:43 -0000 Received: from redhat.com (reddwarf.sfbay.redhat.com [172.16.24.50]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id TAA17053; Mon, 19 Aug 2002 19:37:32 -0700 (PDT) Message-ID: <3D61A8AA.27EBC932@redhat.com> Date: Mon, 19 Aug 2002 19:42:00 -0000 From: Michael Snyder Organization: Red Hat, Inc. X-Accept-Language: en MIME-Version: 1.0 To: Michael Snyder CC: gdb-patches@sources.redhat.com Subject: Re: [PATCH] Further mips gdbarch-ification References: <200208200221.g7K2L2t23071@reddwarf.sfbay.redhat.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2002-08/txt/msg00580.txt.bz2 Note - not checked in, waiting for previous patch (STORE_STRUCT_RETURN) to be approved. Michael Snyder wrote: > > Arch-ify FRAME_CHAIN, FRAME_CHAIN_VALID, FRAMELESS_FUNCTION_INVOCATION, > FRAME_SAVED_PC, FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS, > FRAME_NUM_ARGS, and FRAME_ARGS_SKIP. > > This patch is predicated on the previous patch, since gdbarch > will give an internal error if these values are gdbarch-ified, > but store_struct_return is not. > > 2002-08-19 Michael Snyder > > * mips-tdep.c (mips_frame_num_args): New function. > (mips_gdbarch_init): Set frame_chain, frameless_function_invocation, > frame_saved_pc, frame_args_address, frame_locals_address, > frame_num_args, and frame_args_skip. > * config/mips/tm-mips.h (FRAME_CHAIN, FRAMELESS_FUNCTION_INVOCATION, > FRAME_SAVED_PC, FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS, > FRAME_NUM_ARGS, FRAME_ARGS_SKIP): Delete. > * config/mips/tm-mipsv4.h (FRAME_CHAIN_VALID): Delete. > > Index: mips-tdep.c > =================================================================== > RCS file: /cvs/src/src/gdb/mips-tdep.c,v > retrieving revision 1.108 > diff -p -r1.108 mips-tdep.c > *** mips-tdep.c 19 Aug 2002 23:22:17 -0000 1.108 > --- mips-tdep.c 20 Aug 2002 02:29:26 -0000 > *************** mips_do_registers_info (int regnum, int > *** 4140,4154 **** > } > } > > - /* Return number of args passed to a frame. described by FIP. > - Can return -1, meaning no way to tell. */ > - > - int > - mips_frame_num_args (struct frame_info *frame) > - { > - return -1; > - } > - > /* Is this a branch with a delay slot? */ > > static int is_delayed (unsigned long); > --- 4140,4145 ---- > *************** mips_gdbarch_init (struct gdbarch_info i > *** 5809,5815 **** > --- 5800,5815 ---- > > set_gdbarch_coerce_float_to_double (gdbarch, mips_coerce_float_to_double); > > + set_gdbarch_frame_chain (gdbarch, mips_frame_chain); > set_gdbarch_frame_chain_valid (gdbarch, func_frame_chain_valid); > + set_gdbarch_frameless_function_invocation (gdbarch, > + generic_frameless_function_invocation_not); > + set_gdbarch_frame_saved_pc (gdbarch, mips_frame_saved_pc); > + set_gdbarch_frame_args_address (gdbarch, default_frame_address); > + set_gdbarch_frame_locals_address (gdbarch, default_frame_address); > + set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown); > + set_gdbarch_frame_args_skip (gdbarch, 0); > + > set_gdbarch_get_saved_register (gdbarch, mips_get_saved_register); > > set_gdbarch_inner_than (gdbarch, core_addr_lessthan); > Index: config/mips/tm-mips.h > =================================================================== > RCS file: /cvs/src/src/gdb/config/mips/tm-mips.h,v > retrieving revision 1.36 > diff -p -r1.36 tm-mips.h > *** config/mips/tm-mips.h 18 Aug 2002 18:59:53 -0000 1.36 > --- config/mips/tm-mips.h 20 Aug 2002 02:29:26 -0000 > *************** extern void mips_register_convert_from_t > *** 189,233 **** > REGISTER_RAW_SIZE (V0_REGNUM))) > > > - /* Describe the pointer in each stack frame to the previous stack frame > - (its caller). */ > - > - /* FRAME_CHAIN takes a frame's nominal address > - and produces the frame's chain-pointer. */ > - > - #define FRAME_CHAIN(thisframe) (CORE_ADDR) mips_frame_chain (thisframe) > - extern CORE_ADDR mips_frame_chain (struct frame_info *); > - > - /* Define other aspects of the stack frame. */ > - > - > - /* A macro that tells us whether the function invocation represented > - by FI does not have a frame on the stack associated with it. If it > - does not, FRAMELESS is set to 1, else 0. */ > - /* We handle this differently for mips, and maybe we should not */ > - > - #define FRAMELESS_FUNCTION_INVOCATION(FI) (0) > - > - /* Saved Pc. */ > - > - #define FRAME_SAVED_PC(FRAME) (mips_frame_saved_pc(FRAME)) > - extern CORE_ADDR mips_frame_saved_pc (struct frame_info *); > - > - #define FRAME_ARGS_ADDRESS(fi) (fi)->frame > - > - #define FRAME_LOCALS_ADDRESS(fi) (fi)->frame > - > - /* Return number of args passed to a frame. > - Can return -1, meaning no way to tell. */ > - > - #define FRAME_NUM_ARGS(fi) (mips_frame_num_args(fi)) > - extern int mips_frame_num_args (struct frame_info *); > - > - /* Return number of bytes at start of arglist that are not really args. */ > - > - #define FRAME_ARGS_SKIP 0 > - > - > > /* Things needed for making the inferior call functions. */ > > --- 189,194 ---- > Index: config/mips/tm-mipsv4.h > =================================================================== > RCS file: /cvs/src/src/gdb/config/mips/tm-mipsv4.h,v > retrieving revision 1.4 > diff -p -r1.4 tm-mipsv4.h > *** config/mips/tm-mipsv4.h 5 Jun 2002 19:18:25 -0000 1.4 > --- config/mips/tm-mipsv4.h 20 Aug 2002 02:29:26 -0000 > *************** > *** 33,40 **** > #define SIGFRAME_PC_OFF (SIGFRAME_BASE + 40 + 35 * 4) > #define SIGFRAME_FPREGSAVE_OFF (SIGFRAME_BASE + 40 + 36 * 4) > > - /* Use the alternate method of determining valid frame chains. */ > - #define FRAME_CHAIN_VALID(fp,fi) func_frame_chain_valid (fp, fi) > - > /* Convert a DWARF register number to a gdb REGNUM. */ > #define DWARF_REG_TO_REGNUM(num) ((num) < 32 ? (num) : (num)+FP0_REGNUM-32) > --- 33,37 ----