+2000-12-20 Michael Snyder <msnyder@mvstp600e.cygnus.com>
+
+ * arch-utils.c (default_frame_address): New function. Default
+ implementation of frame_args_address and frame_locals_address.
+ * arch-utils.h (default_frame_address): Export.
+ * d10v-tdep.c (d10v_gdbarch_init): Use default_frame_address.
+ (d10v_frame_args_address, d10v_frame_locals_address): Delete.
+ * sh-tdep.c (sh_gdbarch_init): Use default_frame_address.
+ (sh_frame_args_address, sh_frame_locals_address): Delete.
+ * sparc-tdep.c (sparc_gdbarch_init): Use default_frame_address.
+ (sparc_frame_address): Delete.
+
2000-12-27 Mark Kettenis <kettenis@gnu.org>
Fix debugging programs statically linked against the thread library.
return reg;
}
+/* For use by frame_args_address and frame_locals_address. */
+CORE_ADDR
+default_frame_address (struct frame_info *fi)
+{
+ return fi->frame;
+}
+
/* Functions to manipulate the endianness of the target. */
#ifdef TARGET_BYTE_ORDER_SELECTABLE
extern int no_op_reg_to_regnum (int reg);
+/* Default frame_args_address and frame_locals_address. */
+
+extern CORE_ADDR default_frame_address (struct frame_info *);
+
+
#endif
return ((frame)->extra_info->return_pc);
}
-CORE_ADDR
-d10v_frame_args_address (struct frame_info *fi)
-{
- return (fi)->frame;
-}
-
-CORE_ADDR
-d10v_frame_locals_address (struct frame_info *fi)
-{
- return (fi)->frame;
-}
-
/* Immediately after a function call, return the saved pc. We can't
use frame->return_pc beause that is determined by reading R13 off
the stack and that may not be written yet. */
set_gdbarch_frame_chain (gdbarch, d10v_frame_chain);
set_gdbarch_frame_chain_valid (gdbarch, d10v_frame_chain_valid);
set_gdbarch_frame_saved_pc (gdbarch, d10v_frame_saved_pc);
- set_gdbarch_frame_args_address (gdbarch, d10v_frame_args_address);
- set_gdbarch_frame_locals_address (gdbarch, d10v_frame_locals_address);
+ set_gdbarch_frame_args_address (gdbarch, default_frame_address);
+ set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
set_gdbarch_saved_pc_after_call (gdbarch, d10v_saved_pc_after_call);
set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
set_gdbarch_stack_align (gdbarch, d10v_stack_align);
return ((frame)->extra_info->return_pc);
}
-static CORE_ADDR
-sh_frame_args_address (struct frame_info *fi)
-{
- return (fi)->frame;
-}
-
-static CORE_ADDR
-sh_frame_locals_address (struct frame_info *fi)
-{
- return (fi)->frame;
-}
-
/* Discard from the stack the innermost frame,
restoring all saved registers. */
static void
set_gdbarch_frame_chain (gdbarch, sh_frame_chain);
set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
set_gdbarch_frame_saved_pc (gdbarch, sh_frame_saved_pc);
- set_gdbarch_frame_args_address (gdbarch, sh_frame_args_address);
- set_gdbarch_frame_locals_address (gdbarch, sh_frame_locals_address);
+ set_gdbarch_frame_args_address (gdbarch, default_frame_address);
+ set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
set_gdbarch_saved_pc_after_call (gdbarch, sh_saved_pc_after_call);
set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
{ /* no-op */
}
-/* The frame address: stored in the 'frame' field of the frame_info. */
-
-static CORE_ADDR
-sparc_frame_address (struct frame_info *fi)
-{
- return fi->frame;
-}
-
/* gdbarch fix call dummy:
All this function does is rearrange the arguments before calling
sparc_fix_call_dummy (which does the real work). */
set_gdbarch_float_bit (gdbarch, 4 * TARGET_CHAR_BIT);
set_gdbarch_fp_regnum (gdbarch, SPARC_FP_REGNUM);
set_gdbarch_fp0_regnum (gdbarch, SPARC_FP0_REGNUM);
- set_gdbarch_frame_args_address (gdbarch, sparc_frame_address);
+ set_gdbarch_frame_args_address (gdbarch, default_frame_address);
set_gdbarch_frame_chain (gdbarch, sparc_frame_chain);
set_gdbarch_frame_init_saved_regs (gdbarch, sparc_frame_init_saved_regs);
- set_gdbarch_frame_locals_address (gdbarch, sparc_frame_address);
+ set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
set_gdbarch_frame_saved_pc (gdbarch, sparc_frame_saved_pc);
set_gdbarch_frameless_function_invocation (gdbarch,