diff options
author | Andrew Cagney <cagney@redhat.com> | 2002-08-24 00:21:37 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2002-08-24 00:21:37 +0000 |
commit | ebba8386192596108670c6d24b4b3f83a2f81cb0 (patch) | |
tree | ff5f98bfc791b6bca557761153df627ff47963eb /gdb/gdbarch.c | |
parent | 56f65f858db82c284f8a7ace20e2b2567e05df25 (diff) | |
download | gdb-ebba8386192596108670c6d24b4b3f83a2f81cb0.zip gdb-ebba8386192596108670c6d24b4b3f83a2f81cb0.tar.gz gdb-ebba8386192596108670c6d24b4b3f83a2f81cb0.tar.bz2 |
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.3144
diff -u -r1.3144 ChangeLog
--- ChangeLog 23 Aug 2002 23:05:38 -0000 1.3144
+++ ChangeLog 23 Aug 2002 23:14:45 -0000
@@ -1,3 +1,53 @@
2002-08-23 Andrew Cagney <cagney@redhat.com>
* gdbarch.sh (STORE_RETURN_VALUE): Add regcache parameter.
(DEPRECATED_STORE_RETURN_VALUE): New method.
(EXTRACT_RETURN_VALUE): Make buffer parameter a void pointer.
* gdbarch.h, gdbarch.c: Re-generate.
* values.c (set_return_value): Pass current_regcache to
STORE_RETURN_VALUE.
* arch-utils.h (legacy_store_return_value): Declare.
* arch-utils.c (legacy_store_return_value): New function.
(legacy_extract_return_value): Update parameters.
* config/pa/tm-hppa.h (DEPRECATED_STORE_RETURN_VALUE): Rename
STORE_RETURN_VALUE.
* config/pa/tm-hppa64.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* config/sparc/tm-sparc.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* config/z8k/tm-z8k.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* config/sparc/tm-sparclet.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* config/mn10200/tm-mn10200.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* config/m68k/tm-linux.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* config/m68k/tm-delta68.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* config/m32r/tm-m32r.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* config/h8500/tm-h8500.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* config/h8300/tm-h8300.h (DEPRECATED_STORE_RETURN_VALUE): Ditto.
* m68hc11-tdep.c (m68hc11_gdbarch_init): Update.
* i386-tdep.c (i386_extract_return_value): Update.
* arch-utils.c (legacy_extract_return_value): Update.
* frv-tdep.c (frv_gdbarch_init): Update.
* cris-tdep.c (cris_gdbarch_init): Update.
* d10v-tdep.c (d10v_gdbarch_init): Update.
* rs6000-tdep.c (rs6000_gdbarch_init): Update.
* m68k-tdep.c (m68k_gdbarch_init): Update.
* mcore-tdep.c (mcore_gdbarch_init): Update.
* mn10300-tdep.c (mn10300_gdbarch_init): Update.
* s390-tdep.c (s390_gdbarch_init): Update.
* sparc-tdep.c (sparc_gdbarch_init): Update.
* sh-tdep.c (sh_gdbarch_init): Update.
* x86-64-tdep.c (x86_64_gdbarch_init): Update.
* v850-tdep.c (v850_gdbarch_init): Update.
* avr-tdep.c (avr_gdbarch_init): Update.
* ia64-tdep.c (ia64_gdbarch_init): Update.
* ns32k-tdep.c (ns32k_gdbarch_init): Update.
* vax-tdep.c (vax_gdbarch_init): Update.
* alpha-tdep.c (alpha_gdbarch_init): Update.
* arm-tdep.c (arm_gdbarch_init): Update.
* mips-tdep.c (mips_gdbarch_init): Update.
* i386-tdep.c (i386_gdbarch_init): Update.
Index: doc/ChangeLog
2002-08-21 Andrew Cagney <cagney@redhat.com>
* gdbint.texinfo (Target Architecture Definition): Update
STORE_RETURN_VALUE, mention regcache.
Diffstat (limited to 'gdb/gdbarch.c')
-rw-r--r-- | gdb/gdbarch.c | 135 |
1 files changed, 83 insertions, 52 deletions
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 447e3c7..e930642 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -210,14 +210,15 @@ struct gdbarch gdbarch_address_to_pointer_ftype *address_to_pointer; gdbarch_integer_to_address_ftype *integer_to_address; gdbarch_return_value_on_stack_ftype *return_value_on_stack; - gdbarch_extract_return_value_ftype *extract_return_value; - gdbarch_deprecated_extract_return_value_ftype *deprecated_extract_return_value; gdbarch_push_arguments_ftype *push_arguments; gdbarch_push_dummy_frame_ftype *push_dummy_frame; gdbarch_push_return_address_ftype *push_return_address; gdbarch_pop_frame_ftype *pop_frame; gdbarch_store_struct_return_ftype *store_struct_return; + gdbarch_extract_return_value_ftype *extract_return_value; gdbarch_store_return_value_ftype *store_return_value; + gdbarch_deprecated_extract_return_value_ftype *deprecated_extract_return_value; + gdbarch_deprecated_store_return_value_ftype *deprecated_store_return_value; gdbarch_extract_struct_value_address_ftype *extract_struct_value_address; gdbarch_deprecated_extract_struct_value_address_ftype *deprecated_extract_struct_value_address; gdbarch_use_struct_convention_ftype *use_struct_convention; @@ -412,6 +413,7 @@ struct gdbarch startup_gdbarch = 0, 0, 0, + 0, generic_in_function_epilogue_p, construct_inferior_arguments, 0, @@ -519,8 +521,9 @@ gdbarch_alloc (const struct gdbarch_info *info, current_gdbarch->pointer_to_address = unsigned_pointer_to_address; current_gdbarch->address_to_pointer = unsigned_address_to_pointer; current_gdbarch->return_value_on_stack = generic_return_value_on_stack_not; - current_gdbarch->extract_return_value = legacy_extract_return_value; current_gdbarch->push_arguments = default_push_arguments; + current_gdbarch->extract_return_value = legacy_extract_return_value; + current_gdbarch->store_return_value = legacy_store_return_value; current_gdbarch->use_struct_convention = generic_use_struct_convention; current_gdbarch->prologue_frameless_p = generic_prologue_frameless_p; current_gdbarch->breakpoint_from_pc = legacy_breakpoint_from_pc; @@ -703,10 +706,6 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of address_to_pointer, invalid_p == 0 */ /* Skip verify of integer_to_address, has predicate */ /* Skip verify of return_value_on_stack, invalid_p == 0 */ - /* Skip verify of extract_return_value, invalid_p == 0 */ - if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) - && (gdbarch->deprecated_extract_return_value == 0)) - fprintf_unfiltered (log, "\n\tdeprecated_extract_return_value"); /* Skip verify of push_arguments, invalid_p == 0 */ if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && (gdbarch->push_dummy_frame == 0)) @@ -718,9 +717,8 @@ verify_gdbarch (struct gdbarch *gdbarch) if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && (gdbarch->store_struct_return == 0)) fprintf_unfiltered (log, "\n\tstore_struct_return"); - if ((GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) - && (gdbarch->store_return_value == 0)) - fprintf_unfiltered (log, "\n\tstore_return_value"); + /* Skip verify of extract_return_value, invalid_p == 0 */ + /* Skip verify of store_return_value, invalid_p == 0 */ /* Skip verify of extract_struct_value_address, has predicate */ /* Skip verify of deprecated_extract_struct_value_address, has predicate */ /* Skip verify of use_struct_convention, invalid_p == 0 */ @@ -1073,6 +1071,20 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) (long) current_gdbarch->deprecated_extract_struct_value_address /*DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS ()*/); #endif +#ifdef DEPRECATED_STORE_RETURN_VALUE +#if GDB_MULTI_ARCH + /* Macro might contain `[{}]' when not multi-arch */ + fprintf_unfiltered (file, + "gdbarch_dump: %s # %s\n", + "DEPRECATED_STORE_RETURN_VALUE(type, valbuf)", + XSTRING (DEPRECATED_STORE_RETURN_VALUE (type, valbuf))); +#endif + if (GDB_MULTI_ARCH) + fprintf_unfiltered (file, + "gdbarch_dump: DEPRECATED_STORE_RETURN_VALUE = 0x%08lx\n", + (long) current_gdbarch->deprecated_store_return_value + /*DEPRECATED_STORE_RETURN_VALUE ()*/); +#endif #ifdef DO_REGISTERS_INFO #if GDB_MULTI_ARCH /* Macro might contain `[{}]' when not multi-arch */ @@ -1940,8 +1952,8 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) /* Macro might contain `[{}]' when not multi-arch */ fprintf_unfiltered (file, "gdbarch_dump: %s # %s\n", - "STORE_RETURN_VALUE(type, valbuf)", - XSTRING (STORE_RETURN_VALUE (type, valbuf))); + "STORE_RETURN_VALUE(type, regcache, valbuf)", + XSTRING (STORE_RETURN_VALUE (type, regcache, valbuf))); #endif if (GDB_MULTI_ARCH) fprintf_unfiltered (file, @@ -3776,44 +3788,6 @@ set_gdbarch_return_value_on_stack (struct gdbarch *gdbarch, gdbarch->return_value_on_stack = return_value_on_stack; } -void -gdbarch_extract_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, char *valbuf) -{ - gdb_assert (gdbarch != NULL); - if (gdbarch->extract_return_value == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_extract_return_value invalid"); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_extract_return_value called\n"); - gdbarch->extract_return_value (type, regcache, valbuf); -} - -void -set_gdbarch_extract_return_value (struct gdbarch *gdbarch, - gdbarch_extract_return_value_ftype extract_return_value) -{ - gdbarch->extract_return_value = extract_return_value; -} - -void -gdbarch_deprecated_extract_return_value (struct gdbarch *gdbarch, struct type *type, char *regbuf, char *valbuf) -{ - gdb_assert (gdbarch != NULL); - if (gdbarch->deprecated_extract_return_value == 0) - internal_error (__FILE__, __LINE__, - "gdbarch: gdbarch_deprecated_extract_return_value invalid"); - if (gdbarch_debug >= 2) - fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extract_return_value called\n"); - gdbarch->deprecated_extract_return_value (type, regbuf, valbuf); -} - -void -set_gdbarch_deprecated_extract_return_value (struct gdbarch *gdbarch, - gdbarch_deprecated_extract_return_value_ftype deprecated_extract_return_value) -{ - gdbarch->deprecated_extract_return_value = deprecated_extract_return_value; -} - CORE_ADDR gdbarch_push_arguments (struct gdbarch *gdbarch, int nargs, struct value **args, CORE_ADDR sp, int struct_return, CORE_ADDR struct_addr) { @@ -3917,7 +3891,26 @@ set_gdbarch_store_struct_return (struct gdbarch *gdbarch, } void -gdbarch_store_return_value (struct gdbarch *gdbarch, struct type *type, char *valbuf) +gdbarch_extract_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, void *valbuf) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->extract_return_value == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_extract_return_value invalid"); + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_extract_return_value called\n"); + gdbarch->extract_return_value (type, regcache, valbuf); +} + +void +set_gdbarch_extract_return_value (struct gdbarch *gdbarch, + gdbarch_extract_return_value_ftype extract_return_value) +{ + gdbarch->extract_return_value = extract_return_value; +} + +void +gdbarch_store_return_value (struct gdbarch *gdbarch, struct type *type, struct regcache *regcache, const void *valbuf) { gdb_assert (gdbarch != NULL); if (gdbarch->store_return_value == 0) @@ -3925,7 +3918,7 @@ gdbarch_store_return_value (struct gdbarch *gdbarch, struct type *type, char *va "gdbarch: gdbarch_store_return_value invalid"); if (gdbarch_debug >= 2) fprintf_unfiltered (gdb_stdlog, "gdbarch_store_return_value called\n"); - gdbarch->store_return_value (type, valbuf); + gdbarch->store_return_value (type, regcache, valbuf); } void @@ -3935,6 +3928,44 @@ set_gdbarch_store_return_value (struct gdbarch *gdbarch, gdbarch->store_return_value = store_return_value; } +void +gdbarch_deprecated_extract_return_value (struct gdbarch *gdbarch, struct type *type, char *regbuf, char *valbuf) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->deprecated_extract_return_value == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_deprecated_extract_return_value invalid"); + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_extract_return_value called\n"); + gdbarch->deprecated_extract_return_value (type, regbuf, valbuf); +} + +void +set_gdbarch_deprecated_extract_return_value (struct gdbarch *gdbarch, + gdbarch_deprecated_extract_return_value_ftype deprecated_extract_return_value) +{ + gdbarch->deprecated_extract_return_value = deprecated_extract_return_value; +} + +void +gdbarch_deprecated_store_return_value (struct gdbarch *gdbarch, struct type *type, char *valbuf) +{ + gdb_assert (gdbarch != NULL); + if (gdbarch->deprecated_store_return_value == 0) + internal_error (__FILE__, __LINE__, + "gdbarch: gdbarch_deprecated_store_return_value invalid"); + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_deprecated_store_return_value called\n"); + gdbarch->deprecated_store_return_value (type, valbuf); +} + +void +set_gdbarch_deprecated_store_return_value (struct gdbarch *gdbarch, + gdbarch_deprecated_store_return_value_ftype deprecated_store_return_value) +{ + gdbarch->deprecated_store_return_value = deprecated_store_return_value; +} + int gdbarch_extract_struct_value_address_p (struct gdbarch *gdbarch) { |