Commit | Line | Data |
---|---|---|
88ff637d AV |
1 | /* This file defines the interface between the h8300 simulator and gdb.\r |
2 | Copyright (C) 2002 Free Software Foundation, Inc.\r | |
3 | \r | |
4 | This file is part of GDB.\r | |
5 | \r | |
6 | This program is free software; you can redistribute it and/or modify\r | |
7 | it under the terms of the GNU General Public License as published by\r | |
8 | the Free Software Foundation; either version 2 of the License, or\r | |
9 | (at your option) any later version.\r | |
10 | \r | |
11 | This program is distributed in the hope that it will be useful,\r | |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of\r | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r | |
14 | GNU General Public License for more details.\r | |
15 | \r | |
16 | You should have received a copy of the GNU General Public License\r | |
17 | along with this program; if not, write to the Free Software\r | |
18 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ | |
19 | ||
20 | #if !defined (SIM_H8300_H)\r | |
21 | #define SIM_H8300_H\r | |
22 | \r | |
23 | #ifdef __cplusplus\r | |
24 | extern "C" { //} | |
25 | #endif | |
26 | \r | |
27 | /* The simulator makes use of the following register information. */ \r | |
28 | \r | |
29 | /* Registers common to all the H8 variants. */ | |
30 | enum sim_h8300_regs | |
31 | { | |
32 | H8300_R0_REGNUM = 0, | |
33 | H8300_R1_REGNUM, | |
34 | H8300_R2_REGNUM, | |
35 | H8300_R3_REGNUM, | |
36 | H8300_R4_REGNUM, | |
37 | H8300_R5_REGNUM, | |
38 | H8300_R6_REGNUM, | |
39 | H8300_R7_REGNUM, | |
40 | ||
41 | H8300_PC_REGNUM, /* Contains program counter */ | |
42 | H8300_CCR_REGNUM, /* Contains processor status */ | |
43 | ||
44 | H8300_S_EXR_REGNUM, /* Contains extended processor status */ | |
45 | H8300_S_MACL_REGNUM,/* Lower part of MAC register */ | |
46 | H8300_S_MACH_REGNUM,/* High part of MAC register */ | |
47 | ||
48 | H8300_SIM_CYCLE_REGNUM, | |
49 | H8300_SIM_INST_REGNUM, | |
50 | H8300_SIM_TICK_REGNUM | |
51 | }; | |
52 | ||
53 | enum | |
54 | { | |
55 | ARG_FIRST_REGNUM = H8300_R0_REGNUM, /* first reg in which an arg | |
56 | may be passed */ | |
57 | ARG_LAST_REGNUM = H8300_R3_REGNUM, /* last reg in which an arg | |
58 | may be passed */ | |
59 | H8300_FP_REGNUM = H8300_R6_REGNUM, /* Contain address of executing | |
60 | stack frame */ | |
61 | H8300_SP_REGNUM = H8300_R7_REGNUM /* Contains address of top of stack */ | |
62 | }; | |
63 | ||
64 | enum | |
65 | { | |
66 | H8300_NUM_COMMON_REGS = 10, | |
67 | H8300_S_NUM_REGS = 13, | |
68 | H8300_NUM_SIM_REGS = 16 | |
69 | }; | |
70 | ||
71 | #ifdef __cplusplus\r | |
72 | } | |
73 | #endif | |
74 | \r | |
75 | #endif /* SIM_H8300_H */ |