diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/gdbarch.c | 27 | ||||
-rw-r--r-- | gdb/gdbarch.h | 8 | ||||
-rwxr-xr-x | gdb/gdbarch.sh | 1 |
4 files changed, 42 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6206f21ae5f..924f3d11c83 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2001-01-22 Nicholas Duffek <nsd@redhat.com> + + * gdbarch.sh (PARM_BOUNDARY): Define. + * gdbarch.c: Regenerate. + * gdbarch.h: Regenerate. + 2001-01-22 J.T. Conklin <jtc@redback.com> * ns32k-tdep.c: #include "frame.h" diff --git a/gdb/gdbarch.c b/gdb/gdbarch.c index d9c038d73a7..4c5c44da9ae 100644 --- a/gdb/gdbarch.c +++ b/gdb/gdbarch.c @@ -235,6 +235,7 @@ struct gdbarch int extra_stack_alignment_needed; gdbarch_reg_struct_has_addr_ftype *reg_struct_has_addr; gdbarch_save_dummy_frame_tos_ftype *save_dummy_frame_tos; + int parm_boundary; const struct floatformat * float_format; const struct floatformat * double_format; const struct floatformat * long_double_format; @@ -368,6 +369,7 @@ struct gdbarch startup_gdbarch = 0, 0, 0, + 0, /* startup_gdbarch() */ }; @@ -1341,6 +1343,11 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) "SAVE_DUMMY_FRAME_TOS(sp)", XSTRING (SAVE_DUMMY_FRAME_TOS (sp))); #endif +#ifdef PARM_BOUNDARY + fprintf_unfiltered (file, + "gdbarch_dump: PARM_BOUNDARY # %s\n", + XSTRING (PARM_BOUNDARY)); +#endif #ifdef TARGET_FLOAT_FORMAT fprintf_unfiltered (file, "gdbarch_dump: TARGET_FLOAT_FORMAT # %s\n", @@ -2045,6 +2052,11 @@ gdbarch_dump (struct gdbarch *gdbarch, struct ui_file *file) (long) current_gdbarch->save_dummy_frame_tos /*SAVE_DUMMY_FRAME_TOS ()*/); #endif +#ifdef PARM_BOUNDARY + fprintf_unfiltered (file, + "gdbarch_dump: PARM_BOUNDARY = %ld\n", + (long) PARM_BOUNDARY); +#endif #ifdef TARGET_FLOAT_FORMAT fprintf_unfiltered (file, "gdbarch_dump: TARGET_FLOAT_FORMAT = %ld\n", @@ -3918,6 +3930,21 @@ set_gdbarch_save_dummy_frame_tos (struct gdbarch *gdbarch, gdbarch->save_dummy_frame_tos = save_dummy_frame_tos; } +int +gdbarch_parm_boundary (struct gdbarch *gdbarch) +{ + if (gdbarch_debug >= 2) + fprintf_unfiltered (gdb_stdlog, "gdbarch_parm_boundary called\n"); + return gdbarch->parm_boundary; +} + +void +set_gdbarch_parm_boundary (struct gdbarch *gdbarch, + int parm_boundary) +{ + gdbarch->parm_boundary = parm_boundary; +} + const struct floatformat * gdbarch_float_format (struct gdbarch *gdbarch) { diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h index 2ba93711887..a4cd19d5a64 100644 --- a/gdb/gdbarch.h +++ b/gdb/gdbarch.h @@ -1408,6 +1408,14 @@ extern void set_gdbarch_save_dummy_frame_tos (struct gdbarch *gdbarch, gdbarch_s #endif #endif +extern int gdbarch_parm_boundary (struct gdbarch *gdbarch); +extern void set_gdbarch_parm_boundary (struct gdbarch *gdbarch, int parm_boundary); +#if GDB_MULTI_ARCH +#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (PARM_BOUNDARY) +#define PARM_BOUNDARY (gdbarch_parm_boundary (current_gdbarch)) +#endif +#endif + /* Default (value) for non- multi-arch platforms. */ #if (!GDB_MULTI_ARCH) && !defined (TARGET_FLOAT_FORMAT) #define TARGET_FLOAT_FORMAT (default_float_format (current_gdbarch)) diff --git a/gdb/gdbarch.sh b/gdb/gdbarch.sh index 167e55b3e0f..578514e76f2 100755 --- a/gdb/gdbarch.sh +++ b/gdb/gdbarch.sh @@ -480,6 +480,7 @@ F:2:STACK_ALIGN:CORE_ADDR:stack_align:CORE_ADDR sp:sp::0:0 v:1:EXTRA_STACK_ALIGNMENT_NEEDED:int:extra_stack_alignment_needed::::0:1::0::: F:2:REG_STRUCT_HAS_ADDR:int:reg_struct_has_addr:int gcc_p, struct type *type:gcc_p, type::0:0 F:2:SAVE_DUMMY_FRAME_TOS:void:save_dummy_frame_tos:CORE_ADDR sp:sp::0:0 +v:2:PARM_BOUNDARY:int:parm_boundary # v:2:TARGET_FLOAT_FORMAT:const struct floatformat *:float_format::::::default_float_format (gdbarch) v:2:TARGET_DOUBLE_FORMAT:const struct floatformat *:double_format::::::default_double_format (gdbarch) |