diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-01-17 22:45:44 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-01-17 22:45:44 +0000 |
commit | de4ebc8f586c790ff791cf7e791eaf8e6a9dde6f (patch) | |
tree | 8732182b1a51063fa595c6fd190cb602da7fd661 /gdb/sparc-tdep.c | |
parent | cfa98d75f10831f86cbff6047e6a107acd504566 (diff) | |
download | gdb-de4ebc8f586c790ff791cf7e791eaf8e6a9dde6f.tar.gz |
2004-01-17 Andrew Cagney <cagney@redhat.com>
* x86-64-tdep.c (x86_64_init_abi): No need to clear
extract_struct_value_address, i386 does not set it.
* sparc64-tdep.c (sparc64_init_abi): Do not set
extract_struct_value_address, never called.
(sparc64_extract_struct_value_address): Delete function.
* m68hc11-tdep.c: Update copyright.
(m68hc11_gdbarch_init): Delete redundant assignment of
extract_struct_value_address.
* i386-tdep.c: Update copyright.
(i386_gdbarch_init): Do not set extract_struct_value_address,
never called.
(i386_extract_struct_value_address): Delete function.
* sparc-tdep.c (sparc32_gdbarch_init): Do not set
extract_struct_value_address, never called.
(sparc32_extract_struct_value_address): #if 0 function.
Diffstat (limited to 'gdb/sparc-tdep.c')
-rw-r--r-- | gdb/sparc-tdep.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 1bcdeb8b7c5..c2f3cfb1f63 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -834,6 +834,18 @@ sparc32_return_value (struct gdbarch *gdbarch, struct type *type, return RETURN_VALUE_REGISTER_CONVENTION; } +#if 0 +/* NOTE: cagney/2004-01-17: For the moment disable this method. The + architecture and CORE-gdb will need new code (and a replacement for + EXTRACT_STRUCT_VALUE_ADDRESS) before this can be made to work + robustly. Here is a possible function signature: */ +/* NOTE: cagney/2004-01-17: So far only the 32-bit SPARC ABI has been + identifed as having a way to robustly recover the address of a + struct-convention return-value (after the function has returned). + For all other ABIs so far examined, the calling convention makes no + guarenteed that the register containing the return-value will be + preserved and hence that the return-value's address can be + recovered. */ /* Extract from REGCACHE, which contains the (raw) register state, the address in which a function should return its structure value, as a CORE_ADDR. */ @@ -846,6 +858,7 @@ sparc32_extract_struct_value_address (struct regcache *regcache) regcache_cooked_read_unsigned (regcache, SPARC_SP_REGNUM, &sp); return read_memory_unsigned_integer (sp + 64, 4); } +#endif static int sparc32_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type) @@ -1069,8 +1082,6 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_push_dummy_call (gdbarch, sparc32_push_dummy_call); set_gdbarch_return_value (gdbarch, sparc32_return_value); - set_gdbarch_extract_struct_value_address - (gdbarch, sparc32_extract_struct_value_address); set_gdbarch_stabs_argument_has_addr (gdbarch, sparc32_stabs_argument_has_addr); |