2003-08-01 Michael Snyder <msnyder@redhat.com>
authorMichael Snyder <msnyder@vmware.com>
Fri, 1 Aug 2003 19:52:49 +0000 (19:52 +0000)
committerMichael Snyder <msnyder@vmware.com>
Fri, 1 Aug 2003 19:52:49 +0000 (19:52 +0000)
* sh-tdep.c (sh_frame_align): New gdbarch method.
(sh_gdbarch_init): Set up frame_align method.

gdb/ChangeLog
gdb/sh-tdep.c

index 536f34f5e96731280c3ebd49ca5e848a2951f0ab..6964774a1cdff7f31f77fcdac9289b03df38bfe2 100644 (file)
@@ -1,3 +1,8 @@
+2003-08-01  Michael Snyder  <msnyder@redhat.com>
+
+       * sh-tdep.c (sh_frame_align): New gdbarch method.
+       (sh_gdbarch_init): Set up frame_align method.
+
 2003-07-31  Michael Snyder  <msnyder@redhat.com>
 
        * value.h, values.c, infcall.c, infcmd.c: Revert 07-30 change,
index 36fa9d09100e30999084b4fdff42f78f58466ef9..dc3e99228d2607c68d8fadc34f10a3019999d091 100644 (file)
@@ -2028,6 +2028,12 @@ sh64_pop_frame (void)
   flush_cached_frames ();
 }
 
+static CORE_ADDR
+sh_frame_align (struct gdbarch *ignore, CORE_ADDR sp)
+{
+  return sp & ~3;
+}
+
 /* Function: push_arguments
    Setup the function arguments for calling a function in the inferior.
 
@@ -2090,7 +2096,7 @@ sh_push_dummy_call (struct gdbarch *gdbarch, CORE_ADDR func_addr,
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch); 
 
   /* first force sp to a 4-byte alignment */
-  sp = sp & ~3;
+  sp = sh_frame_align (gdbarch, sp);
 
   /* The "struct return pointer" pseudo-argument has its own dedicated 
      register */
@@ -4356,6 +4362,7 @@ sh_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_deprecated_pop_frame (gdbarch, sh_pop_frame);
   set_gdbarch_deprecated_frame_saved_pc (gdbarch, sh_frame_saved_pc);
   set_gdbarch_deprecated_saved_pc_after_call (gdbarch, sh_saved_pc_after_call);
+  set_gdbarch_frame_align (gdbarch, sh_frame_align);
 
   switch (info.bfd_arch_info->mach)
     {