Commit | Line | Data |
---|---|---|
a7df09ae | 1 | /* This file defines the interface between the h8300 simulator and gdb. |
9b254dd1 | 2 | Copyright (C) 2002, 2007, 2008 Free Software Foundation, Inc. |
a7df09ae | 3 | |
1d52ba21 | 4 | This file is part of GDB. |
a7df09ae | 5 | |
1d52ba21 JB |
6 | This program is free software; you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation; either version 3 of the License, or | |
9 | (at your option) any later version. | |
a7df09ae | 10 | |
1d52ba21 JB |
11 | This program is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
a7df09ae | 15 | |
1d52ba21 JB |
16 | You should have received a copy of the GNU General Public License |
17 | along with this program. If not, see <http://www.gnu.org/licenses/>. */ | |
88ff637d | 18 | |
a7df09ae KH |
19 | #if !defined (SIM_H8300_H) |
20 | #define SIM_H8300_H | |
21 | ||
22 | #ifdef __cplusplus | |
88ff637d AV |
23 | extern "C" { //} |
24 | #endif | |
a7df09ae KH |
25 | |
26 | /* The simulator makes use of the following register information. */ | |
27 | ||
88ff637d AV |
28 | enum sim_h8300_regs |
29 | { | |
467e9706 AV |
30 | /* Registers common to all the H8 variants. */ |
31 | /* Start here: */ | |
a7df09ae | 32 | SIM_H8300_R0_REGNUM, |
467e9706 AV |
33 | SIM_H8300_R1_REGNUM, |
34 | SIM_H8300_R2_REGNUM, | |
35 | SIM_H8300_R3_REGNUM, | |
36 | SIM_H8300_R4_REGNUM, | |
37 | SIM_H8300_R5_REGNUM, | |
38 | SIM_H8300_R6_REGNUM, | |
39 | SIM_H8300_R7_REGNUM, | |
88ff637d | 40 | |
467e9706 AV |
41 | SIM_H8300_CCR_REGNUM, /* Contains processor status */ |
42 | SIM_H8300_PC_REGNUM, /* Contains program counter */ | |
43 | /* End here */ | |
a7df09ae KH |
44 | |
45 | SIM_H8300_EXR_REGNUM, /* Contains extended processor status | |
467e9706 AV |
46 | H8S and higher */ |
47 | SIM_H8300_MACL_REGNUM, /* Lower part of MAC register (26xx only)*/ | |
48 | SIM_H8300_MACH_REGNUM, /* High part of MAC register (26xx only) */ | |
88ff637d | 49 | |
467e9706 AV |
50 | SIM_H8300_CYCLE_REGNUM, |
51 | SIM_H8300_INST_REGNUM, | |
52 | SIM_H8300_TICK_REGNUM | |
88ff637d AV |
53 | }; |
54 | ||
55 | enum | |
56 | { | |
a7df09ae | 57 | SIM_H8300_ARG_FIRST_REGNUM = SIM_H8300_R0_REGNUM, /* first reg in which an arg |
467e9706 | 58 | may be passed */ |
a7df09ae KH |
59 | SIM_H8300_ARG_LAST_REGNUM = SIM_H8300_R3_REGNUM, /* last reg in which an arg |
60 | may be passed */ | |
61 | SIM_H8300_FP_REGNUM = SIM_H8300_R6_REGNUM, /* Contain address of executing | |
467e9706 AV |
62 | stack frame */ |
63 | SIM_H8300_SP_REGNUM = SIM_H8300_R7_REGNUM /* Contains address of top of stack */ | |
88ff637d AV |
64 | }; |
65 | ||
66 | enum | |
67 | { | |
467e9706 AV |
68 | SIM_H8300_NUM_COMMON_REGS = 10, |
69 | SIM_H8300_S_NUM_REGS = 13, | |
70 | SIM_H8300_NUM_REGS = 16 | |
88ff637d AV |
71 | }; |
72 | ||
a7df09ae | 73 | #ifdef __cplusplus |
88ff637d AV |
74 | } |
75 | #endif | |
a7df09ae | 76 | |
88ff637d | 77 | #endif /* SIM_H8300_H */ |