1 /* Simulator model support for sh4a_nofpu.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 2000-2009 Red Hat, Inc.
7 This file is part of the Red Hat simulators.
12 #ifndef SH4A_NOFPU_MODEL_H
13 #define SH4A_NOFPU_MODEL_H
16 #include "cgen-model.h"
22 class sh4a_nofpu_sh4a_nofpu_model : public cgen_model
25 sh4a_nofpu_sh4a_nofpu_model (sh4a_nofpu_cpu *cpu);
27 // Call the proper unit modelling function for the given insn.
28 UINT model_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache* sem)
30 return (this->*(timing[sem->idesc->sem_index].model_before)) (current_cpu, sem);
32 UINT model_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache* sem)
34 return (this->*(timing[sem->idesc->sem_index].model_after)) (current_cpu, sem);
37 // Function unit handlers
38 // To be overridden as needed.
39 virtual UINT model_u_ocb_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
43 virtual UINT model_u_ocb_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
45 return timing[idesc->sem_index].units[unit_num].done;
47 virtual UINT model_u_mulr_gr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*loadreg*/)
51 virtual UINT model_u_mulr_gr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
53 return timing[idesc->sem_index].units[unit_num].done;
55 virtual UINT model_u_mulr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
59 virtual UINT model_u_mulr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
61 return timing[idesc->sem_index].units[unit_num].done;
63 virtual UINT model_u_fcnv_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
67 virtual UINT model_u_fcnv_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
69 return timing[idesc->sem_index].units[unit_num].done;
71 virtual UINT model_u_fcmp_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
75 virtual UINT model_u_fcmp_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
77 return timing[idesc->sem_index].units[unit_num].done;
79 virtual UINT model_u_fsqrt_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*loadreg*/)
83 virtual UINT model_u_fsqrt_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
85 return timing[idesc->sem_index].units[unit_num].done;
87 virtual UINT model_u_fdiv_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*loadreg*/)
91 virtual UINT model_u_fdiv_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
93 return timing[idesc->sem_index].units[unit_num].done;
95 virtual UINT model_u_fpu_load_gr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*loadreg*/)
99 virtual UINT model_u_fpu_load_gr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
101 return timing[idesc->sem_index].units[unit_num].done;
103 virtual UINT model_u_use_fpscr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
107 virtual UINT model_u_use_fpscr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
109 return timing[idesc->sem_index].units[unit_num].done;
111 virtual UINT model_u_ldsl_fpscr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
115 virtual UINT model_u_ldsl_fpscr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
117 return timing[idesc->sem_index].units[unit_num].done;
119 virtual UINT model_u_lds_fpscr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
123 virtual UINT model_u_lds_fpscr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
125 return timing[idesc->sem_index].units[unit_num].done;
127 virtual UINT model_u_use_fpul_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
131 virtual UINT model_u_use_fpul_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
133 return timing[idesc->sem_index].units[unit_num].done;
135 virtual UINT model_u_flds_fpul_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
139 virtual UINT model_u_flds_fpul_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
141 return timing[idesc->sem_index].units[unit_num].done;
143 virtual UINT model_u_load_fpul_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
147 virtual UINT model_u_load_fpul_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
149 return timing[idesc->sem_index].units[unit_num].done;
151 virtual UINT model_u_set_fpul_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
155 virtual UINT model_u_set_fpul_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
157 return timing[idesc->sem_index].units[unit_num].done;
159 virtual UINT model_u_fpu_memory_access_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
163 virtual UINT model_u_fpu_memory_access_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
165 return timing[idesc->sem_index].units[unit_num].done;
167 virtual UINT model_u_use_fr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*usereg*/)
171 virtual UINT model_u_use_fr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*usereg*/)
173 return timing[idesc->sem_index].units[unit_num].done;
175 virtual UINT model_u_set_fr_0_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*loadreg*/)
179 virtual UINT model_u_set_fr_0_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
181 return timing[idesc->sem_index].units[unit_num].done;
183 virtual UINT model_u_set_fr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*loadreg*/)
187 virtual UINT model_u_set_fr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
189 return timing[idesc->sem_index].units[unit_num].done;
191 virtual UINT model_u_load_fr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*loadreg*/)
195 virtual UINT model_u_load_fr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
197 return timing[idesc->sem_index].units[unit_num].done;
199 virtual UINT model_u_maybe_fpu_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
203 virtual UINT model_u_maybe_fpu_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
205 return timing[idesc->sem_index].units[unit_num].done;
207 virtual UINT model_u_fpu_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
211 virtual UINT model_u_fpu_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
213 return timing[idesc->sem_index].units[unit_num].done;
215 virtual UINT model_u_trap_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
219 virtual UINT model_u_trap_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
221 return timing[idesc->sem_index].units[unit_num].done;
223 virtual UINT model_u_write_back_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
227 virtual UINT model_u_write_back_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
229 return timing[idesc->sem_index].units[unit_num].done;
231 virtual UINT model_u_use_multiply_result_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
235 virtual UINT model_u_use_multiply_result_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
237 return timing[idesc->sem_index].units[unit_num].done;
239 virtual UINT model_u_shift_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
243 virtual UINT model_u_shift_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
245 return timing[idesc->sem_index].units[unit_num].done;
247 virtual UINT model_u_tas_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
251 virtual UINT model_u_tas_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
253 return timing[idesc->sem_index].units[unit_num].done;
255 virtual UINT model_u_mulsw_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
259 virtual UINT model_u_mulsw_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
261 return timing[idesc->sem_index].units[unit_num].done;
263 virtual UINT model_u_mull_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
267 virtual UINT model_u_mull_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
269 return timing[idesc->sem_index].units[unit_num].done;
271 virtual UINT model_u_dmul_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
275 virtual UINT model_u_dmul_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
277 return timing[idesc->sem_index].units[unit_num].done;
279 virtual UINT model_u_macl_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
283 virtual UINT model_u_macl_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
285 return timing[idesc->sem_index].units[unit_num].done;
287 virtual UINT model_u_macw_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
291 virtual UINT model_u_macw_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
293 return timing[idesc->sem_index].units[unit_num].done;
295 virtual UINT model_u_multiply_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
299 virtual UINT model_u_multiply_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
301 return timing[idesc->sem_index].units[unit_num].done;
303 virtual UINT model_u_set_mac_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
307 virtual UINT model_u_set_mac_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
309 return timing[idesc->sem_index].units[unit_num].done;
311 virtual UINT model_u_load_mac_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
315 virtual UINT model_u_load_mac_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
317 return timing[idesc->sem_index].units[unit_num].done;
319 virtual UINT model_u_load_vbr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
323 virtual UINT model_u_load_vbr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
325 return timing[idesc->sem_index].units[unit_num].done;
327 virtual UINT model_u_load_gbr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
331 virtual UINT model_u_load_gbr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
333 return timing[idesc->sem_index].units[unit_num].done;
335 virtual UINT model_u_use_gr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*usereg*/)
339 virtual UINT model_u_use_gr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*usereg*/)
341 return timing[idesc->sem_index].units[unit_num].done;
343 virtual UINT model_u_load_gr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, INT /*loadreg*/)
347 virtual UINT model_u_load_gr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced, INT /*loadreg*/)
349 return timing[idesc->sem_index].units[unit_num].done;
351 virtual UINT model_u_stc_vbr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
355 virtual UINT model_u_stc_vbr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
357 return timing[idesc->sem_index].units[unit_num].done;
359 virtual UINT model_u_ldcl_vbr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
363 virtual UINT model_u_ldcl_vbr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
365 return timing[idesc->sem_index].units[unit_num].done;
367 virtual UINT model_u_ldcl_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
371 virtual UINT model_u_ldcl_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
373 return timing[idesc->sem_index].units[unit_num].done;
375 virtual UINT model_u_use_tbit_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
379 virtual UINT model_u_use_tbit_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
381 return timing[idesc->sem_index].units[unit_num].done;
383 virtual UINT model_u_ldc_gbr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
387 virtual UINT model_u_ldc_gbr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
389 return timing[idesc->sem_index].units[unit_num].done;
391 virtual UINT model_u_ldc_sr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
395 virtual UINT model_u_ldc_sr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
397 return timing[idesc->sem_index].units[unit_num].done;
399 virtual UINT model_u_set_sr_bit_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
403 virtual UINT model_u_set_sr_bit_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
405 return timing[idesc->sem_index].units[unit_num].done;
407 virtual UINT model_u_use_pr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
411 virtual UINT model_u_use_pr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
413 return timing[idesc->sem_index].units[unit_num].done;
415 virtual UINT model_u_load_pr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
419 virtual UINT model_u_load_pr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
421 return timing[idesc->sem_index].units[unit_num].done;
423 virtual UINT model_u_sts_pr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
427 virtual UINT model_u_sts_pr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
429 return timing[idesc->sem_index].units[unit_num].done;
431 virtual UINT model_u_lds_pr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
435 virtual UINT model_u_lds_pr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
437 return timing[idesc->sem_index].units[unit_num].done;
439 virtual UINT model_u_memory_access_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
443 virtual UINT model_u_memory_access_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
445 return timing[idesc->sem_index].units[unit_num].done;
447 virtual UINT model_u_logic_b_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
451 virtual UINT model_u_logic_b_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
453 return timing[idesc->sem_index].units[unit_num].done;
455 virtual UINT model_u_jsr_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
459 virtual UINT model_u_jsr_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
461 return timing[idesc->sem_index].units[unit_num].done;
463 virtual UINT model_u_jmp_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
467 virtual UINT model_u_jmp_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
469 return timing[idesc->sem_index].units[unit_num].done;
471 virtual UINT model_u_branch_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
475 virtual UINT model_u_branch_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
477 return timing[idesc->sem_index].units[unit_num].done;
479 virtual UINT model_u_sx_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
483 virtual UINT model_u_sx_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
485 return timing[idesc->sem_index].units[unit_num].done;
487 virtual UINT model_u_exec_before (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num)
491 virtual UINT model_u_exec_after (sh4a_nofpu_cpu *cpu, const struct sh4a_nofpu_idesc *idesc, int unit_num, unsigned long long referenced)
493 return timing[idesc->sem_index].units[unit_num].done;
497 // These methods call the appropriate unit modeller(s) for each insn.
498 UINT model_add_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
499 UINT model_add_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
500 UINT model_addi_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
501 UINT model_addi_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
502 UINT model_addc_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
503 UINT model_addc_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
504 UINT model_addv_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
505 UINT model_addv_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
506 UINT model_and_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
507 UINT model_and_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
508 UINT model_andi_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
509 UINT model_andi_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
510 UINT model_andb_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
511 UINT model_andb_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
512 UINT model_bf_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
513 UINT model_bf_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
514 UINT model_bfs_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
515 UINT model_bfs_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
516 UINT model_bra_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
517 UINT model_bra_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
518 UINT model_braf_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
519 UINT model_braf_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
520 UINT model_bsr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
521 UINT model_bsr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
522 UINT model_bsrf_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
523 UINT model_bsrf_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
524 UINT model_bt_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
525 UINT model_bt_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
526 UINT model_bts_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
527 UINT model_bts_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
528 UINT model_clrmac_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
529 UINT model_clrmac_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
530 UINT model_clrs_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
531 UINT model_clrs_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
532 UINT model_clrt_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
533 UINT model_clrt_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
534 UINT model_cmpeq_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
535 UINT model_cmpeq_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
536 UINT model_cmpeqi_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
537 UINT model_cmpeqi_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
538 UINT model_cmpge_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
539 UINT model_cmpge_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
540 UINT model_cmpgt_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
541 UINT model_cmpgt_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
542 UINT model_cmphi_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
543 UINT model_cmphi_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
544 UINT model_cmphs_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
545 UINT model_cmphs_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
546 UINT model_cmppl_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
547 UINT model_cmppl_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
548 UINT model_cmppz_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
549 UINT model_cmppz_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
550 UINT model_cmpstr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
551 UINT model_cmpstr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
552 UINT model_div0s_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
553 UINT model_div0s_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
554 UINT model_div0u_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
555 UINT model_div0u_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
556 UINT model_div1_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
557 UINT model_div1_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
558 UINT model_dmulsl_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
559 UINT model_dmulsl_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
560 UINT model_dmulul_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
561 UINT model_dmulul_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
562 UINT model_dt_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
563 UINT model_dt_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
564 UINT model_extsb_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
565 UINT model_extsb_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
566 UINT model_extsw_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
567 UINT model_extsw_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
568 UINT model_extub_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
569 UINT model_extub_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
570 UINT model_extuw_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
571 UINT model_extuw_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
572 UINT model_frchg_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
573 UINT model_frchg_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
574 UINT model_fschg_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
575 UINT model_fschg_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
576 UINT model_jmp_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
577 UINT model_jmp_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
578 UINT model_jsr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
579 UINT model_jsr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
580 UINT model_ldc_gbr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
581 UINT model_ldc_gbr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
582 UINT model_ldc_vbr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
583 UINT model_ldc_vbr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
584 UINT model_ldc_sr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
585 UINT model_ldc_sr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
586 UINT model_ldcl_gbr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
587 UINT model_ldcl_gbr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
588 UINT model_ldcl_vbr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
589 UINT model_ldcl_vbr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
590 UINT model_lds_mach_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
591 UINT model_lds_mach_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
592 UINT model_ldsl_mach_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
593 UINT model_ldsl_mach_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
594 UINT model_lds_macl_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
595 UINT model_lds_macl_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
596 UINT model_ldsl_macl_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
597 UINT model_ldsl_macl_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
598 UINT model_lds_pr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
599 UINT model_lds_pr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
600 UINT model_ldsl_pr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
601 UINT model_ldsl_pr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
602 UINT model_macl_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
603 UINT model_macl_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
604 UINT model_macw_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
605 UINT model_macw_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
606 UINT model_mov_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
607 UINT model_mov_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
608 UINT model_movi_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
609 UINT model_movi_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
610 UINT model_movb1_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
611 UINT model_movb1_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
612 UINT model_movb2_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
613 UINT model_movb2_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
614 UINT model_movb3_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
615 UINT model_movb3_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
616 UINT model_movb4_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
617 UINT model_movb4_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
618 UINT model_movb5_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
619 UINT model_movb5_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
620 UINT model_movb6_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
621 UINT model_movb6_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
622 UINT model_movb7_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
623 UINT model_movb7_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
624 UINT model_movb8_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
625 UINT model_movb8_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
626 UINT model_movb9_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
627 UINT model_movb9_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
628 UINT model_movb10_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
629 UINT model_movb10_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
630 UINT model_movl1_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
631 UINT model_movl1_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
632 UINT model_movl2_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
633 UINT model_movl2_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
634 UINT model_movl3_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
635 UINT model_movl3_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
636 UINT model_movl4_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
637 UINT model_movl4_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
638 UINT model_movl5_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
639 UINT model_movl5_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
640 UINT model_movl6_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
641 UINT model_movl6_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
642 UINT model_movl7_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
643 UINT model_movl7_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
644 UINT model_movl8_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
645 UINT model_movl8_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
646 UINT model_movl9_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
647 UINT model_movl9_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
648 UINT model_movl10_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
649 UINT model_movl10_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
650 UINT model_movl11_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
651 UINT model_movl11_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
652 UINT model_movw1_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
653 UINT model_movw1_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
654 UINT model_movw2_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
655 UINT model_movw2_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
656 UINT model_movw3_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
657 UINT model_movw3_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
658 UINT model_movw4_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
659 UINT model_movw4_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
660 UINT model_movw5_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
661 UINT model_movw5_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
662 UINT model_movw6_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
663 UINT model_movw6_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
664 UINT model_movw7_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
665 UINT model_movw7_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
666 UINT model_movw8_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
667 UINT model_movw8_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
668 UINT model_movw9_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
669 UINT model_movw9_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
670 UINT model_movw10_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
671 UINT model_movw10_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
672 UINT model_movw11_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
673 UINT model_movw11_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
674 UINT model_mova_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
675 UINT model_mova_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
676 UINT model_movcal_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
677 UINT model_movcal_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
678 UINT model_movcol_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
679 UINT model_movcol_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
680 UINT model_movt_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
681 UINT model_movt_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
682 UINT model_movual_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
683 UINT model_movual_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
684 UINT model_movual2_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
685 UINT model_movual2_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
686 UINT model_mull_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
687 UINT model_mull_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
688 UINT model_mulsw_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
689 UINT model_mulsw_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
690 UINT model_muluw_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
691 UINT model_muluw_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
692 UINT model_neg_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
693 UINT model_neg_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
694 UINT model_negc_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
695 UINT model_negc_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
696 UINT model_nop_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
697 UINT model_nop_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
698 UINT model_not_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
699 UINT model_not_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
700 UINT model_ocbi_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
701 UINT model_ocbi_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
702 UINT model_ocbp_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
703 UINT model_ocbp_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
704 UINT model_ocbwb_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
705 UINT model_ocbwb_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
706 UINT model_or_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
707 UINT model_or_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
708 UINT model_ori_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
709 UINT model_ori_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
710 UINT model_orb_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
711 UINT model_orb_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
712 UINT model_pref_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
713 UINT model_pref_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
714 UINT model_rotcl_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
715 UINT model_rotcl_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
716 UINT model_rotcr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
717 UINT model_rotcr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
718 UINT model_rotl_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
719 UINT model_rotl_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
720 UINT model_rotr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
721 UINT model_rotr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
722 UINT model_rts_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
723 UINT model_rts_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
724 UINT model_sets_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
725 UINT model_sets_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
726 UINT model_sett_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
727 UINT model_sett_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
728 UINT model_shad_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
729 UINT model_shad_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
730 UINT model_shal_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
731 UINT model_shal_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
732 UINT model_shar_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
733 UINT model_shar_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
734 UINT model_shld_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
735 UINT model_shld_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
736 UINT model_shll_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
737 UINT model_shll_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
738 UINT model_shll2_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
739 UINT model_shll2_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
740 UINT model_shll8_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
741 UINT model_shll8_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
742 UINT model_shll16_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
743 UINT model_shll16_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
744 UINT model_shlr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
745 UINT model_shlr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
746 UINT model_shlr2_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
747 UINT model_shlr2_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
748 UINT model_shlr8_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
749 UINT model_shlr8_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
750 UINT model_shlr16_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
751 UINT model_shlr16_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
752 UINT model_stc_gbr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
753 UINT model_stc_gbr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
754 UINT model_stc_vbr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
755 UINT model_stc_vbr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
756 UINT model_stcl_gbr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
757 UINT model_stcl_gbr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
758 UINT model_stcl_vbr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
759 UINT model_stcl_vbr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
760 UINT model_sts_mach_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
761 UINT model_sts_mach_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
762 UINT model_stsl_mach_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
763 UINT model_stsl_mach_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
764 UINT model_sts_macl_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
765 UINT model_sts_macl_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
766 UINT model_stsl_macl_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
767 UINT model_stsl_macl_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
768 UINT model_sts_pr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
769 UINT model_sts_pr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
770 UINT model_stsl_pr_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
771 UINT model_stsl_pr_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
772 UINT model_sub_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
773 UINT model_sub_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
774 UINT model_subc_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
775 UINT model_subc_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
776 UINT model_subv_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
777 UINT model_subv_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
778 UINT model_swapb_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
779 UINT model_swapb_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
780 UINT model_swapw_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
781 UINT model_swapw_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
782 UINT model_tasb_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
783 UINT model_tasb_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
784 UINT model_trapa_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
785 UINT model_trapa_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
786 UINT model_tst_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
787 UINT model_tst_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
788 UINT model_tsti_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
789 UINT model_tsti_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
790 UINT model_tstb_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
791 UINT model_tstb_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
792 UINT model_xor_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
793 UINT model_xor_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
794 UINT model_xori_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
795 UINT model_xori_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
796 UINT model_xorb_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
797 UINT model_xorb_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
798 UINT model_xtrct_compact_before (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
799 UINT model_xtrct_compact_after (sh4a_nofpu_cpu *current_cpu, sh4a_nofpu_scache *sem);
801 /* Enum declaration for unit types. */
802 typedef enum unit_number {
803 UNIT_NONE, UNIT_U_OCB, UNIT_U_MULR_GR, UNIT_U_MULR
804 , UNIT_U_FCNV, UNIT_U_FCMP, UNIT_U_FSQRT, UNIT_U_FDIV
805 , UNIT_U_FPU_LOAD_GR, UNIT_U_USE_FPSCR, UNIT_U_LDSL_FPSCR, UNIT_U_LDS_FPSCR
806 , UNIT_U_USE_FPUL, UNIT_U_FLDS_FPUL, UNIT_U_LOAD_FPUL, UNIT_U_SET_FPUL
807 , UNIT_U_FPU_MEMORY_ACCESS, UNIT_U_USE_FR, UNIT_U_SET_FR_0, UNIT_U_SET_FR
808 , UNIT_U_LOAD_FR, UNIT_U_MAYBE_FPU, UNIT_U_FPU, UNIT_U_TRAP
809 , UNIT_U_WRITE_BACK, UNIT_U_USE_MULTIPLY_RESULT, UNIT_U_SHIFT, UNIT_U_TAS
810 , UNIT_U_MULSW, UNIT_U_MULL, UNIT_U_DMUL, UNIT_U_MACL
811 , UNIT_U_MACW, UNIT_U_MULTIPLY, UNIT_U_SET_MAC, UNIT_U_LOAD_MAC
812 , UNIT_U_LOAD_VBR, UNIT_U_LOAD_GBR, UNIT_U_USE_GR, UNIT_U_LOAD_GR
813 , UNIT_U_STC_VBR, UNIT_U_LDCL_VBR, UNIT_U_LDCL, UNIT_U_USE_TBIT
814 , UNIT_U_LDC_GBR, UNIT_U_LDC_SR, UNIT_U_SET_SR_BIT, UNIT_U_USE_PR
815 , UNIT_U_LOAD_PR, UNIT_U_STS_PR, UNIT_U_LDS_PR, UNIT_U_MEMORY_ACCESS
816 , UNIT_U_LOGIC_B, UNIT_U_JSR, UNIT_U_JMP, UNIT_U_BRANCH
817 , UNIT_U_SX, UNIT_U_EXEC, UNIT_MAX
826 static const int MAX_UNITS = 6;
828 typedef UINT (sh4a_nofpu_sh4a_nofpu_model::*model_function) (sh4a_nofpu_cpu* current_cpu, sh4a_nofpu_scache* sem);
831 // This is an integer that identifies this insn.
833 // Functions to handle insn-specific profiling.
834 model_function model_before;
835 model_function model_after;
836 // Array of function units used by this insn.
837 unit units[MAX_UNITS];
840 static const insn_timing timing[];
843 } // namespace sh4a_nofpu
845 #endif // SH4A_NOFPU_MODEL_H