2003-08-20 Michael Snyder <msnyder@redhat.com>
[deliverable/binutils-gdb.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 /* Information that is dependent on the processor variant. */
28
29 enum sh_abi
30 {
31 SH_ABI_UNKNOWN,
32 SH_ABI_32,
33 SH_ABI_64
34 };
35
36 struct gdbarch_tdep
37 {
38 int PR_REGNUM;
39 int FPUL_REGNUM; /* sh3e, sh4 */
40 int FPSCR_REGNUM; /* sh3e, sh4 */
41 int SR_REGNUM; /* sh-dsp, sh3, sh3-dsp, sh3e, sh4 */
42 int DSR_REGNUM; /* sh-dsp, sh3-dsp */
43 int FP_LAST_REGNUM; /* sh3e, sh4 */
44 int A0G_REGNUM; /* sh-dsp, sh3-dsp */
45 int A0_REGNUM; /* sh-dsp, sh3-dsp */
46 int A1G_REGNUM; /* sh-dsp, sh3-dsp */
47 int A1_REGNUM; /* sh-dsp, sh3-dsp */
48 int M0_REGNUM; /* sh-dsp, sh3-dsp */
49 int M1_REGNUM; /* sh-dsp, sh3-dsp */
50 int X0_REGNUM; /* sh-dsp, sh3-dsp */
51 int X1_REGNUM; /* sh-dsp, sh3-dsp */
52 int Y0_REGNUM; /* sh-dsp, sh3-dsp */
53 int Y1_REGNUM; /* sh-dsp, sh3-dsp */
54 int MOD_REGNUM; /* sh-dsp, sh3-dsp */
55 int SSR_REGNUM; /* sh3, sh3-dsp, sh3e, sh4 */
56 int SPC_REGNUM; /* sh3, sh3-dsp, sh3e, sh4 */
57 int RS_REGNUM; /* sh-dsp, sh3-dsp */
58 int RE_REGNUM; /* sh-dsp, sh3-dsp */
59 int DR0_REGNUM; /* sh4 */
60 int DR_LAST_REGNUM; /* sh4 */
61 int FV0_REGNUM; /* sh4 */
62 int FV_LAST_REGNUM; /* sh4 */
63 /* FPP stands for Floating Point Pair, to avoid confusion with
64 GDB's FP0_REGNUM, which is the number of the first Floating
65 point register. Unfortunately on the sh5, the floating point
66 registers are called FR, and the floating point pairs are called FP. */
67 int TR7_REGNUM; /* sh5-media*/
68 int FPP0_REGNUM; /* sh5-media*/
69 int FPP_LAST_REGNUM; /* sh5-media*/
70 int R0_C_REGNUM; /* sh5-compact*/
71 int R_LAST_C_REGNUM; /* sh5-compact*/
72 int PC_C_REGNUM; /* sh5-compact*/
73 int GBR_C_REGNUM; /* sh5-compact*/
74 int MACH_C_REGNUM; /* sh5-compact*/
75 int MACL_C_REGNUM; /* sh5-compact*/
76 int PR_C_REGNUM; /* sh5-compact*/
77 int T_C_REGNUM; /* sh5-compact*/
78 int FPSCR_C_REGNUM; /* sh5-compact*/
79 int FPUL_C_REGNUM; /* sh5-compact*/
80 int FP0_C_REGNUM; /* sh5-compact*/
81 int FP_LAST_C_REGNUM; /* sh5-compact*/
82 int DR0_C_REGNUM; /* sh5-compact*/
83 int DR_LAST_C_REGNUM; /* sh5-compact*/
84 int FV0_C_REGNUM; /* sh5-compact*/
85 int FV_LAST_C_REGNUM; /* sh5-compact*/
86 int ARG0_REGNUM;
87 int ARGLAST_REGNUM;
88 int FLOAT_ARG0_REGNUM; /* sh4 */
89 int FLOAT_ARGLAST_REGNUM; /* sh4, sh5 */
90 int RETURN_REGNUM;
91 enum sh_abi sh_abi;
92 };
93
94 /* Registers common to all the SH variants. */
95 enum
96 {
97 R0_REGNUM = 0,
98 STRUCT_RETURN_REGNUM = 2,
99 ARG0_REGNUM = 4, /* Used in h8300-tdep.c */
100 ARGLAST_REGNUM = 7, /* Used in h8300-tdep.c */
101 PR_REGNUM = 17, /* used in sh3-rom.c */
102 GBR_REGNUM = 18,
103 VBR_REGNUM = 19,
104 MACH_REGNUM = 20,
105 MACL_REGNUM = 21,
106 SR_REGNUM = 22
107 };
108
109 #endif /* SH_TDEP_H */
This page took 0.034497 seconds and 5 git commands to generate.