diff options
author | Mark Kettenis <kettenis@gnu.org> | 2003-09-17 19:48:42 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2003-09-17 19:48:42 +0000 |
commit | 192cb3d4e24944db8dfac26575a1209605dffee0 (patch) | |
tree | 99165e9de7a4ccea2fb6d292bfd3c07b16ca5eb7 /gdb/gdbarch.c | |
parent | efe59759d8d01aa611222e4d7000e41561945741 (diff) | |
download | gdb-192cb3d4e24944db8dfac26575a1209605dffee0.zip gdb-192cb3d4e24944db8dfac26575a1209605dffee0.tar.gz gdb-192cb3d4e24944db8dfac26575a1209605dffee0.tar.bz2 |
* gdbarch.sh (DEPRECATED_REG_STRUCT_HAS_ADDR): Add comment.
* gdbarch.h, gdbarch.c: Regenerate.
(stabs_argument_has_addr): New architecture method.
* arch-utils.h (default_stabs_argument_has_addr): New prototype.
* arch-utils.c: Include "buildsym.h".
(default_stabs_argument_has_addr): New function.
* stabsread.c (define_symbol): Use stabs_argument_has_addr
instead of DEPRECATED_REG_STRUCT_HAS_ADDR.
Diffstat (limited to 'gdb/gdbarch.c')
-rw-r--r-- | gdb/gdbarch.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index 974a3c0..274e67c 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -238,6 +238,7 @@ struct gdbarch gdbarch_deprecated_stack_align_ftype *deprecated_stack_align; gdbarch_frame_align_ftype *frame_align; gdbarch_deprecated_reg_struct_has_addr_ftype *deprecated_reg_struct_has_addr; + gdbarch_stabs_argument_has_addr_ftype *stabs_argument_has_addr; int frame_red_zone_size; int parm_boundary; const struct floatformat * float_format; @@ -406,6 +407,7 @@ struct gdbarch startup_gdbarch = 0, /* deprecated_stack_align */ 0, /* frame_align */ 0, /* deprecated_reg_struct_has_addr */ + default_stabs_argument_has_addr, /* stabs_argument_has_addr */ 0, /* frame_red_zone_size */ 0, /* parm_boundary */ 0, /* float_format */ @@ -540,6 +542,7 @@ gdbarch_alloc (const struct gdbarch_info *info, current_gdbarch->frameless_function_invocation = generic_frameless_function_invocation_not; current_gdbarch->deprecated_frame_args_address = get_frame_base; current_gdbarch->deprecated_frame_locals_address = get_frame_base; + current_gdbarch->stabs_argument_has_addr = default_stabs_argument_has_addr; current_gdbarch->convert_from_func_ptr_addr = core_addr_identity; current_gdbarch->addr_bits_remove = core_addr_identity; current_gdbarch->smash_text_address = core_addr_identity; @@ -730,6 +733,7 @@ verify_gdbarch (struct gdbarch *gdbarch) /* Skip verify of deprecated_stack_align, has predicate */ /* Skip verify of frame_align, has predicate */ /* Skip verify of deprecated_reg_struct_has_addr, has predicate */ + /* Skip verify of stabs_argument_has_addr, invalid_p == 0 */ if (gdbarch->float_format == 0) gdbarch->float_format = default_float_format (gdbarch); if (gdbarch->double_format == 0) @@ -798,6 +802,9 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) "gdbarch_dump: register_reggroup_p = 0x%08lx\n", (long) current_gdbarch->register_reggroup_p); fprintf_unfiltered (file, + "gdbarch_dump: stabs_argument_has_addr = 0x%08lx\n", + (long) current_gdbarch->stabs_argument_has_addr); + fprintf_unfiltered (file, "gdbarch_dump: gdbarch_pseudo_register_read_p() = %d\n", gdbarch_pseudo_register_read_p (current_gdbarch)); fprintf_unfiltered (file, @@ -4931,6 +4938,23 @@ set_gdbarch_deprecated_reg_struct_has_addr (struct gdbarch *gdbarch, } int +gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type) +{ + gdb_assert (gdbarch != NULL); + gdb_assert (gdbarch->stabs_argument_has_addr != NULL); + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_stabs_argument_has_addr called\n"); + return gdbarch->stabs_argument_has_addr (gdbarch, type); +} + +void +set_gdbarch_stabs_argument_has_addr (struct gdbarch *gdbarch, + gdbarch_stabs_argument_has_addr_ftype stabs_argument_has_addr) +{ + gdbarch->stabs_argument_has_addr = stabs_argument_has_addr; +} + +int gdbarch_frame_red_zone_size (struct gdbarch *gdbarch) { gdb_assert (gdbarch != NULL); |