This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Multi-arch i386 frame functions


Here's another batch.

Checked in.


Index: ChangeLog
from  Mark Kettenis  <kettenis@gnu.org>
	* 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.

Index: i386-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-tdep.c,v
retrieving revision 1.60
diff -u -p -r1.60 i386-tdep.c
--- i386-tdep.c 15 Jun 2002 17:53:24 -0000 1.60
+++ i386-tdep.c 15 Jun 2002 19:53:42 -0000
@@ -1401,15 +1401,23 @@ i386_gdbarch_init (struct gdbarch_info i
 
   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.  */
Index: config/i386/tm-i386.h
===================================================================
RCS file: /cvs/src/src/gdb/config/i386/tm-i386.h,v
retrieving revision 1.36
diff -u -p -r1.36 tm-i386.h
--- config/i386/tm-i386.h 15 Jun 2002 18:09:31 -0000 1.36
+++ config/i386/tm-i386.h 15 Jun 2002 19:53:42 -0000
@@ -127,39 +127,6 @@ extern void i386_store_return_value (str
 #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.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]