diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-01-26 20:52:13 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-01-26 20:52:13 +0000 |
commit | 551c381532adebda534d22eeeb290e65e0a5268d (patch) | |
tree | d4182fad453d11daf7b6c315c13f5343a9bca026 /gdb/gdbarch.sh | |
parent | b84f4ee1174249cc590fd4a97f6c69bcd017b6d8 (diff) | |
download | gdb-551c381532adebda534d22eeeb290e65e0a5268d.tar.gz |
2004-01-26 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (EXTRACT_STRUCT_VALUE_ADDRESS): Deprecate. Add
comments mentioning extract_returned_value_address.
* infcmd.c (print_return_value): Update. Add comments on
extract_returned_value_address.
* stack.c (return_command): Add comments on
extract_returned_value_address.
* values.c: Update comment.
* m32r-tdep.c: Update comment.
* sparc-tdep.c: Update comment.
* ia64-tdep.c (ia64_use_struct_convention): Update comment.
* xstormy16-tdep.c (xstormy16_gdbarch_init): Update.
* sh64-tdep.c (sh64_gdbarch_init): Update.
* sh-tdep.c (sh_gdbarch_init): Update.
* s390-tdep.c (s390_gdbarch_init): Update.
* rs6000-tdep.c (rs6000_gdbarch_init): Update.
* m68klinux-tdep.c (m68k_linux_init_abi): Update.
* m68k-tdep.c (m68k_gdbarch_init): Update.
* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
* m32r-tdep.c (m32r_gdbarch_init): Update.
* ia64-tdep.c (ia64_gdbarch_init): Update.
* h8300-tdep.c (h8300_gdbarch_init): Update.
* frv-tdep.c (frv_gdbarch_init): Update.
* arm-tdep.c (arm_gdbarch_init): Update.
* alpha-tdep.c (alpha_gdbarch_init): Update.
Index: doc/ChangeLog
2004-01-26 Andrew Cagney <cagney@redhat.com>
* gdbint.texinfo (Target Architecture Definition): Rename
EXTRACT_STRUCT_VALUE_ADDRESS to
DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS.
Diffstat (limited to 'gdb/gdbarch.sh')
-rwxr-xr-x | gdb/gdbarch.sh | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 1801e8fb662..db7588b2071 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -606,11 +606,7 @@ M:::enum return_value_convention:return_value:struct type *valtype, struct regca # The deprecated methods RETURN_VALUE_ON_STACK, EXTRACT_RETURN_VALUE, # STORE_RETURN_VALUE and USE_STRUCT_CONVENTION have all been folded -# into RETURN_VALUE. For the moment do not try to fold in -# EXTRACT_STRUCT_VALUE_ADDRESS as, dependant on the ABI, the debug -# info, and the level of effort, it may well be possible to find the -# address of a structure being return on the stack. Someone else can -# make that change. +# into RETURN_VALUE. f:2:RETURN_VALUE_ON_STACK:int:return_value_on_stack:struct type *type:type:::generic_return_value_on_stack_not::0 f:2:EXTRACT_RETURN_VALUE:void:extract_return_value:struct type *type, struct regcache *regcache, void *valbuf:type, regcache, valbuf:::legacy_extract_return_value::0 @@ -619,8 +615,27 @@ f:2:DEPRECATED_EXTRACT_RETURN_VALUE:void:deprecated_extract_return_value:struct f:2:DEPRECATED_STORE_RETURN_VALUE:void:deprecated_store_return_value:struct type *type, char *valbuf:type, valbuf f:2:USE_STRUCT_CONVENTION:int:use_struct_convention:int gcc_p, struct type *value_type:gcc_p, value_type:::generic_use_struct_convention::0 -F:2:EXTRACT_STRUCT_VALUE_ADDRESS:CORE_ADDR:extract_struct_value_address:struct regcache *regcache:regcache -# +# 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:2:DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS:CORE_ADDR:deprecated_extract_struct_value_address:struct regcache *regcache:regcache + F:2:DEPRECATED_FRAME_INIT_SAVED_REGS:void:deprecated_frame_init_saved_regs:struct frame_info *frame:frame F:2:DEPRECATED_INIT_EXTRA_FRAME_INFO:void:deprecated_init_extra_frame_info:int fromleaf, struct frame_info *frame:fromleaf, frame # |