[PATCH/RFA] further mips gdbarch-ification
Michael Snyder
msnyder@cygnus.com
Mon Aug 19 19:42:00 GMT 2002
I almost checked this in prematurely, since it is (by itself)
an obvious fix. Fortunately I realized just in time that this
patch is dependent on my previous one, which gdbarch-fies
store_struct_return. gdbarch will give an internal error if
this one is in and that one is not.
Ergo, I'll hold off checking this one in until that one is approved.
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 ----
More information about the Gdb-patches
mailing list