summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2006-06-09 12:12:03 +0000
committerNathan Sidwell <nathan@codesourcery.com>2006-06-09 12:12:03 +0000
commitd9ec1d786f1b408b1f1f1b63891e877ac791ba49 (patch)
tree6149bdec9bd500ac30a39f1a88848c27caf8ae6c
parent0a0d7abd2bb49eba221f73cb63fd005845db911f (diff)
downloadgdb-d9ec1d786f1b408b1f1f1b63891e877ac791ba49.tar.gz
gdb/
* m68k-tdep.c (m68k_frame_align): New. (m68k_push_dummy_call): Don't align here. (m68k_gdbarch_init): Set frame_align here.
-rw-r--r--ChangeLog.csl7
-rw-r--r--gdb/m68k-tdep.c14
2 files changed, 18 insertions, 3 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl
index 56983a32e5f..5e41d6793b0 100644
--- a/ChangeLog.csl
+++ b/ChangeLog.csl
@@ -1,3 +1,10 @@
+2006-06-09 Nathan Sidwell <nathan@codesourcery.com>
+
+ gdb/
+ * m68k-tdep.c (m68k_frame_align): New.
+ (m68k_push_dummy_call): Don't align here.
+ (m68k_gdbarch_init): Set frame_align here.
+
2006-06-08 Nathan Sidwell <nathan@codesourcery.com>
* gdb/remote.c (remote_open_1): Do preopen tasks before
diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c
index 1a4493f9bf9..4bc7e86fd82 100644
--- a/gdb/m68k-tdep.c
+++ b/gdb/m68k-tdep.c
@@ -485,6 +485,16 @@ m68k_svr4_return_value (struct gdbarch *gdbarch, struct type *type,
}
+/* Always align the frame to a 4-byte boundary. This is required on
+ some platforms and harmless on the rest. */
+
+static CORE_ADDR
+m68k_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
+{
+ /* Align the stack to four bytes. */
+ return sp & ~3;
+}
+
static CORE_ADDR
m68k_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
struct regcache *regcache, CORE_ADDR bp_addr, int nargs,
@@ -495,9 +505,6 @@ m68k_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
gdb_byte buf[4];
int i;
- /* Align the stack down to 4 bytes. Needed for coldfire. */
- sp &= ~3;
-
/* Push arguments in reverse order. */
for (i = nargs - 1; i >= 0; i--)
{
@@ -1249,6 +1256,7 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Stack grows down. */
set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
+ set_gdbarch_frame_align (gdbarch, m68k_frame_align);
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
set_gdbarch_decr_pc_after_break (gdbarch, 2);