From: Mark Kettenis Date: Sat, 15 Jun 2002 19:59:08 +0000 (+0000) Subject: * config/i386/tm-i386.h (FRAMELESS_FUNCTION_INVOCATION, X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=42fdc8df2fb4328db6e2e6682b1327b6cf34beae;p=binutils-gdb.git * config/i386/tm-i386.h (FRAMELESS_FUNCTION_INVOCATION, FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS, FRAME_NUM_ARGS, FRAME_ARGS_SKIP, FRAME_INIT_SAVED_REGS): Remove defines. (i386_frameless_function_invocation, i386_frame_num_args, i386_frame_init_saved_regs): Remove prototypes. * i386-tdep.c (i386_gdbarch_init): Adjust for removal of the macros mentioned above. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 858f4242a76..9cde79ccf0c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2002-06-15 Mark Kettenis + + * config/i386/tm-i386.h (FRAMELESS_FUNCTION_INVOCATION, + FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS, FRAME_NUM_ARGS, + FRAME_ARGS_SKIP, FRAME_INIT_SAVED_REGS): Remove defines. + (i386_frameless_function_invocation, i386_frame_num_args, + i386_frame_init_saved_regs): Remove prototypes. + * i386-tdep.c (i386_gdbarch_init): Adjust for removal of the + macros mentioned above. + 2002-06-15 Andrew Cagney * cli/cli-decode.c (set_cmd_cfunc): Update. diff --git a/gdb/config/i386/tm-i386.h b/gdb/config/i386/tm-i386.h index 982e7c83eeb..6ac6bc7c19e 100644 --- a/gdb/config/i386/tm-i386.h +++ b/gdb/config/i386/tm-i386.h @@ -127,39 +127,6 @@ extern void i386_store_return_value (struct type *type, char *valbuf); #define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(regbuf) \ i386_extract_struct_value_address ((regbuf)) extern CORE_ADDR i386_extract_struct_value_address (char *regbuf); - -/* Determine whether the function invocation represented by FRAME does - not have a from on the stack associated with it. If it does not, - return non-zero, otherwise return zero. */ - -#define FRAMELESS_FUNCTION_INVOCATION(frame) \ - i386_frameless_function_invocation (frame) -extern int i386_frameless_function_invocation (struct frame_info *frame); - -#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, which is typical now that the C compiler delays popping them. */ - -#define FRAME_NUM_ARGS(fi) (i386_frame_num_args(fi)) - -extern int i386_frame_num_args (struct frame_info *); - -/* Return number of bytes at start of arglist that are not really args. */ - -#define FRAME_ARGS_SKIP 8 - -/* Put here the code to store, into a struct frame_saved_regs, - the addresses of the saved registers of frame described by FRAME_INFO. - This includes special registers such as pc and fp saved in special - ways in the stack frame. sp is even more special: - the address we return for it IS the sp for the next frame. */ - -extern void i386_frame_init_saved_regs (struct frame_info *); -#define FRAME_INIT_SAVED_REGS(FI) i386_frame_init_saved_regs (FI) - /* Things needed for making the inferior call functions. */ diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index c44862eb555..250d1c26444 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -1401,15 +1401,23 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_use_struct_convention (gdbarch, i386_use_struct_convention); + set_gdbarch_frame_init_saved_regs (gdbarch, i386_frame_init_saved_regs); + /* The following redefines make backtracing through sigtramp work. They manufacture a fake sigtramp frame and obtain the saved pc in sigtramp from the sigcontext structure which is pushed by the kernel on the user stack, along with a pointer to it. */ + set_gdbarch_frame_args_skip (gdbarch, 8); + set_gdbarch_frameless_function_invocation (gdbarch, + i386_frameless_function_invocation); set_gdbarch_frame_chain (gdbarch, i386_frame_chain); set_gdbarch_frame_chain_valid (gdbarch, file_frame_chain_valid); set_gdbarch_frame_saved_pc (gdbarch, i386_frame_saved_pc); + 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, i386_saved_pc_after_call); + set_gdbarch_frame_num_args (gdbarch, i386_frame_num_args); set_gdbarch_pc_in_sigtramp (gdbarch, i386_pc_in_sigtramp); /* Hook in ABI-specific overrides, if they have been registered. */