Add alignment option.
[deliverable/binutils-gdb.git] / gdb / m88k-tdep.c
index 747db1bc2d5457295324b7f1be31f3dcdb39c99a..f74560e1d834fbe7e29d2c40c4aa2524b0f265c4 100644 (file)
@@ -1,5 +1,5 @@
 /* Target-machine dependent code for Motorola 88000 series, for GDB.
-   Copyright (C) 1988, 1990, 1991 Free Software Foundation, Inc.
+   Copyright 1988, 1990, 1991, 1994, 1995 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -15,14 +15,13 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "defs.h"
 #include "frame.h"
 #include "inferior.h"
 #include "value.h"
 #include "gdbcore.h"
-
 #include "symtab.h"
 #include "setjmp.h"
 #include "value.h"
@@ -32,8 +31,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 void frame_find_saved_regs ();
 
-/* is this target an m88110?  Otherwise assume m88100.  This has
-   relevance for the ways in which we screw with instruction pointers.  */ 
+/* Is this target an m88110?  Otherwise assume m88100.  This has
+   relevance for the ways in which we screw with instruction pointers.  */
+
 int target_is_m88110 = 0;
 
 /* Given a GDB frame, determine the address of the calling function's frame.
@@ -43,9 +43,9 @@ int target_is_m88110 = 0;
    For us, the frame address is its stack pointer value, so we look up
    the function prologue to determine the caller's sp value, and return it.  */
 
-FRAME_ADDR
+CORE_ADDR
 frame_chain (thisframe)
-     FRAME thisframe;
+     struct frame_info *thisframe;
 {
 
   frame_find_saved_regs (thisframe, (struct frame_saved_regs *) 0);
@@ -60,7 +60,7 @@ frame_chain (thisframe)
 
 int
 frameless_function_invocation (frame)
-     FRAME frame;
+     struct frame_info *frame;
 {
 
   frame_find_saved_regs (frame, (struct frame_saved_regs *) 0);
@@ -74,13 +74,13 @@ frameless_function_invocation (frame)
 }
 
 void
-init_extra_frame_info (fromleaf, fi)
+init_extra_frame_info (fromleaf, frame)
      int fromleaf;
-     struct frame_info *fi;
+     struct frame_info *frame;
 {
-  fi->fsr = 0;                 /* Not yet allocated */
-  fi->args_pointer = 0;                /* Unknown */
-  fi->locals_pointer = 0;      /* Unknown */
+  frame->fsr = 0;                      /* Not yet allocated */
+  frame->args_pointer = 0;             /* Unknown */
+  frame->locals_pointer = 0;   /* Unknown */
 }
 \f
 /* Examine an m88k function prologue, recording the addresses at which
@@ -204,14 +204,15 @@ next_insn (memaddr, pword1)
 /* Read a register from frames called by us (or from the hardware regs).  */
 
 static int
-read_next_frame_reg(fi, regno)
-     FRAME fi;
+read_next_frame_reg(frame, regno)
+     struct frame_info *frame;
      int regno;
 {
-  for (; fi; fi = fi->next) {
-      if (regno == SP_REGNUM) return fi->frame;
-      else if (fi->fsr->regs[regno])
-       return read_memory_integer(fi->fsr->regs[regno], 4);
+  for (; frame; frame = frame->next) {
+      if (regno == SP_REGNUM)
+       return FRAME_FP (frame);
+      else if (frame->fsr->regs[regno])
+       return read_memory_integer(frame->fsr->regs[regno], 4);
   }
   return read_register(regno);
 }
@@ -229,7 +230,7 @@ static CORE_ADDR
 examine_prologue (ip, limit, frame_sp, fsr, fi)
      register CORE_ADDR ip;
      register CORE_ADDR limit;
-     FRAME_ADDR frame_sp;
+     CORE_ADDR frame_sp;
      struct frame_saved_regs *fsr;
      struct frame_info *fi;
 {
@@ -395,7 +396,7 @@ skip_prologue (ip)
   sal = find_pc_line (ip, 0);
   limit = (sal.end) ? sal.end : 0xffffffff;
 
-  return (examine_prologue (ip, limit, (FRAME_ADDR) 0, &saved_regs_dummy,
+  return (examine_prologue (ip, limit, (CORE_ADDR) 0, &saved_regs_dummy,
                            (struct frame_info *)0 ));
 }
 
@@ -502,7 +503,7 @@ frame_args_address (fi)
 
 CORE_ADDR
 frame_saved_pc (frame)
-     FRAME frame;
+     struct frame_info *frame;
 {
   return read_next_frame_reg(frame, SRP_REGNUM);
 }
@@ -513,7 +514,7 @@ frame_saved_pc (frame)
 static void
 write_word (sp, word)
      CORE_ADDR sp;
-     unsigned LONGEST word;
+     ULONGEST word;
 {
   register int len = REGISTER_SIZE;
   char buffer[MAX_REGISTER_RAW_SIZE];
@@ -559,17 +560,15 @@ m88k_push_dummy_frame()
 void
 pop_frame ()
 {
-  register FRAME frame = get_current_frame ();
+  register struct frame_info *frame = get_current_frame ();
   register CORE_ADDR fp;
   register int regnum;
   struct frame_saved_regs fsr;
-  struct frame_info *fi;
 
-  fi = get_frame_info (frame);
-  fp = fi -> frame;
-  get_frame_saved_regs (fi, &fsr);
+  fp = FRAME_FP (frame);
+  get_frame_saved_regs (frame, &fsr);
 
-  if (PC_IN_CALL_DUMMY (read_pc(), read_register(SP_REGNUM), FRAME_FP(fi)))
+  if (PC_IN_CALL_DUMMY (read_pc (), read_register (SP_REGNUM), FRAME_FP (fi)))
     {
       /* FIXME: I think get_frame_saved_regs should be handling this so
         that we can deal with the saved registers properly (e.g. frame
@@ -605,7 +604,13 @@ pop_frame ()
          if (fsr.regs[regnum])
              write_register (regnum,
                              read_memory_integer (fsr.regs[regnum], 4));
-      write_pc(frame_saved_pc(frame));
+      write_pc (frame_saved_pc (frame));
     }
   reinit_frame_cache ();
 }
+
+void
+_initialize_m88k_tdep ()
+{
+  tm_print_insn = print_insn_m88k;
+}
This page took 0.028703 seconds and 4 git commands to generate.