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