diff options
author | Joseph Myers <joseph@codesourcery.com> | 2011-09-23 14:50:30 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2011-09-23 14:50:30 +0000 |
commit | e04e5beb2e28eb2b84a2667f73908eb1ddc1111c (patch) | |
tree | 4946d90e362845597a31bef459f9060cf4a0d873 /gdb/i386-tdep.c | |
parent | f3d6df6d3a378d6d5acb26895f658d54db151919 (diff) | |
download | gdb-e04e5beb2e28eb2b84a2667f73908eb1ddc1111c.zip gdb-e04e5beb2e28eb2b84a2667f73908eb1ddc1111c.tar.gz gdb-e04e5beb2e28eb2b84a2667f73908eb1ddc1111c.tar.bz2 |
PR gdb/13079
* i386-tdep.c (i386_frame_align): New.
(i386_gdbarch_init): Use i386_frame_align.
Diffstat (limited to 'gdb/i386-tdep.c')
-rw-r--r-- | gdb/i386-tdep.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 5fb2efb..98dfd02 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -2228,6 +2228,15 @@ i386_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame) /* See the end of i386_push_dummy_call. */ return frame_id_build (fp + 8, get_frame_pc (this_frame)); } + +/* _Decimal128 function return values need 16-byte alignment on the + stack. */ + +static CORE_ADDR +i386_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp) +{ + return sp & -(CORE_ADDR)16; +} /* Figure out where the longjmp will land. Slurp the args out of the @@ -7316,6 +7325,7 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) /* Call dummy code. */ set_gdbarch_push_dummy_call (gdbarch, i386_push_dummy_call); + set_gdbarch_frame_align (gdbarch, i386_frame_align); set_gdbarch_convert_register_p (gdbarch, i386_convert_register_p); set_gdbarch_register_to_value (gdbarch, i386_register_to_value); |