This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[patch/rfc] Default FRAME_ARGS_ADDRESS et.al. to default_frame_address()
- From: Andrew Cagney <ac131313 at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Tue, 19 Nov 2002 15:48:25 -0500
- Subject: [patch/rfc] Default FRAME_ARGS_ADDRESS et.al. to default_frame_address()
Hello,
This is largely a cleanup.
Instead of requiring all architectures to explicitly set this, this
patch defaults FRAME_ARGS_ADDRESS() and FRAME_LOCALS_ADDRESS() to
default_frame_address() (which most were setting it to any way).
The only slightly non clean-up bit is that I also applied this to the
cris target. Turns out that it was overriding those methods with a
local equivalent of default_frame_address() so I zapped the lot.
I'll commit in a few days,
Andrew
2002-11-19 Andrew Cagney <ac131313@redhat.com>
* gdbarch.sh (FRAME_ARGS_ADDRESS, FRAME_LOCALS_ADDRESS): Default
to default_frame_address.
* gdbarch.h, gdbarch.c: Re-generate.
* d10v-tdep.c (d10v_gdbarch_init): Do not set frame_args_address
or frame_locals_address to default_frame_address.
* m68k-tdep.c (m68k_gdbarch_init): Update.
* i386-tdep.c (i386_gdbarch_init): Update.
* frv-tdep.c (frv_gdbarch_init): Update.
* sh-tdep.c (sh_gdbarch_init): Update.
* v850-tdep.c (v850_gdbarch_init): Update.
* sparc-tdep.c (sparc_gdbarch_init): Update.
* mips-tdep.c (mips_gdbarch_init): Update.
* mn10300-tdep.c (mn10300_gdbarch_init): Update.
* x86-64-tdep.c (x86_64_gdbarch_init): Update.
* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
* cris-tdep.c (cris_frame_args_address): Delete function.
(cris_frame_locals_address): Delete function.
(cris_gdbarch_init): Do not set frame_args_address or
frame_locals_address.
Index: cris-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/cris-tdep.c,v
retrieving revision 1.27
diff -u -r1.27 cris-tdep.c
--- cris-tdep.c 18 Nov 2002 22:19:26 -0000 1.27
+++ cris-tdep.c 19 Nov 2002 20:39:24 -0000
@@ -1276,24 +1276,6 @@
return fi->extra_info->return_pc;
}
-/* Return the address of the argument block for the frame described
- by struct frame_info. */
-
-CORE_ADDR
-cris_frame_args_address (struct frame_info *fi)
-{
- return FRAME_FP (fi);
-}
-
-/* Return the address of the locals block for the frame
- described by struct frame_info. */
-
-CORE_ADDR
-cris_frame_locals_address (struct frame_info *fi)
-{
- return FRAME_FP (fi);
-}
-
/* Setup the function arguments for calling a function in the inferior. */
CORE_ADDR
@@ -4331,8 +4313,6 @@
set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
set_gdbarch_frame_saved_pc (gdbarch, cris_frame_saved_pc);
- set_gdbarch_frame_args_address (gdbarch, cris_frame_args_address);
- set_gdbarch_frame_locals_address (gdbarch, cris_frame_locals_address);
set_gdbarch_saved_pc_after_call (gdbarch, cris_saved_pc_after_call);
set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
Index: d10v-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/d10v-tdep.c,v
retrieving revision 1.55
diff -u -r1.55 d10v-tdep.c
--- d10v-tdep.c 16 Nov 2002 01:00:06 -0000 1.55
+++ d10v-tdep.c 19 Nov 2002 20:39:24 -0000
@@ -1634,8 +1634,7 @@
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, 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);
Index: frv-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/frv-tdep.c,v
retrieving revision 1.6
diff -u -r1.6 frv-tdep.c
--- frv-tdep.c 16 Nov 2002 01:00:06 -0000 1.6
+++ frv-tdep.c 19 Nov 2002 20:39:25 -0000
@@ -1081,8 +1081,6 @@
set_gdbarch_frame_chain (gdbarch, frv_frame_chain);
set_gdbarch_frame_chain_valid (gdbarch, func_frame_chain_valid);
set_gdbarch_frame_saved_pc (gdbarch, frv_frame_saved_pc);
- set_gdbarch_frame_args_address (gdbarch, default_frame_address);
- set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
set_gdbarch_frame_init_saved_regs (gdbarch, frv_frame_init_saved_regs);
Index: gdbarch.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.c,v
retrieving revision 1.159
diff -u -r1.159 gdbarch.c
--- gdbarch.c 5 Nov 2002 21:44:05 -0000 1.159
+++ gdbarch.c 19 Nov 2002 20:39:25 -0000
@@ -556,6 +556,8 @@
current_gdbarch->frame_args_skip = -1;
current_gdbarch->frameless_function_invocation = generic_frameless_function_invocation_not;
current_gdbarch->frame_chain_valid = generic_func_frame_chain_valid;
+ current_gdbarch->frame_args_address = default_frame_address;
+ current_gdbarch->frame_locals_address = default_frame_address;
current_gdbarch->extra_stack_alignment_needed = 1;
current_gdbarch->convert_from_func_ptr_addr = core_addr_identity;
current_gdbarch->addr_bits_remove = core_addr_identity;
@@ -777,12 +779,8 @@
if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
&& (gdbarch->frame_saved_pc == 0))
fprintf_unfiltered (log, "\n\tframe_saved_pc");
- if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
- && (gdbarch->frame_args_address == 0))
- fprintf_unfiltered (log, "\n\tframe_args_address");
- if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
- && (gdbarch->frame_locals_address == 0))
- fprintf_unfiltered (log, "\n\tframe_locals_address");
+ /* Skip verify of frame_args_address, invalid_p == 0 */
+ /* Skip verify of frame_locals_address, invalid_p == 0 */
if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL)
&& (gdbarch->saved_pc_after_call == 0))
fprintf_unfiltered (log, "\n\tsaved_pc_after_call");
Index: gdbarch.h
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.h,v
retrieving revision 1.125
diff -u -r1.125 gdbarch.h
--- gdbarch.h 5 Nov 2002 21:44:05 -0000 1.125
+++ gdbarch.h 19 Nov 2002 20:39:25 -0000
@@ -1950,6 +1950,11 @@
#endif
#endif
+/* Default (function) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (FRAME_ARGS_ADDRESS)
+#define FRAME_ARGS_ADDRESS(fi) (default_frame_address (fi))
+#endif
+
typedef CORE_ADDR (gdbarch_frame_args_address_ftype) (struct frame_info *fi);
extern CORE_ADDR gdbarch_frame_args_address (struct gdbarch *gdbarch, struct frame_info *fi);
extern void set_gdbarch_frame_args_address (struct gdbarch *gdbarch, gdbarch_frame_args_address_ftype *frame_args_address);
@@ -1960,6 +1965,11 @@
#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (FRAME_ARGS_ADDRESS)
#define FRAME_ARGS_ADDRESS(fi) (gdbarch_frame_args_address (current_gdbarch, fi))
#endif
+#endif
+
+/* Default (function) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (FRAME_LOCALS_ADDRESS)
+#define FRAME_LOCALS_ADDRESS(fi) (default_frame_address (fi))
#endif
typedef CORE_ADDR (gdbarch_frame_locals_address_ftype) (struct frame_info *fi);
Index: gdbarch.sh
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.sh,v
retrieving revision 1.170
diff -u -r1.170 gdbarch.sh
--- gdbarch.sh 5 Nov 2002 21:44:05 -0000 1.170
+++ gdbarch.sh 19 Nov 2002 20:39:26 -0000
@@ -566,8 +566,8 @@
# functions.
f:2:FRAME_CHAIN_VALID:int:frame_chain_valid:CORE_ADDR chain, struct frame_info *thisframe:chain, thisframe:::generic_func_frame_chain_valid::0
f:2:FRAME_SAVED_PC:CORE_ADDR:frame_saved_pc:struct frame_info *fi:fi::0:0
-f:2:FRAME_ARGS_ADDRESS:CORE_ADDR:frame_args_address:struct frame_info *fi:fi::0:0
-f:2:FRAME_LOCALS_ADDRESS:CORE_ADDR:frame_locals_address:struct frame_info *fi:fi::0:0
+f:2:FRAME_ARGS_ADDRESS:CORE_ADDR:frame_args_address:struct frame_info *fi:fi::0:default_frame_address::0
+f:2:FRAME_LOCALS_ADDRESS:CORE_ADDR:frame_locals_address:struct frame_info *fi:fi::0:default_frame_address::0
f:2:SAVED_PC_AFTER_CALL:CORE_ADDR:saved_pc_after_call:struct frame_info *frame:frame::0:0
f:2:FRAME_NUM_ARGS:int:frame_num_args:struct frame_info *frame:frame::0:0
#
Index: i386-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/i386-tdep.c,v
retrieving revision 1.96
diff -u -r1.96 i386-tdep.c
--- i386-tdep.c 18 Nov 2002 22:19:27 -0000 1.96
+++ i386-tdep.c 19 Nov 2002 20:39:26 -0000
@@ -1636,8 +1636,6 @@
set_gdbarch_frame_chain (gdbarch, i386_frame_chain);
set_gdbarch_frame_chain_valid (gdbarch, generic_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);
Index: m68k-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/m68k-tdep.c,v
retrieving revision 1.27
diff -u -r1.27 m68k-tdep.c
--- m68k-tdep.c 18 Nov 2002 22:19:28 -0000 1.27
+++ m68k-tdep.c 19 Nov 2002 20:39:26 -0000
@@ -1027,8 +1027,6 @@
/* OK to default this value to 'unknown'. */
set_gdbarch_frame_num_args (gdbarch, frame_num_args_unknown);
set_gdbarch_frame_args_skip (gdbarch, 8);
- set_gdbarch_frame_args_address (gdbarch, default_frame_address);
- set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
set_gdbarch_register_raw_size (gdbarch, m68k_register_raw_size);
set_gdbarch_register_virtual_size (gdbarch, m68k_register_virtual_size);
Index: mips-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mips-tdep.c,v
retrieving revision 1.134
diff -u -r1.134 mips-tdep.c
--- mips-tdep.c 18 Nov 2002 22:19:29 -0000 1.134
+++ mips-tdep.c 19 Nov 2002 20:39:27 -0000
@@ -6035,8 +6035,6 @@
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);
Index: mn10300-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/mn10300-tdep.c,v
retrieving revision 1.34
diff -u -r1.34 mn10300-tdep.c
--- mn10300-tdep.c 16 Nov 2002 01:00:06 -0000 1.34
+++ mn10300-tdep.c 19 Nov 2002 20:39:27 -0000
@@ -1179,8 +1179,6 @@
set_gdbarch_pop_frame (gdbarch, mn10300_pop_frame);
set_gdbarch_skip_prologue (gdbarch, mn10300_skip_prologue);
set_gdbarch_frame_args_skip (gdbarch, 0);
- 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);
/* That's right, we're using the stack pointer as our frame pointer. */
set_gdbarch_read_fp (gdbarch, generic_target_read_sp);
Index: sh-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sh-tdep.c,v
retrieving revision 1.76
diff -u -r1.76 sh-tdep.c
--- sh-tdep.c 14 Nov 2002 00:25:03 -0000 1.76
+++ sh-tdep.c 19 Nov 2002 20:39:28 -0000
@@ -4589,8 +4589,6 @@
set_gdbarch_frameless_function_invocation (gdbarch, frameless_look_for_prologue);
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, 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);
Index: sparc-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sparc-tdep.c,v
retrieving revision 1.45
diff -u -r1.45 sparc-tdep.c
--- sparc-tdep.c 18 Nov 2002 22:19:30 -0000 1.45
+++ sparc-tdep.c 19 Nov 2002 20:39:28 -0000
@@ -3149,10 +3149,8 @@
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, 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, 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,
Index: v850-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/v850-tdep.c,v
retrieving revision 1.25
diff -u -r1.25 v850-tdep.c
--- v850-tdep.c 16 Nov 2002 01:00:06 -0000 1.25
+++ v850-tdep.c 19 Nov 2002 20:39:29 -0000
@@ -1237,8 +1237,6 @@
set_gdbarch_frame_saved_pc (gdbarch, v850_frame_saved_pc);
set_gdbarch_skip_prologue (gdbarch, v850_skip_prologue);
set_gdbarch_frame_chain_valid (gdbarch, generic_file_frame_chain_valid);
- set_gdbarch_frame_args_address (gdbarch, default_frame_address);
- set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
/*
* Miscelany
Index: x86-64-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/x86-64-tdep.c,v
retrieving revision 1.38
diff -u -r1.38 x86-64-tdep.c
--- x86-64-tdep.c 14 Nov 2002 00:25:03 -0000 1.38
+++ x86-64-tdep.c 19 Nov 2002 20:39:29 -0000
@@ -1087,8 +1087,6 @@
set_gdbarch_function_start_offset (gdbarch, 0);
set_gdbarch_frame_args_skip (gdbarch, 8);
- set_gdbarch_frame_args_address (gdbarch, default_frame_address);
- set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
set_gdbarch_use_generic_dummy_frames (gdbarch, 1);
Index: xstormy16-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/xstormy16-tdep.c,v
retrieving revision 1.10
diff -u -r1.10 xstormy16-tdep.c
--- xstormy16-tdep.c 14 Nov 2002 00:25:03 -0000 1.10
+++ xstormy16-tdep.c 19 Nov 2002 20:39:29 -0000
@@ -1055,8 +1055,6 @@
set_gdbarch_frame_saved_pc (gdbarch, xstormy16_frame_saved_pc);
set_gdbarch_skip_prologue (gdbarch, xstormy16_skip_prologue);
set_gdbarch_frame_chain_valid (gdbarch, xstormy16_frame_chain_valid);
- set_gdbarch_frame_args_address (gdbarch, default_frame_address);
- set_gdbarch_frame_locals_address (gdbarch, default_frame_address);
set_gdbarch_in_function_epilogue_p (gdbarch,
xstormy16_in_function_epilogue_p);