From 8ed6a7ba981033bf5d572e41e22e1eb860fe24c7 Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Mon, 18 Jun 2007 17:56:32 +0000 Subject: [PATCH] 2007-06-18 Markus Deuling * gdbarch.sh (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Remove. * sh-tdep.c (sh_extract_struct_value_address): Remove. (sh_gdbarch_init): Remove set_gdbarch_deprecated_extract_struct_value_address. * sh64-tdep.c (sh64_extract_struct_value_address): Remove. (sh64_gdbarch_init): Remove set_gdbarch_deprecated_extract_struct_value_address. * ia64-tdep.c (ia64_extract_struct_value_address): Remove. (ia64_gdbarch_init): Remove set_gdbarch_deprecated_extract_struct_value_address. * frv-tdep.c (frv_extract_struct_value_address): Remove. (frv_gdbarch_init): Remove set_gdbarch_deprecated_extract_struct_value_address. * gdbarch.c, gdbarch.h: Regenerate. --- gdb/ChangeLog | 17 +++++++++++++++++ gdb/frv-tdep.c | 9 --------- gdb/gdbarch.c | 45 --------------------------------------------- gdb/gdbarch.h | 43 ------------------------------------------- gdb/gdbarch.sh | 22 ---------------------- gdb/ia64-tdep.c | 8 -------- gdb/sh-tdep.c | 14 -------------- gdb/sh64-tdep.c | 13 ------------- 8 files changed, 17 insertions(+), 154 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index ddb89ad3621..c4f093d957c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,20 @@ +2007-06-18 Markus Deuling + + * gdbarch.sh (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Remove. + * sh-tdep.c (sh_extract_struct_value_address): Remove. + (sh_gdbarch_init): Remove + set_gdbarch_deprecated_extract_struct_value_address. + * sh64-tdep.c (sh64_extract_struct_value_address): Remove. + (sh64_gdbarch_init): Remove + set_gdbarch_deprecated_extract_struct_value_address. + * ia64-tdep.c (ia64_extract_struct_value_address): Remove. + (ia64_gdbarch_init): Remove + set_gdbarch_deprecated_extract_struct_value_address. + * frv-tdep.c (frv_extract_struct_value_address): Remove. + (frv_gdbarch_init): Remove + set_gdbarch_deprecated_extract_struct_value_address. + * gdbarch.c, gdbarch.h: Regenerate. + 2007-06-18 Markus Deuling * gdbarch.sh (SP_REGNUM): Replace by gdbarch_sp_regnum. diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c index b339bb9a1bf..588e301980f 100644 --- a/gdb/frv-tdep.c +++ b/gdb/frv-tdep.c @@ -1048,14 +1048,6 @@ frv_extract_return_value (struct type *type, struct regcache *regcache, internal_error (__FILE__, __LINE__, _("Illegal return value length: %d"), len); } -static CORE_ADDR -frv_extract_struct_value_address (struct regcache *regcache) -{ - ULONGEST addr; - regcache_cooked_read_unsigned (regcache, struct_return_regnum, &addr); - return addr; -} - static CORE_ADDR frv_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp) { @@ -1502,7 +1494,6 @@ frv_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_extract_return_value (gdbarch, frv_extract_return_value); set_gdbarch_store_return_value (gdbarch, frv_store_return_value); - set_gdbarch_deprecated_extract_struct_value_address (gdbarch, frv_extract_struct_value_address); /* Frame stuff. */ set_gdbarch_unwind_pc (gdbarch, frv_unwind_pc); diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 36bb6c81767..66d411b02af 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -188,7 +188,6 @@ struct gdbarch gdbarch_extract_return_value_ftype *extract_return_value; gdbarch_store_return_value_ftype *store_return_value; gdbarch_deprecated_use_struct_convention_ftype *deprecated_use_struct_convention; - gdbarch_deprecated_extract_struct_value_address_ftype *deprecated_extract_struct_value_address; gdbarch_skip_prologue_ftype *skip_prologue; gdbarch_inner_than_ftype *inner_than; gdbarch_breakpoint_from_pc_ftype *breakpoint_from_pc; @@ -311,7 +310,6 @@ struct gdbarch startup_gdbarch = 0, /* extract_return_value */ 0, /* store_return_value */ 0, /* deprecated_use_struct_convention */ - 0, /* deprecated_extract_struct_value_address */ 0, /* skip_prologue */ 0, /* inner_than */ 0, /* breakpoint_from_pc */ @@ -555,7 +553,6 @@ verify_gdbarch (struct gdbarch *current_gdbarch) /* Skip verify of integer_to_address, has predicate */ /* Skip verify of return_value, has predicate */ /* Skip verify of deprecated_use_struct_convention, invalid_p == 0 */ - /* Skip verify of deprecated_extract_struct_value_address, has predicate */ if (current_gdbarch->skip_prologue == 0) fprintf_unfiltered (log, "\n\tskip_prologue"); if (current_gdbarch->inner_than == 0) @@ -725,24 +722,6 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file) fprintf_unfiltered (file, "gdbarch_dump: decr_pc_after_break = 0x%s\n", paddr_nz (current_gdbarch->decr_pc_after_break)); -#ifdef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P - fprintf_unfiltered (file, - "gdbarch_dump: %s # %s\n", - "DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P()", - XSTRING (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P ())); -#endif - fprintf_unfiltered (file, - "gdbarch_dump: gdbarch_deprecated_extract_struct_value_address_p() = %d\n", - gdbarch_deprecated_extract_struct_value_address_p (current_gdbarch)); -#ifdef DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS - fprintf_unfiltered (file, - "gdbarch_dump: %s # %s\n", - "DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(regcache)", - XSTRING (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS (regcache))); -#endif - fprintf_unfiltered (file, - "gdbarch_dump: deprecated_extract_struct_value_address = <0x%lx>\n", - (long) current_gdbarch->deprecated_extract_struct_value_address); #ifdef DEPRECATED_FP_REGNUM fprintf_unfiltered (file, "gdbarch_dump: DEPRECATED_FP_REGNUM # %s\n", @@ -2221,30 +2200,6 @@ set_gdbarch_deprecated_use_struct_convention (struct gdbarch *gdbarch, gdbarch->deprecated_use_struct_convention = deprecated_use_struct_convention; } -int -gdbarch_deprecated_extract_struct_value_address_p (struct gdbarch *gdbarch) -{ - gdb_assert (gdbarch != NULL); - return gdbarch->deprecated_extract_struct_value_address != NULL; -} - -CORE_ADDR -gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch, struct regcache *regcache) -{ - gdb_assert (gdbarch != NULL); - gdb_assert (gdbarch->deprecated_extract_struct_value_address != NULL); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extract_struct_value_address called\n"); - return gdbarch->deprecated_extract_struct_value_address (regcache); -} - -void -set_gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch, - gdbarch_deprecated_extract_struct_value_address_ftype deprecated_extract_struct_value_address) -{ - gdbarch->deprecated_extract_struct_value_address = deprecated_extract_struct_value_address; -} - CORE_ADDR gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip) { diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index a08a98e5c46..6fc8e1718db 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -427,49 +427,6 @@ extern void set_gdbarch_deprecated_use_struct_convention (struct gdbarch *gdbarc #define DEPRECATED_USE_STRUCT_CONVENTION(gcc_p, value_type) (gdbarch_deprecated_use_struct_convention (current_gdbarch, gcc_p, value_type)) #endif -/* As of 2004-01-17 only the 32-bit SPARC ABI has been identified as an - ABI suitable for the implementation of a robust extract - struct-convention return-value address method (the sparc saves the - address in the callers frame). All the other cases so far examined, - the DEPRECATED_EXTRACT_STRUCT_VALUE implementation has been - erreneous - the code was incorrectly assuming that the return-value - address, stored in a register, was preserved across the entire - function call. - For the moment retain DEPRECATED_EXTRACT_STRUCT_VALUE as a marker of - the ABIs that are still to be analyzed - perhaps this should simply - be deleted. The commented out extract_returned_value_address method - is provided as a starting point for the 32-bit SPARC. It, or - something like it, along with changes to both infcmd.c and stack.c - will be needed for that case to work. NB: It is passed the callers - frame since it is only after the callee has returned that this - function is used. - M::CORE_ADDR:extract_returned_value_address:struct frame_info *caller_frame:caller_frame */ - -#if defined (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS) -/* Legacy for systems yet to multi-arch DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS */ -#if !defined (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P) -#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P() (1) -#endif -#endif - -extern int gdbarch_deprecated_extract_struct_value_address_p (struct gdbarch *gdbarch); -#if !defined (GDB_TM_FILE) && defined (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P) -#error "Non multi-arch definition of DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS" -#endif -#if !defined (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P) -#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS_P() (gdbarch_deprecated_extract_struct_value_address_p (current_gdbarch)) -#endif - -typedef CORE_ADDR (gdbarch_deprecated_extract_struct_value_address_ftype) (struct regcache *regcache); -extern CORE_ADDR gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch, struct regcache *regcache); -extern void set_gdbarch_deprecated_extract_struct_value_address (struct gdbarch *gdbarch, gdbarch_deprecated_extract_struct_value_address_ftype *deprecated_extract_struct_value_address); -#if !defined (GDB_TM_FILE) && defined (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS) -#error "Non multi-arch definition of DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS" -#endif -#if !defined (DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS) -#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(regcache) (gdbarch_deprecated_extract_struct_value_address (current_gdbarch, regcache)) -#endif - typedef CORE_ADDR (gdbarch_skip_prologue_ftype) (CORE_ADDR ip); extern CORE_ADDR gdbarch_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR ip); extern void set_gdbarch_skip_prologue (struct gdbarch *gdbarch, gdbarch_skip_prologue_ftype *skip_prologue); diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index a70b06b9911..33ad4de1c78 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -517,28 +517,6 @@ f:=:void:extract_return_value:struct type *type, struct regcache *regcache, gdb_ f:=:void:store_return_value:struct type *type, struct regcache *regcache, const gdb_byte *valbuf:type, regcache, valbuf:0 f:=:int:deprecated_use_struct_convention:int gcc_p, struct type *value_type:gcc_p, value_type::generic_use_struct_convention::0 -# As of 2004-01-17 only the 32-bit SPARC ABI has been identified as an -# ABI suitable for the implementation of a robust extract -# struct-convention return-value address method (the sparc saves the -# address in the callers frame). All the other cases so far examined, -# the DEPRECATED_EXTRACT_STRUCT_VALUE implementation has been -# erreneous - the code was incorrectly assuming that the return-value -# address, stored in a register, was preserved across the entire -# function call. - -# For the moment retain DEPRECATED_EXTRACT_STRUCT_VALUE as a marker of -# the ABIs that are still to be analyzed - perhaps this should simply -# be deleted. The commented out extract_returned_value_address method -# is provided as a starting point for the 32-bit SPARC. It, or -# something like it, along with changes to both infcmd.c and stack.c -# will be needed for that case to work. NB: It is passed the callers -# frame since it is only after the callee has returned that this -# function is used. - -#M::CORE_ADDR:extract_returned_value_address:struct frame_info *caller_frame:caller_frame -F:=:CORE_ADDR:deprecated_extract_struct_value_address:struct regcache *regcache:regcache - -# f::CORE_ADDR:skip_prologue:CORE_ADDR ip:ip:0:0 f::int:inner_than:CORE_ADDR lhs, CORE_ADDR rhs:lhs, rhs:0:0 f::const gdb_byte *:breakpoint_from_pc:CORE_ADDR *pcptr, int *lenptr:pcptr, lenptr::0: diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index afb15190052..841215dc108 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -2994,13 +2994,6 @@ ia64_extract_return_value (struct type *type, struct regcache *regcache, } } -CORE_ADDR -ia64_extract_struct_value_address (struct regcache *regcache) -{ - error (_("ia64_extract_struct_value_address called and cannot get struct value address")); - return 0; -} - static int is_float_or_hfa_type_recurse (struct type *t, struct type **etp) @@ -3551,7 +3544,6 @@ ia64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_extract_return_value (gdbarch, ia64_extract_return_value); set_gdbarch_store_return_value (gdbarch, ia64_store_return_value); - set_gdbarch_deprecated_extract_struct_value_address (gdbarch, ia64_extract_struct_value_address); set_gdbarch_memory_insert_breakpoint (gdbarch, ia64_memory_insert_breakpoint); set_gdbarch_memory_remove_breakpoint (gdbarch, ia64_memory_remove_breakpoint); diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c index ca800cacd50..07cb3fad776 100644 --- a/gdb/sh-tdep.c +++ b/gdb/sh-tdep.c @@ -815,18 +815,6 @@ sh_use_struct_convention (int gcc_p, struct type *type) return 1; } -/* Extract from an array REGBUF containing the (raw) register state - the address in which a function should return its structure value, - as a CORE_ADDR (or an expression that can be used as one). */ -static CORE_ADDR -sh_extract_struct_value_address (struct regcache *regcache) -{ - ULONGEST addr; - - regcache_cooked_read_unsigned (regcache, STRUCT_RETURN_REGNUM, &addr); - return addr; -} - static CORE_ADDR sh_frame_align (struct gdbarch *ignore, CORE_ADDR sp) { @@ -2751,8 +2739,6 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_register_sim_regno (gdbarch, legacy_register_sim_regno); set_gdbarch_return_value (gdbarch, sh_return_value_nofpu); - set_gdbarch_deprecated_extract_struct_value_address (gdbarch, - sh_extract_struct_value_address); set_gdbarch_skip_prologue (gdbarch, sh_skip_prologue); set_gdbarch_inner_than (gdbarch, core_addr_lessthan); diff --git a/gdb/sh64-tdep.c b/gdb/sh64-tdep.c index 7190ef888a8..d1fc9958d8b 100644 --- a/gdb/sh64-tdep.c +++ b/gdb/sh64-tdep.c @@ -961,17 +961,6 @@ sh64_analyze_prologue (struct gdbarch *gdbarch, cache->uses_fp = 1; } -static CORE_ADDR -sh64_extract_struct_value_address (struct regcache *regcache) -{ - /* FIXME: cagney/2004-01-17: Does the ABI guarantee that the return - address regster is preserved across function calls? Probably - not, making this function wrong. */ - ULONGEST val; - regcache_raw_read_unsigned (regcache, STRUCT_RETURN_REGNUM, &val); - return val; -} - static CORE_ADDR sh64_frame_align (struct gdbarch *ignore, CORE_ADDR sp) { @@ -2515,8 +2504,6 @@ sh64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_register_sim_regno (gdbarch, legacy_register_sim_regno); set_gdbarch_return_value (gdbarch, sh64_return_value); - set_gdbarch_deprecated_extract_struct_value_address (gdbarch, - sh64_extract_struct_value_address); set_gdbarch_skip_prologue (gdbarch, sh64_skip_prologue); set_gdbarch_inner_than (gdbarch, core_addr_lessthan); -- 2.30.2