include/opcode/
[deliverable/binutils-gdb.git] / gdb / mt-tdep.c
index 95184951db612776a9359a60530b17f0e3ecc8f4..47246fbf0b0e3acfd8ad0ba84ec6add6ab36be28 100644 (file)
@@ -1,6 +1,6 @@
 /* Target-dependent code for Morpho mt processor, for GDB.
 
-   Copyright (C) 2005, 2007 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -36,6 +36,7 @@
 #include "dwarf2-frame.h"
 #include "infcall.h"
 #include "gdb_assert.h"
+#include "language.h"
 
 enum mt_arch_constants
 {
@@ -140,7 +141,7 @@ enum mt_gdb_regnums
 /* Return name of register number specified by REGNUM.  */
 
 static const char *
-mt_register_name (int regnum)
+mt_register_name (struct gdbarch *gdbarch, int regnum)
 {
   static const char *const register_names[] = {
     /* CPU regs.  */
@@ -311,7 +312,7 @@ mt_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
   if (group == all_reggroup)
     return (regnum >= 0
            && regnum < MT_NUM_REGS + MT_NUM_PSEUDO_REGS
-           && mt_register_name (regnum)[0] != '\0');
+           && mt_register_name (gdbarch, regnum)[0] != '\0');
 
   if (group == general_reggroup)
     return (regnum >= MT_R0_REGNUM && regnum <= MT_R15_REGNUM);
@@ -332,9 +333,9 @@ mt_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
    values.  */
 
 static enum return_value_convention
-mt_return_value (struct gdbarch *gdbarch, struct type *type,
-                 struct regcache *regcache, gdb_byte *readbuf,
-                 const gdb_byte *writebuf)
+mt_return_value (struct gdbarch *gdbarch, struct type *func_type,
+                struct type *type, struct regcache *regcache,
+                gdb_byte *readbuf, const gdb_byte *writebuf)
 {
   if (TYPE_LENGTH (type) > 4)
     {
@@ -398,7 +399,7 @@ mt_return_value (struct gdbarch *gdbarch, struct type *type,
    call.  */
 
 static CORE_ADDR
-mt_skip_prologue (CORE_ADDR pc)
+mt_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
 {
   CORE_ADDR func_addr = 0, func_end = 0;
   char *func_name;
@@ -410,7 +411,7 @@ mt_skip_prologue (CORE_ADDR pc)
       struct symbol *sym;
 
       /* Found a function.  */
-      sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL, NULL);
+      sym = lookup_symbol (func_name, NULL, VAR_DOMAIN, NULL);
       if (sym && SYMBOL_LANGUAGE (sym) != language_asm)
        {
          /* Don't use this trick for assembly source files.  */
@@ -451,13 +452,14 @@ mt_skip_prologue (CORE_ADDR pc)
    The BP for ms2 is defined as 0x69000000 (illegal)  */
 
 static const gdb_byte *
-mt_breakpoint_from_pc (CORE_ADDR *bp_addr, int *bp_size)
+mt_breakpoint_from_pc (struct gdbarch *gdbarch, CORE_ADDR *bp_addr,
+                      int *bp_size)
 {
   static gdb_byte ms1_breakpoint[] = { 0x68, 0, 0, 0 };
   static gdb_byte ms2_breakpoint[] = { 0x69, 0, 0, 0 };
 
   *bp_size = 4;
-  if (gdbarch_bfd_arch_info (current_gdbarch)->mach == bfd_mach_ms2)
+  if (gdbarch_bfd_arch_info (gdbarch)->mach == bfd_mach_ms2)
     return ms2_breakpoint;
   
   return ms1_breakpoint;
@@ -619,8 +621,8 @@ mt_frame_align (struct gdbarch *gdbarch, CORE_ADDR sp)
 
 static void
 mt_registers_info (struct gdbarch *gdbarch,
-                   struct ui_file *file,
-                   struct frame_info *frame, int regnum, int all)
+                  struct ui_file *file,
+                  struct frame_info *frame, int regnum, int all)
 {
   if (regnum == -1)
     {
@@ -660,9 +662,9 @@ mt_registers_info (struct gdbarch *gdbarch,
          frame_register_read (frame, regnum, buff);
 
          fputs_filtered (gdbarch_register_name
-                         (current_gdbarch, regnum), file);
+                         (gdbarch, regnum), file);
          print_spaces_filtered (15 - strlen (gdbarch_register_name
-                                               (current_gdbarch, regnum)),
+                                               (gdbarch, regnum)),
                                 file);
          fputs_filtered ("0x", file);
 
@@ -684,13 +686,14 @@ mt_registers_info (struct gdbarch *gdbarch,
          frame_register_read (frame, MT_COPRO_REGNUM, buf);
          /* And print.  */
          regnum = MT_COPRO_PSEUDOREG_REGNUM;
-         fputs_filtered (gdbarch_register_name (current_gdbarch, regnum),
+         fputs_filtered (gdbarch_register_name (gdbarch, regnum),
                          file);
          print_spaces_filtered (15 - strlen (gdbarch_register_name
-                                               (current_gdbarch, regnum)),
+                                               (gdbarch, regnum)),
                                 file);
          val_print (register_type (gdbarch, regnum), buf,
-                    0, 0, file, 0, 1, 0, Val_no_prettyprint);
+                    0, 0, file, 0, 1, 0, Val_no_prettyprint,
+                    current_language);
          fputs_filtered ("\n", file);
        }
       else if (regnum == MT_MAC_REGNUM || regnum == MT_MAC_PSEUDOREG_REGNUM)
@@ -717,10 +720,10 @@ mt_registers_info (struct gdbarch *gdbarch,
 
          /* And print.  */
          regnum = MT_MAC_PSEUDOREG_REGNUM;
-         fputs_filtered (gdbarch_register_name (current_gdbarch, regnum),
+         fputs_filtered (gdbarch_register_name (gdbarch, regnum),
                          file);
          print_spaces_filtered (15 - strlen (gdbarch_register_name
-                                             (current_gdbarch, regnum)),
+                                             (gdbarch, regnum)),
                                 file);
          fputs_filtered ("0x", file);
          print_longest (file, 'x', 0, newmac);
@@ -895,8 +898,8 @@ mt_frame_unwind_cache (struct frame_info *next_frame,
   /* Grab the frame-relative values of SP and FP, needed below. 
      The frame_saved_register function will find them on the
      stack or in the registers as appropriate.  */
-  frame_unwind_unsigned_register (next_frame, MT_SP_REGNUM, &sp);
-  frame_unwind_unsigned_register (next_frame, MT_FP_REGNUM, &fp);
+  sp = frame_unwind_register_unsigned (next_frame, MT_SP_REGNUM);
+  fp = frame_unwind_register_unsigned (next_frame, MT_FP_REGNUM);
 
   start_addr = frame_func_unwind (next_frame, NORMAL_FRAME);
 
@@ -1012,7 +1015,7 @@ mt_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
 {
   ULONGEST pc;
 
-  frame_unwind_unsigned_register (next_frame, MT_PC_REGNUM, &pc);
+  pc = frame_unwind_register_unsigned (next_frame, MT_PC_REGNUM);
   return pc;
 }
 
@@ -1021,7 +1024,7 @@ mt_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
 {
   ULONGEST sp;
 
-  frame_unwind_unsigned_register (next_frame, MT_SP_REGNUM, &sp);
+  sp = frame_unwind_register_unsigned (next_frame, MT_SP_REGNUM);
   return sp;
 }
 
This page took 0.026081 seconds and 4 git commands to generate.