From: Michael Snyder <msnyder@redhat.com>
To: Michael Snyder <msnyder@cygnus.com>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [PATCH] Further mips gdbarch-ification
Date: Mon, 19 Aug 2002 19:42:00 -0000 [thread overview]
Message-ID: <3D61A8AA.27EBC932@redhat.com> (raw)
In-Reply-To: <200208200221.g7K2L2t23071@reddwarf.sfbay.redhat.com>
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 <msnyder@redhat.com>
>
> * 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 ----
next prev parent reply other threads:[~2002-08-20 2:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-19 19:38 Michael Snyder
2002-08-19 19:42 ` Michael Snyder [this message]
2002-08-20 12:41 ` Michael Snyder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3D61A8AA.27EBC932@redhat.com \
--to=msnyder@redhat.com \
--cc=gdb-patches@sources.redhat.com \
--cc=msnyder@cygnus.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox