Commit | Line | Data |
---|---|---|
a7df09ae KH |
1 | /* This file defines the interface between the h8300 simulator and gdb. |
2 | Copyright (C) 2002 Free Software Foundation, Inc. | |
3 | ||
4 | This file is part of GDB. | |
5 | ||
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 2 of the License, or | |
9 | (at your option) any later version. | |
10 | ||
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. | |
15 | ||
16 | You should have received a copy of the GNU General Public License | |
17 | along with this program; if not, write to the Free Software | |
88ff637d AV |
18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ |
19 | ||
a7df09ae KH |
20 | #if !defined (SIM_H8300_H) |
21 | #define SIM_H8300_H | |
22 | ||
23 | #ifdef __cplusplus | |
88ff637d AV |
24 | extern "C" { //} |
25 | #endif | |
a7df09ae KH |
26 | |
27 | /* The simulator makes use of the following register information. */ | |
28 | ||
88ff637d AV |
29 | enum sim_h8300_regs |
30 | { | |
467e9706 AV |
31 | /* Registers common to all the H8 variants. */ |
32 | /* Start here: */ | |
a7df09ae | 33 | SIM_H8300_R0_REGNUM, |
467e9706 AV |
34 | SIM_H8300_R1_REGNUM, |
35 | SIM_H8300_R2_REGNUM, | |
36 | SIM_H8300_R3_REGNUM, | |
37 | SIM_H8300_R4_REGNUM, | |
38 | SIM_H8300_R5_REGNUM, | |
39 | SIM_H8300_R6_REGNUM, | |
40 | SIM_H8300_R7_REGNUM, | |
88ff637d | 41 | |
467e9706 AV |
42 | SIM_H8300_CCR_REGNUM, /* Contains processor status */ |
43 | SIM_H8300_PC_REGNUM, /* Contains program counter */ | |
44 | /* End here */ | |
a7df09ae KH |
45 | |
46 | SIM_H8300_EXR_REGNUM, /* Contains extended processor status | |
467e9706 AV |
47 | H8S and higher */ |
48 | SIM_H8300_MACL_REGNUM, /* Lower part of MAC register (26xx only)*/ | |
49 | SIM_H8300_MACH_REGNUM, /* High part of MAC register (26xx only) */ | |
88ff637d | 50 | |
467e9706 AV |
51 | SIM_H8300_CYCLE_REGNUM, |
52 | SIM_H8300_INST_REGNUM, | |
53 | SIM_H8300_TICK_REGNUM | |
88ff637d AV |
54 | }; |
55 | ||
56 | enum | |
57 | { | |
a7df09ae | 58 | SIM_H8300_ARG_FIRST_REGNUM = SIM_H8300_R0_REGNUM, /* first reg in which an arg |
467e9706 | 59 | may be passed */ |
a7df09ae KH |
60 | SIM_H8300_ARG_LAST_REGNUM = SIM_H8300_R3_REGNUM, /* last reg in which an arg |
61 | may be passed */ | |
62 | SIM_H8300_FP_REGNUM = SIM_H8300_R6_REGNUM, /* Contain address of executing | |
467e9706 AV |
63 | stack frame */ |
64 | SIM_H8300_SP_REGNUM = SIM_H8300_R7_REGNUM /* Contains address of top of stack */ | |
88ff637d AV |
65 | }; |
66 | ||
67 | enum | |
68 | { | |
467e9706 AV |
69 | SIM_H8300_NUM_COMMON_REGS = 10, |
70 | SIM_H8300_S_NUM_REGS = 13, | |
71 | SIM_H8300_NUM_REGS = 16 | |
88ff637d AV |
72 | }; |
73 | ||
a7df09ae | 74 | #ifdef __cplusplus |
88ff637d AV |
75 | } |
76 | #endif | |
a7df09ae | 77 | |
88ff637d | 78 | #endif /* SIM_H8300_H */ |