Tue Oct 29 16:56:01 1996 Geoffrey Noer <noer@cygnus.com>
[deliverable/binutils-gdb.git] / gdb / z8k-tdep.c
index e6b5e8aff971d048b13fcc96427f8ad3504e4825..569605606abf3576fb41e3e3fa0d8194e0809a06 100644 (file)
@@ -1,5 +1,5 @@
 /* Target-machine dependent code for Zilog Z8000, for GDB.
-   Copyright (C) 1992,1993 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
 
 This file is part of GDB.
 
@@ -15,7 +15,7 @@ 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.  */
 
 /*
  Contributed by Steve Chamberlain
@@ -29,6 +29,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "gdbcmd.h"
 #include "gdbtypes.h"
 #include "dis-asm.h"
+#include "gdbcore.h"
+
 /* Return the saved PC from this frame.
 
    If the frame has a memory copy of SRP_REGNUM, use that.  If not,
@@ -36,9 +38,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 CORE_ADDR
 frame_saved_pc (frame)
-     FRAME frame;
+     struct frame_info *frame;
 {
-  return (read_memory_pointer (frame->frame + (BIG ? 4 : 2)));
+  return read_memory_pointer (frame->frame + (BIG ? 4 : 2));
 }
 
 #define IS_PUSHL(x) (BIG ? ((x & 0xfff0) == 0x91e0):((x & 0xfff0) == 0x91F0))
@@ -147,24 +149,24 @@ addr_bits_remove (x)
   return x & PTR_MASK;
 }
 
+int
 read_memory_pointer (x)
      CORE_ADDR x;
 {
-
   return read_memory_integer (ADDR_BITS_REMOVE (x), BIG ? 4 : 2);
 }
 
-FRAME_ADDR
+CORE_ADDR
 frame_chain (thisframe)
-     FRAME thisframe;
+     struct frame_info *thisframe;
 {
   if (thisframe->prev == 0)
     {
       /* This is the top of the stack, let's get the sp for real */
     }
-  if (!inside_entry_file ((thisframe)->pc))
+  if (!inside_entry_file (thisframe->pc))
     {
-      return read_memory_pointer ((thisframe)->frame);
+      return read_memory_pointer (thisframe->frame);
     }
   return 0;
 }
@@ -204,22 +206,14 @@ z8k_push_dummy_frame ()
 }
 
 int
-print_insn (memaddr, stream)
-     CORE_ADDR memaddr;
-     FILE *stream;
+gdb_print_insn_z8k (memaddr, info)
+     bfd_vma memaddr;
+     disassemble_info *info;
 {
-  disassemble_info info;
-
-  GDB_INIT_DISASSEMBLE_INFO(info, stream);
-
   if (BIG)
-    {
-      return print_insn_z8001 ((bfd_vma) memaddr, &info);
-    }
+    return print_insn_z8001 (memaddr, info);
   else
-    {
-      return print_insn_z8002 ((bfd_vma) memaddr, &info);
-    }
+    return print_insn_z8002 (memaddr, info);
 }
 
 /* Fetch the instruction at ADDR, returning 0 if ADDR is beyond LIM or
@@ -268,7 +262,7 @@ frame_find_saved_regs (fip, fsrp)
   pc = skip_adjust (get_pc_function_start (fip->pc), &locals);
 
   {
-    adr = fip->frame - locals;
+    adr = FRAME_FP (fip) - locals;
     for (i = 0; i < 8; i++)
       {
        int word = read_memory_short (pc);
@@ -304,41 +298,42 @@ saved_pc_after_call ()
 }
 
 
-extract_return_value(type, regbuf, valbuf)
-struct type *type;
-char *regbuf;
-char *valbuf;
+extract_return_value (type, regbuf, valbuf)
+     struct type *type;
+     char *regbuf;
+     char *valbuf;
 {
   int b;
-  int len = TYPE_LENGTH(type);
+  int len = TYPE_LENGTH (type);
 
-  for (b = 0; b < len; b += 2) {
-    int todo = len - b;
-    if (todo > 2)
-      todo = 2;
-    memcpy(valbuf + b, regbuf + b, todo);
-  }
+  for (b = 0; b < len; b += 2)
+    {
+      int todo = len - b;
+
+      if (todo > 2)
+       todo = 2;
+      memcpy (valbuf + b, regbuf + b, todo);
+    }
 }
 
 void
-write_return_value(type, valbuf)
-struct type *type;
-char *valbuf;
+write_return_value (type, valbuf)
+     struct type *type;
+     char *valbuf;
 {
   int reg;
   int len;
-  for (len = 0; len <  TYPE_LENGTH(type); len += 2)
-    {
-      write_register_bytes(REGISTER_BYTE(len /2  + 2), valbuf + len, 2);
-    }
+
+  for (len = 0; len < TYPE_LENGTH (type); len += 2)
+    write_register_bytes (REGISTER_BYTE (len / 2  + 2), valbuf + len, 2);
 }
 
 void
-store_struct_return(addr, sp)
-CORE_ADDR addr;
-CORE_ADDR sp;
+store_struct_return (addr, sp)
+     CORE_ADDR addr;
+     CORE_ADDR sp;
 {
-  write_register(2, addr);
+  write_register (2, addr);
 }
 
 
@@ -352,8 +347,8 @@ print_register_hook (regno)
 
       read_relative_register_raw_bytes (regno, (char *) (l + 0));
       read_relative_register_raw_bytes (regno + 1, (char *) (l + 1));
-      printf ("\t");
-      printf ("%04x%04x", l[0], l[1]);
+      printf_unfiltered ("\t");
+      printf_unfiltered ("%04x%04x", l[0], l[1]);
     }
 
   if ((regno & 3) == 0 && regno < 16)
@@ -365,8 +360,8 @@ print_register_hook (regno)
       read_relative_register_raw_bytes (regno + 2, (char *) (l + 2));
       read_relative_register_raw_bytes (regno + 3, (char *) (l + 3));
 
-      printf ("\t");
-      printf ("%04x%04x%04x%04x", l[0], l[1], l[2], l[3]);
+      printf_unfiltered ("\t");
+      printf_unfiltered ("%04x%04x%04x%04x", l[0], l[1], l[2], l[3]);
     }
   if (regno == 15)
     {
@@ -375,37 +370,15 @@ print_register_hook (regno)
 
       read_relative_register_raw_bytes (regno, (char *) (&rval));
 
-      printf ("\n");
+      printf_unfiltered ("\n");
       for (i = 0; i < 10; i += 2)
        {
-         printf ("(sp+%d=%04x)", i, read_memory_short (rval + i));
+         printf_unfiltered ("(sp+%d=%04x)", i, read_memory_short (rval + i));
        }
     }
 
 }
 
-void
-register_convert_to_virtual (regnum, from, to)
-     unsigned char *from;
-     unsigned char *to;
-{
-  to[0] = from[0];
-  to[1] = from[1];
-  to[2] = from[2];
-  to[3] = from[3];
-}
-
-void
-register_convert_to_raw (regnum, to, from)
-     char *to;
-     char *from;
-{
-  to[0] = from[0];
-  to[1] = from[1];
-  to[2] = from[2];
-  to[3] = from[3];
-}
-
 void
 z8k_pop_frame ()
 {
@@ -421,7 +394,7 @@ z8k_set_pointer_size (newsize)
 
   if (oldsize != newsize)
     {
-      printf ("pointer size set to %d bits\n", newsize);
+      printf_unfiltered ("pointer size set to %d bits\n", newsize);
       oldsize = newsize;
       if (newsize == 32)
        {
@@ -449,7 +422,6 @@ unsegmented_command (args, from_tty)
      int from_tty;
 {
   z8k_set_pointer_size (16);
-
 }
 
 static void
@@ -457,12 +429,15 @@ set_memory (args, from_tty)
      char *args;
      int from_tty;
 {
-  printf ("\"set memory\" must be followed by the name of a memory subcommand.\n");
-  help_list (setmemorylist, "set memory ", -1, stdout);
+  printf_unfiltered ("\"set memory\" must be followed by the name of a memory subcommand.\n");
+  help_list (setmemorylist, "set memory ", -1, gdb_stdout);
 }
 
+void
 _initialize_z8ktdep ()
 {
+  tm_print_insn = gdb_print_insn_z8k;
+
   add_prefix_cmd ("memory", no_class, set_memory,
                  "set the memory model", &setmemorylist, "set memory ", 0,
                  &setlist);
This page took 0.02765 seconds and 4 git commands to generate.