OSDN Git Service

Update copyright year in most headers.
[pf3gnuchains/pf3gnuchains3x.git] / gdb / m68k-tdep.h
index bf00cf0..4967fbe 100644 (file)
@@ -1,13 +1,13 @@
 /* Target-dependent code for the Motorola 68000 series.
 
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000,
-   2001, 2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1999, 2000, 2001,
+   2003, 2004, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -16,9 +16,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., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef M68K_TDEP_H
 #define M68K_TDEP_H
@@ -31,8 +29,11 @@ enum m68k_regnum
 {
   M68K_D0_REGNUM = 0,
   M68K_D1_REGNUM = 1,
+  M68K_D2_REGNUM = 2,
+  M68K_D7_REGNUM = 7,
   M68K_A0_REGNUM = 8,
   M68K_A1_REGNUM = 9,
+  M68K_A2_REGNUM = 10,
   M68K_FP_REGNUM = 14,         /* Address of executing stack frame.  */
   M68K_SP_REGNUM = 15,         /* Address of top of stack.  */
   M68K_PS_REGNUM = 16,         /* Processor status.  */
@@ -49,15 +50,6 @@ enum m68k_regnum
 /* Size of the largest register.  */
 #define M68K_MAX_REGISTER_SIZE 12
 
-struct m68k_sigtramp_info
-{
-  /* Address of sigcontext.  */
-  CORE_ADDR sigcontext_addr;
-
-  /* Offset of registers in `struct sigcontext'.  */
-  int *sc_reg_offset;
-};
-
 /* Convention for returning structures.  */
 
 enum struct_return
@@ -66,6 +58,14 @@ enum struct_return
   reg_struct_return            /* Return "short" structures in registers.  */
 };
 
+/* Particular flavour of m68k.  */
+enum m68k_flavour
+  {
+    m68k_no_flavour,
+    m68k_coldfire_flavour,
+    m68k_fido_flavour
+  };
+
 /* Target-dependent structure in gdbarch.  */
 
 struct gdbarch_tdep
@@ -76,15 +76,34 @@ struct gdbarch_tdep
   /* The size of each entry in the jump buffer.  */
   size_t jb_elt_size;
 
-  /* Get info about sigtramp.  */
-  struct m68k_sigtramp_info (*get_sigtramp_info) (struct frame_info *);
+  /* Register in which the address to store a structure value is
+     passed to a function.  */
+  int struct_value_regnum;
 
   /* Convention for returning structures.  */
   enum struct_return struct_return;
+
+  /* Convention for returning floats.  zero in int regs, non-zero in float.  */
+  int float_return;
+
+  /* The particular flavour of m68k.  */
+  enum m68k_flavour flavour;
+
+  /* Flag set if the floating point registers are present, or assumed
+     to be present.  */
+  int fpregs_present;
+
+   /* ISA-specific data types.  */
+  struct type *m68k_ps_type;
+  struct type *m68881_ext_type;
 };
 
+/* Initialize a SVR4 architecture variant.  */
+extern void m68k_svr4_init_abi (struct gdbarch_info, struct gdbarch *);
+\f
+
 /* Functions exported from m68kbsd-tdep.c.  */
 
-extern int m68kbsd_fpreg_offset (int regnum);
+extern int m68kbsd_fpreg_offset (struct gdbarch *gdbarch, int regnum);
 
 #endif /* m68k-tdep.h */