* Makefile.in (ALLDEPFILES): Add sh64-tdep.c.
[external/binutils.git] / gdb / sh-tdep.h
1 /* Target-specific definition for a Hitachi Super-H.
2    Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
3    Free Software Foundation, Inc.
4
5    This file is part of GDB.
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program; if not, write to the Free Software
19    Foundation, Inc., 59 Temple Place - Suite 330,
20    Boston, MA 02111-1307, USA.  */
21
22 #ifndef SH_TDEP_H
23 #define SH_TDEP_H
24
25 /* Contributed by Steve Chamberlain sac@cygnus.com */
26
27 struct gdbarch_tdep
28   {
29     int FPUL_REGNUM;  /*                       sh3e, sh4 */
30     int FPSCR_REGNUM; /*                       sh3e, sh4 */
31     int DSR_REGNUM;   /* sh-dsp,      sh3-dsp            */
32     int FP_LAST_REGNUM; /*                     sh3e, sh4 */
33     int A0G_REGNUM;   /* sh-dsp,      sh3-dsp            */
34     int A0_REGNUM;    /* sh-dsp,      sh3-dsp            */
35     int A1G_REGNUM;   /* sh-dsp,      sh3-dsp            */
36     int A1_REGNUM;    /* sh-dsp,      sh3-dsp            */
37     int M0_REGNUM;    /* sh-dsp,      sh3-dsp            */
38     int M1_REGNUM;    /* sh-dsp,      sh3-dsp            */
39     int X0_REGNUM;    /* sh-dsp,      sh3-dsp            */
40     int X1_REGNUM;    /* sh-dsp,      sh3-dsp            */
41     int Y0_REGNUM;    /* sh-dsp,      sh3-dsp            */
42     int Y1_REGNUM;    /* sh-dsp,      sh3-dsp            */
43     int MOD_REGNUM;   /* sh-dsp,      sh3-dsp            */
44     int SSR_REGNUM;   /*         sh3, sh3-dsp, sh3e, sh4 */
45     int SPC_REGNUM;   /*         sh3, sh3-dsp, sh3e, sh4 */
46     int RS_REGNUM;    /* sh-dsp,      sh3-dsp            */
47     int RE_REGNUM;    /* sh-dsp,      sh3-dsp            */
48     int DR0_REGNUM;   /*                             sh4 */
49     int DR_LAST_REGNUM; /*                           sh4 */
50     int FV0_REGNUM;   /*                             sh4 */
51     int FV_LAST_REGNUM; /*                           sh4 */
52     /* FPP stands for Floating Point Pair, to avoid confusion with
53        GDB's FP0_REGNUM, which is the number of the first Floating
54        point register. Unfortunately on the sh5, the floating point
55        registers are called FR, and the floating point pairs are called FP. */
56   };
57
58 /* Registers common to all the SH variants. */
59 enum
60   {
61     R0_REGNUM = 0,
62     STRUCT_RETURN_REGNUM = 2,
63     ARG0_REGNUM = 4,
64     ARGLAST_REGNUM = 7,
65     PR_REGNUM = 17,
66     GBR_REGNUM = 18,
67     VBR_REGNUM = 19,
68     MACH_REGNUM = 20,
69     MACL_REGNUM = 21,
70     SR_REGNUM = 22,
71     FLOAT_ARG0_REGNUM = 29,
72     FLOAT_ARGLAST_REGNUM = 36
73   };
74
75 extern gdbarch_init_ftype sh64_gdbarch_init;
76 extern void sh64_show_regs (void);
77
78 #endif /* SH_TDEP_H */