diff options
author | Joel Brobecker <brobecker@gnat.com> | 2010-10-01 15:55:12 +0000 |
---|---|---|
committer | Joel Brobecker <brobecker@gnat.com> | 2010-10-01 15:55:12 +0000 |
commit | 72a52a75035eea0e41eacad35b61a8ef8d25ed72 (patch) | |
tree | 7bc3512deb44dbcb47911c2edfaf8d884f5bdace /gdb/sparc-tdep.c | |
parent | cecc659ff339f09009a48032672292883263a4ab (diff) | |
download | gdb-72a52a75035eea0e41eacad35b61a8ef8d25ed72.tar.gz |
[sparc] inferior SEGV while calling Ada subprogram
gdb/ChangeLog:
* sparc-tdep.c (sparc32_frame_align): New function.
(sparc32_gdbarch_init): Set the frame_align gdbarch method.
* sparc64-tdep.c (sparc64_frame_align): New function.
(sparc64_gdbarch_init): Set the frame_align gdbarch method.
Diffstat (limited to 'gdb/sparc-tdep.c')
-rw-r--r-- | gdb/sparc-tdep.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index 29a12cf5d65..fd7078366de 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -399,6 +399,13 @@ sparc32_pseudo_register_write (struct gdbarch *gdbarch, static CORE_ADDR +sparc32_frame_align (struct gdbarch *gdbarch, CORE_ADDR address) +{ + /* The ABI requires double-word alignment. */ + return address & ~0x7; +} + +static CORE_ADDR sparc32_push_dummy_code (struct gdbarch *gdbarch, CORE_ADDR sp, CORE_ADDR funcaddr, struct value **args, int nargs, @@ -1407,6 +1414,7 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_fp0_regnum (gdbarch, SPARC_F0_REGNUM); /* %f0 */ /* Call dummy code. */ + set_gdbarch_frame_align (gdbarch, sparc32_frame_align); set_gdbarch_call_dummy_location (gdbarch, ON_STACK); set_gdbarch_push_dummy_code (gdbarch, sparc32_push_dummy_code); set_gdbarch_push_dummy_call (gdbarch, sparc32_push_dummy_call); |