OSDN Git Service

Regenerate cgen files, update copyright year.
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / cgen-cpu / mep / mep-core1-model.h
1 /* Simulator model support for mepcore1.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright (C) 2000-2010 Red Hat, Inc.
6
7 This file is part of the Red Hat simulators.
8
9
10 */
11
12 #ifndef MEPCORE1_MODEL_H
13 #define MEPCORE1_MODEL_H
14
15 #include "cgen-cpu.h"
16 #include "cgen-model.h"
17
18 namespace mep_ext1
19 {
20 using namespace cgen;
21
22 class mepcore1_mep_model : public cgen_model
23 {
24 public:
25   mepcore1_mep_model (mep_ext1_cpu *cpu);
26
27   // Call the proper unit modelling function for the given insn.
28   UINT model_before (mep_ext1_cpu *current_cpu, mepcore1_scache* sem)
29     {
30       return (this->*(timing[sem->idesc->sem_index].model_before)) (current_cpu, sem);
31     } 
32   UINT model_after (mep_ext1_cpu *current_cpu, mepcore1_scache* sem)
33     {
34       return (this->*(timing[sem->idesc->sem_index].model_after)) (current_cpu, sem);
35     } 
36
37 // Function unit handlers
38 // To be overridden as needed.
39   virtual UINT model_u_store_ctrl_reg_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, INT /*storereg*/)
40     {
41       return 0;
42     }
43   virtual UINT model_u_store_ctrl_reg_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced, INT /*storereg*/)
44     {
45       return timing[idesc->sem_index].units[unit_num].done;
46     }
47   virtual UINT model_u_use_ctrl_reg_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, INT /*usereg*/)
48     {
49       return 0;
50     }
51   virtual UINT model_u_use_ctrl_reg_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced, INT /*usereg*/)
52     {
53       return timing[idesc->sem_index].units[unit_num].done;
54     }
55   virtual UINT model_u_use_gpr_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, INT /*usereg*/)
56     {
57       return 0;
58     }
59   virtual UINT model_u_use_gpr_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced, INT /*usereg*/)
60     {
61       return timing[idesc->sem_index].units[unit_num].done;
62     }
63   virtual UINT model_u_mul_gpr_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, INT /*resultreg*/)
64     {
65       return 0;
66     }
67   virtual UINT model_u_mul_gpr_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced, INT /*resultreg*/)
68     {
69       return timing[idesc->sem_index].units[unit_num].done;
70     }
71   virtual UINT model_u_ldcb_gpr_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, INT /*loadreg*/)
72     {
73       return 0;
74     }
75   virtual UINT model_u_ldcb_gpr_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
76     {
77       return timing[idesc->sem_index].units[unit_num].done;
78     }
79   virtual UINT model_u_load_gpr_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, INT /*loadreg*/)
80     {
81       return 0;
82     }
83   virtual UINT model_u_load_gpr_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
84     {
85       return timing[idesc->sem_index].units[unit_num].done;
86     }
87   virtual UINT model_u_ldcb_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num)
88     {
89       return 0;
90     }
91   virtual UINT model_u_ldcb_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced)
92     {
93       return timing[idesc->sem_index].units[unit_num].done;
94     }
95   virtual UINT model_u_stcb_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num)
96     {
97       return 0;
98     }
99   virtual UINT model_u_stcb_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced)
100     {
101       return timing[idesc->sem_index].units[unit_num].done;
102     }
103   virtual UINT model_u_divide_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num)
104     {
105       return 0;
106     }
107   virtual UINT model_u_divide_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced)
108     {
109       return timing[idesc->sem_index].units[unit_num].done;
110     }
111   virtual UINT model_u_multiply_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num)
112     {
113       return 0;
114     }
115   virtual UINT model_u_multiply_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced)
116     {
117       return timing[idesc->sem_index].units[unit_num].done;
118     }
119   virtual UINT model_u_branch_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num)
120     {
121       return 0;
122     }
123   virtual UINT model_u_branch_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced)
124     {
125       return timing[idesc->sem_index].units[unit_num].done;
126     }
127   virtual UINT model_u_exec_before (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num)
128     {
129       return 0;
130     }
131   virtual UINT model_u_exec_after (mep_ext1_cpu *cpu, const struct mepcore1_idesc *idesc, int unit_num, unsigned long long referenced)
132     {
133       return timing[idesc->sem_index].units[unit_num].done;
134     }
135
136 protected:
137   // These methods call the appropriate unit modeller(s) for each insn.
138   UINT model_stcb_r_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
139   UINT model_stcb_r_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
140   UINT model_ldcb_r_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
141   UINT model_ldcb_r_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
142   UINT model_pref_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
143   UINT model_pref_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
144   UINT model_prefd_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
145   UINT model_prefd_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
146   UINT model_casb3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
147   UINT model_casb3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
148   UINT model_cash3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
149   UINT model_cash3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
150   UINT model_casw3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
151   UINT model_casw3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
152   UINT model_sbcp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
153   UINT model_sbcp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
154   UINT model_lbcp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
155   UINT model_lbcp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
156   UINT model_lbucp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
157   UINT model_lbucp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
158   UINT model_shcp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
159   UINT model_shcp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
160   UINT model_lhcp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
161   UINT model_lhcp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
162   UINT model_lhucp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
163   UINT model_lhucp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
164   UINT model_lbucpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
165   UINT model_lbucpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
166   UINT model_lhucpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
167   UINT model_lhucpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
168   UINT model_lbucpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
169   UINT model_lbucpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
170   UINT model_lhucpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
171   UINT model_lhucpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
172   UINT model_lbucpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
173   UINT model_lbucpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
174   UINT model_lhucpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
175   UINT model_lhucpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
176   UINT model_uci_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
177   UINT model_uci_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
178   UINT model_dsp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
179   UINT model_dsp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
180   UINT model_sb_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
181   UINT model_sb_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
182   UINT model_sh_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
183   UINT model_sh_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
184   UINT model_sw_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
185   UINT model_sw_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
186   UINT model_lb_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
187   UINT model_lb_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
188   UINT model_lh_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
189   UINT model_lh_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
190   UINT model_lw_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
191   UINT model_lw_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
192   UINT model_lbu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
193   UINT model_lbu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
194   UINT model_lhu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
195   UINT model_lhu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
196   UINT model_sw_sp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
197   UINT model_sw_sp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
198   UINT model_lw_sp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
199   UINT model_lw_sp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
200   UINT model_sb_tp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
201   UINT model_sb_tp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
202   UINT model_sh_tp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
203   UINT model_sh_tp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
204   UINT model_sw_tp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
205   UINT model_sw_tp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
206   UINT model_lb_tp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
207   UINT model_lb_tp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
208   UINT model_lh_tp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
209   UINT model_lh_tp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
210   UINT model_lw_tp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
211   UINT model_lw_tp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
212   UINT model_lbu_tp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
213   UINT model_lbu_tp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
214   UINT model_lhu_tp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
215   UINT model_lhu_tp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
216   UINT model_sb16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
217   UINT model_sb16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
218   UINT model_sh16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
219   UINT model_sh16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
220   UINT model_sw16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
221   UINT model_sw16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
222   UINT model_lb16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
223   UINT model_lb16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
224   UINT model_lh16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
225   UINT model_lh16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
226   UINT model_lw16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
227   UINT model_lw16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
228   UINT model_lbu16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
229   UINT model_lbu16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
230   UINT model_lhu16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
231   UINT model_lhu16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
232   UINT model_sw24_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
233   UINT model_sw24_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
234   UINT model_lw24_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
235   UINT model_lw24_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
236   UINT model_extb_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
237   UINT model_extb_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
238   UINT model_exth_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
239   UINT model_exth_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
240   UINT model_extub_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
241   UINT model_extub_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
242   UINT model_extuh_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
243   UINT model_extuh_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
244   UINT model_ssarb_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
245   UINT model_ssarb_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
246   UINT model_mov_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
247   UINT model_mov_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
248   UINT model_movi8_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
249   UINT model_movi8_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
250   UINT model_movi16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
251   UINT model_movi16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
252   UINT model_movu24_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
253   UINT model_movu24_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
254   UINT model_movu16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
255   UINT model_movu16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
256   UINT model_movh_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
257   UINT model_movh_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
258   UINT model_add3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
259   UINT model_add3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
260   UINT model_add_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
261   UINT model_add_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
262   UINT model_add3i_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
263   UINT model_add3i_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
264   UINT model_advck3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
265   UINT model_advck3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
266   UINT model_sub_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
267   UINT model_sub_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
268   UINT model_sbvck3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
269   UINT model_sbvck3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
270   UINT model_neg_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
271   UINT model_neg_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
272   UINT model_slt3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
273   UINT model_slt3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
274   UINT model_sltu3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
275   UINT model_sltu3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
276   UINT model_slt3i_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
277   UINT model_slt3i_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
278   UINT model_sltu3i_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
279   UINT model_sltu3i_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
280   UINT model_sl1ad3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
281   UINT model_sl1ad3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
282   UINT model_sl2ad3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
283   UINT model_sl2ad3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
284   UINT model_add3x_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
285   UINT model_add3x_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
286   UINT model_slt3x_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
287   UINT model_slt3x_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
288   UINT model_sltu3x_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
289   UINT model_sltu3x_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
290   UINT model_or_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
291   UINT model_or_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
292   UINT model_and_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
293   UINT model_and_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
294   UINT model_xor_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
295   UINT model_xor_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
296   UINT model_nor_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
297   UINT model_nor_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
298   UINT model_or3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
299   UINT model_or3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
300   UINT model_and3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
301   UINT model_and3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
302   UINT model_xor3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
303   UINT model_xor3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
304   UINT model_sra_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
305   UINT model_sra_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
306   UINT model_srl_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
307   UINT model_srl_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
308   UINT model_sll_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
309   UINT model_sll_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
310   UINT model_srai_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
311   UINT model_srai_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
312   UINT model_srli_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
313   UINT model_srli_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
314   UINT model_slli_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
315   UINT model_slli_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
316   UINT model_sll3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
317   UINT model_sll3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
318   UINT model_fsft_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
319   UINT model_fsft_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
320   UINT model_bra_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
321   UINT model_bra_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
322   UINT model_beqz_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
323   UINT model_beqz_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
324   UINT model_bnez_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
325   UINT model_bnez_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
326   UINT model_beqi_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
327   UINT model_beqi_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
328   UINT model_bnei_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
329   UINT model_bnei_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
330   UINT model_blti_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
331   UINT model_blti_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
332   UINT model_bgei_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
333   UINT model_bgei_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
334   UINT model_beq_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
335   UINT model_beq_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
336   UINT model_bne_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
337   UINT model_bne_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
338   UINT model_bsr12_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
339   UINT model_bsr12_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
340   UINT model_bsr24_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
341   UINT model_bsr24_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
342   UINT model_jmp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
343   UINT model_jmp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
344   UINT model_jmp24_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
345   UINT model_jmp24_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
346   UINT model_jsr_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
347   UINT model_jsr_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
348   UINT model_ret_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
349   UINT model_ret_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
350   UINT model_repeat_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
351   UINT model_repeat_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
352   UINT model_erepeat_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
353   UINT model_erepeat_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
354   UINT model_stc_lp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
355   UINT model_stc_lp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
356   UINT model_stc_hi_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
357   UINT model_stc_hi_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
358   UINT model_stc_lo_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
359   UINT model_stc_lo_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
360   UINT model_stc_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
361   UINT model_stc_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
362   UINT model_ldc_lp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
363   UINT model_ldc_lp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
364   UINT model_ldc_hi_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
365   UINT model_ldc_hi_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
366   UINT model_ldc_lo_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
367   UINT model_ldc_lo_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
368   UINT model_ldc_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
369   UINT model_ldc_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
370   UINT model_di_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
371   UINT model_di_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
372   UINT model_ei_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
373   UINT model_ei_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
374   UINT model_reti_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
375   UINT model_reti_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
376   UINT model_halt_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
377   UINT model_halt_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
378   UINT model_sleep_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
379   UINT model_sleep_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
380   UINT model_swi_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
381   UINT model_swi_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
382   UINT model_break_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
383   UINT model_break_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
384   UINT model_syncm_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
385   UINT model_syncm_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
386   UINT model_stcb_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
387   UINT model_stcb_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
388   UINT model_ldcb_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
389   UINT model_ldcb_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
390   UINT model_bsetm_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
391   UINT model_bsetm_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
392   UINT model_bclrm_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
393   UINT model_bclrm_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
394   UINT model_bnotm_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
395   UINT model_bnotm_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
396   UINT model_btstm_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
397   UINT model_btstm_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
398   UINT model_tas_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
399   UINT model_tas_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
400   UINT model_cache_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
401   UINT model_cache_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
402   UINT model_mul_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
403   UINT model_mul_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
404   UINT model_mulu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
405   UINT model_mulu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
406   UINT model_mulr_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
407   UINT model_mulr_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
408   UINT model_mulru_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
409   UINT model_mulru_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
410   UINT model_madd_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
411   UINT model_madd_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
412   UINT model_maddu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
413   UINT model_maddu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
414   UINT model_maddr_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
415   UINT model_maddr_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
416   UINT model_maddru_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
417   UINT model_maddru_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
418   UINT model_div_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
419   UINT model_div_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
420   UINT model_divu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
421   UINT model_divu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
422   UINT model_dret_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
423   UINT model_dret_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
424   UINT model_dbreak_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
425   UINT model_dbreak_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
426   UINT model_ldz_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
427   UINT model_ldz_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
428   UINT model_abs_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
429   UINT model_abs_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
430   UINT model_ave_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
431   UINT model_ave_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
432   UINT model_min_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
433   UINT model_min_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
434   UINT model_max_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
435   UINT model_max_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
436   UINT model_minu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
437   UINT model_minu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
438   UINT model_maxu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
439   UINT model_maxu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
440   UINT model_clip_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
441   UINT model_clip_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
442   UINT model_clipu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
443   UINT model_clipu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
444   UINT model_sadd_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
445   UINT model_sadd_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
446   UINT model_ssub_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
447   UINT model_ssub_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
448   UINT model_saddu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
449   UINT model_saddu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
450   UINT model_ssubu_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
451   UINT model_ssubu_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
452   UINT model_swcp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
453   UINT model_swcp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
454   UINT model_lwcp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
455   UINT model_lwcp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
456   UINT model_smcp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
457   UINT model_smcp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
458   UINT model_lmcp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
459   UINT model_lmcp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
460   UINT model_swcpi_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
461   UINT model_swcpi_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
462   UINT model_lwcpi_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
463   UINT model_lwcpi_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
464   UINT model_smcpi_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
465   UINT model_smcpi_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
466   UINT model_lmcpi_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
467   UINT model_lmcpi_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
468   UINT model_swcp16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
469   UINT model_swcp16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
470   UINT model_lwcp16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
471   UINT model_lwcp16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
472   UINT model_smcp16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
473   UINT model_smcp16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
474   UINT model_lmcp16_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
475   UINT model_lmcp16_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
476   UINT model_sbcpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
477   UINT model_sbcpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
478   UINT model_lbcpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
479   UINT model_lbcpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
480   UINT model_shcpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
481   UINT model_shcpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
482   UINT model_lhcpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
483   UINT model_lhcpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
484   UINT model_swcpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
485   UINT model_swcpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
486   UINT model_lwcpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
487   UINT model_lwcpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
488   UINT model_smcpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
489   UINT model_smcpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
490   UINT model_lmcpa_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
491   UINT model_lmcpa_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
492   UINT model_sbcpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
493   UINT model_sbcpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
494   UINT model_lbcpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
495   UINT model_lbcpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
496   UINT model_shcpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
497   UINT model_shcpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
498   UINT model_lhcpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
499   UINT model_lhcpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
500   UINT model_swcpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
501   UINT model_swcpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
502   UINT model_lwcpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
503   UINT model_lwcpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
504   UINT model_smcpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
505   UINT model_smcpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
506   UINT model_lmcpm0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
507   UINT model_lmcpm0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
508   UINT model_sbcpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
509   UINT model_sbcpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
510   UINT model_lbcpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
511   UINT model_lbcpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
512   UINT model_shcpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
513   UINT model_shcpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
514   UINT model_lhcpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
515   UINT model_lhcpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
516   UINT model_swcpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
517   UINT model_swcpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
518   UINT model_lwcpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
519   UINT model_lwcpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
520   UINT model_smcpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
521   UINT model_smcpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
522   UINT model_lmcpm1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
523   UINT model_lmcpm1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
524   UINT model_bcpeq_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
525   UINT model_bcpeq_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
526   UINT model_bcpne_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
527   UINT model_bcpne_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
528   UINT model_bcpat_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
529   UINT model_bcpat_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
530   UINT model_bcpaf_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
531   UINT model_bcpaf_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
532   UINT model_synccp_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
533   UINT model_synccp_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
534   UINT model_jsrv_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
535   UINT model_jsrv_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
536   UINT model_bsrv_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
537   UINT model_bsrv_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
538   UINT model_sim_syscall_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
539   UINT model_sim_syscall_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
540   UINT model_ri_0_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
541   UINT model_ri_0_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
542   UINT model_ri_1_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
543   UINT model_ri_1_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
544   UINT model_ri_2_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
545   UINT model_ri_2_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
546   UINT model_ri_3_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
547   UINT model_ri_3_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
548   UINT model_ri_4_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
549   UINT model_ri_4_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
550   UINT model_ri_5_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
551   UINT model_ri_5_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
552   UINT model_ri_6_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
553   UINT model_ri_6_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
554   UINT model_ri_7_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
555   UINT model_ri_7_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
556   UINT model_ri_8_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
557   UINT model_ri_8_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
558   UINT model_ri_9_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
559   UINT model_ri_9_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
560   UINT model_ri_10_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
561   UINT model_ri_10_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
562   UINT model_ri_11_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
563   UINT model_ri_11_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
564   UINT model_ri_12_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
565   UINT model_ri_12_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
566   UINT model_ri_13_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
567   UINT model_ri_13_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
568   UINT model_ri_14_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
569   UINT model_ri_14_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
570   UINT model_ri_15_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
571   UINT model_ri_15_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
572   UINT model_ri_17_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
573   UINT model_ri_17_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
574   UINT model_ri_20_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
575   UINT model_ri_20_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
576   UINT model_ri_21_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
577   UINT model_ri_21_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
578   UINT model_ri_22_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
579   UINT model_ri_22_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
580   UINT model_ri_23_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
581   UINT model_ri_23_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
582   UINT model_ri_26_before (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
583   UINT model_ri_26_after (mep_ext1_cpu *current_cpu, mepcore1_scache *sem);
584
585   /* Enum declaration for unit types.  */
586 typedef enum unit_number {
587   UNIT_NONE, UNIT_U_STORE_CTRL_REG, UNIT_U_USE_CTRL_REG, UNIT_U_USE_GPR
588  , UNIT_U_MUL_GPR, UNIT_U_LDCB_GPR, UNIT_U_LOAD_GPR, UNIT_U_LDCB
589  , UNIT_U_STCB, UNIT_U_DIVIDE, UNIT_U_MULTIPLY, UNIT_U_BRANCH
590  , UNIT_U_EXEC, UNIT_MAX
591 } UNIT_NUMBER;
592
593   struct unit {
594     unit_number unit;
595     UINT issue;
596     UINT done;
597   };
598
599   static const int MAX_UNITS = 5;
600
601   typedef UINT (mepcore1_mep_model::*model_function) (mep_ext1_cpu* current_cpu, mepcore1_scache* sem);
602
603   struct insn_timing {
604     // This is an integer that identifies this insn.
605     UINT num;
606     // Functions to handle insn-specific profiling.
607     model_function model_before;
608     model_function model_after;
609     // Array of function units used by this insn.
610     unit units[MAX_UNITS];
611   };
612
613   static const insn_timing timing[];
614 };
615
616 } // namespace mep_ext1
617
618 #endif // MEPCORE1_MODEL_H