OSDN Git Service

Regenerate cgen files, update copyright year.
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / cgen-cpu / sh / sh4a-model.cxx
1 /* Simulator model support for sh4a.
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
13 #if HAVE_CONFIG_H
14 #include "config.h"
15 #endif
16 #include "sh4a.h"
17
18 using namespace sh4a; // FIXME: namespace organization still wip
19
20 /* The profiling data is recorded here, but is accessed via the profiling
21    mechanism.  After all, this is information for profiling.  */
22
23 /* Model handlers for each insn.  */
24
25 sh4a_sh4a_model::sh4a_sh4a_model (sh4a_cpu *cpu)
26   : cgen_model (cpu)
27 {
28 }
29
30 UINT
31 sh4a_sh4a_model::model_add_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
32 {
33 #define FLD(f) abuf->fields.sfmt_macl_compact.f
34   const sh4a_scache* abuf = sem;
35   const sh4a_idesc* idesc = abuf->idesc;
36   int cycles = 0;
37   {
38     INT in_usereg = -1;
39     in_usereg = FLD (in_rn);
40     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
41   }
42   {
43     INT in_usereg = -1;
44     in_usereg = FLD (in_rm);
45     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
46   }
47   {
48     cycles += model_u_exec_before (current_cpu, idesc, 2);
49   }
50   return cycles;
51 #undef FLD
52 }
53
54 UINT
55 sh4a_sh4a_model::model_add_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
56 {
57 #define FLD(f) abuf->fields.sfmt_macl_compact.f
58   const sh4a_scache* abuf = sem;
59   const sh4a_idesc* idesc = abuf->idesc;
60   int cycles = 0;
61   {
62     int referenced = 0;
63     unsigned long long insn_referenced = abuf->written;
64     INT in_usereg = -1;
65     in_usereg = FLD (in_rn);
66     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
67   }
68   {
69     int referenced = 0;
70     unsigned long long insn_referenced = abuf->written;
71     INT in_usereg = -1;
72     in_usereg = FLD (in_rm);
73     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
74   }
75   {
76     int referenced = 0;
77     unsigned long long insn_referenced = abuf->written;
78     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
79   }
80   return cycles;
81 #undef FLD
82 }
83
84 UINT
85 sh4a_sh4a_model::model_addi_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
86 {
87 #define FLD(f) abuf->fields.sfmt_addi_compact.f
88   const sh4a_scache* abuf = sem;
89   const sh4a_idesc* idesc = abuf->idesc;
90   int cycles = 0;
91   {
92     INT in_usereg = -1;
93     in_usereg = FLD (in_rn);
94     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
95   }
96   {
97     cycles += model_u_exec_before (current_cpu, idesc, 1);
98   }
99   return cycles;
100 #undef FLD
101 }
102
103 UINT
104 sh4a_sh4a_model::model_addi_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
105 {
106 #define FLD(f) abuf->fields.sfmt_addi_compact.f
107   const sh4a_scache* abuf = sem;
108   const sh4a_idesc* idesc = abuf->idesc;
109   int cycles = 0;
110   {
111     int referenced = 0;
112     unsigned long long insn_referenced = abuf->written;
113     INT in_usereg = -1;
114     in_usereg = FLD (in_rn);
115     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
116   }
117   {
118     int referenced = 0;
119     unsigned long long insn_referenced = abuf->written;
120     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
121   }
122   return cycles;
123 #undef FLD
124 }
125
126 UINT
127 sh4a_sh4a_model::model_addc_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
128 {
129 #define FLD(f) abuf->fields.sfmt_macl_compact.f
130   const sh4a_scache* abuf = sem;
131   const sh4a_idesc* idesc = abuf->idesc;
132   int cycles = 0;
133   {
134     INT in_usereg = -1;
135     in_usereg = FLD (in_rn);
136     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
137   }
138   {
139     INT in_usereg = -1;
140     in_usereg = FLD (in_rm);
141     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
142   }
143   {
144     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
145   }
146   {
147     cycles += model_u_exec_before (current_cpu, idesc, 3);
148   }
149   {
150     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
151   }
152   return cycles;
153 #undef FLD
154 }
155
156 UINT
157 sh4a_sh4a_model::model_addc_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
158 {
159 #define FLD(f) abuf->fields.sfmt_macl_compact.f
160   const sh4a_scache* abuf = sem;
161   const sh4a_idesc* idesc = abuf->idesc;
162   int cycles = 0;
163   {
164     int referenced = 0;
165     unsigned long long insn_referenced = abuf->written;
166     INT in_usereg = -1;
167     in_usereg = FLD (in_rn);
168     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
169   }
170   {
171     int referenced = 0;
172     unsigned long long insn_referenced = abuf->written;
173     INT in_usereg = -1;
174     in_usereg = FLD (in_rm);
175     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
176   }
177   {
178     int referenced = 0;
179     unsigned long long insn_referenced = abuf->written;
180     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
181   }
182   {
183     int referenced = 0;
184     unsigned long long insn_referenced = abuf->written;
185     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
186   }
187   {
188     int referenced = 0;
189     unsigned long long insn_referenced = abuf->written;
190     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
191   }
192   return cycles;
193 #undef FLD
194 }
195
196 UINT
197 sh4a_sh4a_model::model_addv_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
198 {
199 #define FLD(f) abuf->fields.sfmt_macl_compact.f
200   const sh4a_scache* abuf = sem;
201   const sh4a_idesc* idesc = abuf->idesc;
202   int cycles = 0;
203   {
204     INT in_usereg = -1;
205     in_usereg = FLD (in_rn);
206     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
207   }
208   {
209     INT in_usereg = -1;
210     in_usereg = FLD (in_rm);
211     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
212   }
213   {
214     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
215   }
216   {
217     cycles += model_u_exec_before (current_cpu, idesc, 3);
218   }
219   {
220     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
221   }
222   return cycles;
223 #undef FLD
224 }
225
226 UINT
227 sh4a_sh4a_model::model_addv_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
228 {
229 #define FLD(f) abuf->fields.sfmt_macl_compact.f
230   const sh4a_scache* abuf = sem;
231   const sh4a_idesc* idesc = abuf->idesc;
232   int cycles = 0;
233   {
234     int referenced = 0;
235     unsigned long long insn_referenced = abuf->written;
236     INT in_usereg = -1;
237     in_usereg = FLD (in_rn);
238     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
239   }
240   {
241     int referenced = 0;
242     unsigned long long insn_referenced = abuf->written;
243     INT in_usereg = -1;
244     in_usereg = FLD (in_rm);
245     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
246   }
247   {
248     int referenced = 0;
249     unsigned long long insn_referenced = abuf->written;
250     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
251   }
252   {
253     int referenced = 0;
254     unsigned long long insn_referenced = abuf->written;
255     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
256   }
257   {
258     int referenced = 0;
259     unsigned long long insn_referenced = abuf->written;
260     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
261   }
262   return cycles;
263 #undef FLD
264 }
265
266 UINT
267 sh4a_sh4a_model::model_and_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
268 {
269 #define FLD(f) abuf->fields.sfmt_and_compact.f
270   const sh4a_scache* abuf = sem;
271   const sh4a_idesc* idesc = abuf->idesc;
272   int cycles = 0;
273   {
274     INT in_usereg = -1;
275     in_usereg = FLD (in_rn64);
276     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
277   }
278   {
279     INT in_usereg = -1;
280     in_usereg = FLD (in_rm64);
281     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
282   }
283   {
284     cycles += model_u_exec_before (current_cpu, idesc, 2);
285   }
286   return cycles;
287 #undef FLD
288 }
289
290 UINT
291 sh4a_sh4a_model::model_and_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
292 {
293 #define FLD(f) abuf->fields.sfmt_and_compact.f
294   const sh4a_scache* abuf = sem;
295   const sh4a_idesc* idesc = abuf->idesc;
296   int cycles = 0;
297   {
298     int referenced = 0;
299     unsigned long long insn_referenced = abuf->written;
300     INT in_usereg = -1;
301     in_usereg = FLD (in_rn64);
302     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
303   }
304   {
305     int referenced = 0;
306     unsigned long long insn_referenced = abuf->written;
307     INT in_usereg = -1;
308     in_usereg = FLD (in_rm64);
309     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
310   }
311   {
312     int referenced = 0;
313     unsigned long long insn_referenced = abuf->written;
314     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
315   }
316   return cycles;
317 #undef FLD
318 }
319
320 UINT
321 sh4a_sh4a_model::model_andi_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
322 {
323 #define FLD(f) abuf->fields.sfmt_andi_compact.f
324   const sh4a_scache* abuf = sem;
325   const sh4a_idesc* idesc = abuf->idesc;
326   int cycles = 0;
327   {
328     INT in_usereg = -1;
329     in_usereg = FLD (in_r0);
330     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
331   }
332   {
333     cycles += model_u_exec_before (current_cpu, idesc, 1);
334   }
335   return cycles;
336 #undef FLD
337 }
338
339 UINT
340 sh4a_sh4a_model::model_andi_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
341 {
342 #define FLD(f) abuf->fields.sfmt_andi_compact.f
343   const sh4a_scache* abuf = sem;
344   const sh4a_idesc* idesc = abuf->idesc;
345   int cycles = 0;
346   {
347     int referenced = 0;
348     unsigned long long insn_referenced = abuf->written;
349     INT in_usereg = -1;
350     in_usereg = FLD (in_r0);
351     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
352   }
353   {
354     int referenced = 0;
355     unsigned long long insn_referenced = abuf->written;
356     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
357   }
358   return cycles;
359 #undef FLD
360 }
361
362 UINT
363 sh4a_sh4a_model::model_andb_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
364 {
365 #define FLD(f) abuf->fields.sfmt_andi_compact.f
366   const sh4a_scache* abuf = sem;
367   const sh4a_idesc* idesc = abuf->idesc;
368   int cycles = 0;
369   {
370     INT in_usereg = -1;
371     in_usereg = FLD (in_r0);
372     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
373   }
374   {
375     cycles += model_u_logic_b_before (current_cpu, idesc, 1);
376   }
377   {
378     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
379   }
380   return cycles;
381 #undef FLD
382 }
383
384 UINT
385 sh4a_sh4a_model::model_andb_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
386 {
387 #define FLD(f) abuf->fields.sfmt_andi_compact.f
388   const sh4a_scache* abuf = sem;
389   const sh4a_idesc* idesc = abuf->idesc;
390   int cycles = 0;
391   {
392     int referenced = 0;
393     unsigned long long insn_referenced = abuf->written;
394     INT in_usereg = -1;
395     in_usereg = FLD (in_r0);
396     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
397   }
398   {
399     int referenced = 0;
400     unsigned long long insn_referenced = abuf->written;
401     cycles += model_u_logic_b_after (current_cpu, idesc, 1, referenced);
402   }
403   {
404     int referenced = 0;
405     unsigned long long insn_referenced = abuf->written;
406     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
407   }
408   return cycles;
409 #undef FLD
410 }
411
412 UINT
413 sh4a_sh4a_model::model_bf_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
414 {
415 #define FLD(f) abuf->fields.sfmt_bf_compact.f
416   const sh4a_scache* abuf = sem;
417   const sh4a_idesc* idesc = abuf->idesc;
418   int cycles = 0;
419   {
420     cycles += model_u_use_tbit_before (current_cpu, idesc, 0);
421   }
422   {
423     cycles += model_u_branch_before (current_cpu, idesc, 1);
424   }
425   return cycles;
426 #undef FLD
427 }
428
429 UINT
430 sh4a_sh4a_model::model_bf_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
431 {
432 #define FLD(f) abuf->fields.sfmt_bf_compact.f
433   const sh4a_scache* abuf = sem;
434   const sh4a_idesc* idesc = abuf->idesc;
435   int cycles = 0;
436   {
437     int referenced = 0;
438     unsigned long long insn_referenced = abuf->written;
439     cycles += model_u_use_tbit_after (current_cpu, idesc, 0, referenced);
440   }
441   {
442     int referenced = 0;
443     unsigned long long insn_referenced = abuf->written;
444     if (insn_referenced & (1 << 2)) referenced |= 1 << 0;
445     cycles += model_u_branch_after (current_cpu, idesc, 1, referenced);
446   }
447   return cycles;
448 #undef FLD
449 }
450
451 UINT
452 sh4a_sh4a_model::model_bfs_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
453 {
454 #define FLD(f) abuf->fields.sfmt_bf_compact.f
455   const sh4a_scache* abuf = sem;
456   const sh4a_idesc* idesc = abuf->idesc;
457   int cycles = 0;
458   {
459     cycles += model_u_use_tbit_before (current_cpu, idesc, 0);
460   }
461   {
462     cycles += model_u_branch_before (current_cpu, idesc, 1);
463   }
464   return cycles;
465 #undef FLD
466 }
467
468 UINT
469 sh4a_sh4a_model::model_bfs_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
470 {
471 #define FLD(f) abuf->fields.sfmt_bf_compact.f
472   const sh4a_scache* abuf = sem;
473   const sh4a_idesc* idesc = abuf->idesc;
474   int cycles = 0;
475   {
476     int referenced = 0;
477     unsigned long long insn_referenced = abuf->written;
478     cycles += model_u_use_tbit_after (current_cpu, idesc, 0, referenced);
479   }
480   {
481     int referenced = 0;
482     unsigned long long insn_referenced = abuf->written;
483     if (insn_referenced & (1 << 3)) referenced |= 1 << 0;
484     cycles += model_u_branch_after (current_cpu, idesc, 1, referenced);
485   }
486   return cycles;
487 #undef FLD
488 }
489
490 UINT
491 sh4a_sh4a_model::model_bra_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
492 {
493 #define FLD(f) abuf->fields.sfmt_bra_compact.f
494   const sh4a_scache* abuf = sem;
495   const sh4a_idesc* idesc = abuf->idesc;
496   int cycles = 0;
497   {
498     cycles += model_u_branch_before (current_cpu, idesc, 0);
499   }
500   return cycles;
501 #undef FLD
502 }
503
504 UINT
505 sh4a_sh4a_model::model_bra_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
506 {
507 #define FLD(f) abuf->fields.sfmt_bra_compact.f
508   const sh4a_scache* abuf = sem;
509   const sh4a_idesc* idesc = abuf->idesc;
510   int cycles = 0;
511   {
512     int referenced = 0;
513     unsigned long long insn_referenced = abuf->written;
514     referenced |= 1 << 0;
515     cycles += model_u_branch_after (current_cpu, idesc, 0, referenced);
516   }
517   return cycles;
518 #undef FLD
519 }
520
521 UINT
522 sh4a_sh4a_model::model_braf_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
523 {
524 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
525   const sh4a_scache* abuf = sem;
526   const sh4a_idesc* idesc = abuf->idesc;
527   int cycles = 0;
528   {
529     INT in_usereg = -1;
530     in_usereg = FLD (in_rn);
531     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
532   }
533   {
534     cycles += model_u_jmp_before (current_cpu, idesc, 1);
535   }
536   return cycles;
537 #undef FLD
538 }
539
540 UINT
541 sh4a_sh4a_model::model_braf_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
542 {
543 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
544   const sh4a_scache* abuf = sem;
545   const sh4a_idesc* idesc = abuf->idesc;
546   int cycles = 0;
547   {
548     int referenced = 0;
549     unsigned long long insn_referenced = abuf->written;
550     INT in_usereg = -1;
551     in_usereg = FLD (in_rn);
552     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
553   }
554   {
555     int referenced = 0;
556     unsigned long long insn_referenced = abuf->written;
557     referenced |= 1 << 0;
558     cycles += model_u_jmp_after (current_cpu, idesc, 1, referenced);
559   }
560   return cycles;
561 #undef FLD
562 }
563
564 UINT
565 sh4a_sh4a_model::model_bsr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
566 {
567 #define FLD(f) abuf->fields.sfmt_bra_compact.f
568   const sh4a_scache* abuf = sem;
569   const sh4a_idesc* idesc = abuf->idesc;
570   int cycles = 0;
571   {
572     cycles += model_u_branch_before (current_cpu, idesc, 0);
573   }
574   return cycles;
575 #undef FLD
576 }
577
578 UINT
579 sh4a_sh4a_model::model_bsr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
580 {
581 #define FLD(f) abuf->fields.sfmt_bra_compact.f
582   const sh4a_scache* abuf = sem;
583   const sh4a_idesc* idesc = abuf->idesc;
584   int cycles = 0;
585   {
586     int referenced = 0;
587     unsigned long long insn_referenced = abuf->written;
588     referenced |= 1 << 0;
589     cycles += model_u_branch_after (current_cpu, idesc, 0, referenced);
590   }
591   return cycles;
592 #undef FLD
593 }
594
595 UINT
596 sh4a_sh4a_model::model_bsrf_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
597 {
598 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
599   const sh4a_scache* abuf = sem;
600   const sh4a_idesc* idesc = abuf->idesc;
601   int cycles = 0;
602   {
603     INT in_usereg = -1;
604     in_usereg = FLD (in_rn);
605     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
606   }
607   {
608     cycles += model_u_jsr_before (current_cpu, idesc, 1);
609   }
610   return cycles;
611 #undef FLD
612 }
613
614 UINT
615 sh4a_sh4a_model::model_bsrf_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
616 {
617 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
618   const sh4a_scache* abuf = sem;
619   const sh4a_idesc* idesc = abuf->idesc;
620   int cycles = 0;
621   {
622     int referenced = 0;
623     unsigned long long insn_referenced = abuf->written;
624     INT in_usereg = -1;
625     in_usereg = FLD (in_rn);
626     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
627   }
628   {
629     int referenced = 0;
630     unsigned long long insn_referenced = abuf->written;
631     referenced |= 1 << 0;
632     cycles += model_u_jsr_after (current_cpu, idesc, 1, referenced);
633   }
634   return cycles;
635 #undef FLD
636 }
637
638 UINT
639 sh4a_sh4a_model::model_bt_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
640 {
641 #define FLD(f) abuf->fields.sfmt_bf_compact.f
642   const sh4a_scache* abuf = sem;
643   const sh4a_idesc* idesc = abuf->idesc;
644   int cycles = 0;
645   {
646     cycles += model_u_use_tbit_before (current_cpu, idesc, 0);
647   }
648   {
649     cycles += model_u_branch_before (current_cpu, idesc, 1);
650   }
651   return cycles;
652 #undef FLD
653 }
654
655 UINT
656 sh4a_sh4a_model::model_bt_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
657 {
658 #define FLD(f) abuf->fields.sfmt_bf_compact.f
659   const sh4a_scache* abuf = sem;
660   const sh4a_idesc* idesc = abuf->idesc;
661   int cycles = 0;
662   {
663     int referenced = 0;
664     unsigned long long insn_referenced = abuf->written;
665     cycles += model_u_use_tbit_after (current_cpu, idesc, 0, referenced);
666   }
667   {
668     int referenced = 0;
669     unsigned long long insn_referenced = abuf->written;
670     if (insn_referenced & (1 << 2)) referenced |= 1 << 0;
671     cycles += model_u_branch_after (current_cpu, idesc, 1, referenced);
672   }
673   return cycles;
674 #undef FLD
675 }
676
677 UINT
678 sh4a_sh4a_model::model_bts_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
679 {
680 #define FLD(f) abuf->fields.sfmt_bf_compact.f
681   const sh4a_scache* abuf = sem;
682   const sh4a_idesc* idesc = abuf->idesc;
683   int cycles = 0;
684   {
685     cycles += model_u_use_tbit_before (current_cpu, idesc, 0);
686   }
687   {
688     cycles += model_u_branch_before (current_cpu, idesc, 1);
689   }
690   return cycles;
691 #undef FLD
692 }
693
694 UINT
695 sh4a_sh4a_model::model_bts_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
696 {
697 #define FLD(f) abuf->fields.sfmt_bf_compact.f
698   const sh4a_scache* abuf = sem;
699   const sh4a_idesc* idesc = abuf->idesc;
700   int cycles = 0;
701   {
702     int referenced = 0;
703     unsigned long long insn_referenced = abuf->written;
704     cycles += model_u_use_tbit_after (current_cpu, idesc, 0, referenced);
705   }
706   {
707     int referenced = 0;
708     unsigned long long insn_referenced = abuf->written;
709     if (insn_referenced & (1 << 3)) referenced |= 1 << 0;
710     cycles += model_u_branch_after (current_cpu, idesc, 1, referenced);
711   }
712   return cycles;
713 #undef FLD
714 }
715
716 UINT
717 sh4a_sh4a_model::model_clrmac_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
718 {
719 #define FLD(f) abuf->fields.fmt_empty.f
720   const sh4a_scache* abuf = sem;
721   const sh4a_idesc* idesc = abuf->idesc;
722   int cycles = 0;
723   {
724     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 0);
725   }
726   {
727     cycles += model_u_exec_before (current_cpu, idesc, 1);
728   }
729   {
730     cycles += model_u_set_mac_before (current_cpu, idesc, 2);
731   }
732   return cycles;
733 #undef FLD
734 }
735
736 UINT
737 sh4a_sh4a_model::model_clrmac_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
738 {
739 #define FLD(f) abuf->fields.fmt_empty.f
740   const sh4a_scache* abuf = sem;
741   const sh4a_idesc* idesc = abuf->idesc;
742   int cycles = 0;
743   {
744     int referenced = 0;
745     unsigned long long insn_referenced = abuf->written;
746     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 0, referenced);
747   }
748   {
749     int referenced = 0;
750     unsigned long long insn_referenced = abuf->written;
751     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
752   }
753   {
754     int referenced = 0;
755     unsigned long long insn_referenced = abuf->written;
756     cycles += model_u_set_mac_after (current_cpu, idesc, 2, referenced);
757   }
758   return cycles;
759 #undef FLD
760 }
761
762 UINT
763 sh4a_sh4a_model::model_clrs_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
764 {
765 #define FLD(f) abuf->fields.fmt_empty.f
766   const sh4a_scache* abuf = sem;
767   const sh4a_idesc* idesc = abuf->idesc;
768   int cycles = 0;
769   {
770     cycles += model_u_exec_before (current_cpu, idesc, 0);
771   }
772   {
773     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 1);
774   }
775   return cycles;
776 #undef FLD
777 }
778
779 UINT
780 sh4a_sh4a_model::model_clrs_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
781 {
782 #define FLD(f) abuf->fields.fmt_empty.f
783   const sh4a_scache* abuf = sem;
784   const sh4a_idesc* idesc = abuf->idesc;
785   int cycles = 0;
786   {
787     int referenced = 0;
788     unsigned long long insn_referenced = abuf->written;
789     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
790   }
791   {
792     int referenced = 0;
793     unsigned long long insn_referenced = abuf->written;
794     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 1, referenced);
795   }
796   return cycles;
797 #undef FLD
798 }
799
800 UINT
801 sh4a_sh4a_model::model_clrt_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
802 {
803 #define FLD(f) abuf->fields.fmt_empty.f
804   const sh4a_scache* abuf = sem;
805   const sh4a_idesc* idesc = abuf->idesc;
806   int cycles = 0;
807   {
808     cycles += model_u_exec_before (current_cpu, idesc, 0);
809   }
810   {
811     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
812   }
813   {
814     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 2);
815   }
816   return cycles;
817 #undef FLD
818 }
819
820 UINT
821 sh4a_sh4a_model::model_clrt_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
822 {
823 #define FLD(f) abuf->fields.fmt_empty.f
824   const sh4a_scache* abuf = sem;
825   const sh4a_idesc* idesc = abuf->idesc;
826   int cycles = 0;
827   {
828     int referenced = 0;
829     unsigned long long insn_referenced = abuf->written;
830     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
831   }
832   {
833     int referenced = 0;
834     unsigned long long insn_referenced = abuf->written;
835     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
836   }
837   {
838     int referenced = 0;
839     unsigned long long insn_referenced = abuf->written;
840     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 2, referenced);
841   }
842   return cycles;
843 #undef FLD
844 }
845
846 UINT
847 sh4a_sh4a_model::model_cmpeq_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
848 {
849 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
850   const sh4a_scache* abuf = sem;
851   const sh4a_idesc* idesc = abuf->idesc;
852   int cycles = 0;
853   {
854     INT in_usereg = -1;
855     in_usereg = FLD (in_rn);
856     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
857   }
858   {
859     INT in_usereg = -1;
860     in_usereg = FLD (in_rm);
861     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
862   }
863   {
864     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
865   }
866   {
867     cycles += model_u_exec_before (current_cpu, idesc, 3);
868   }
869   {
870     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
871   }
872   return cycles;
873 #undef FLD
874 }
875
876 UINT
877 sh4a_sh4a_model::model_cmpeq_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
878 {
879 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
880   const sh4a_scache* abuf = sem;
881   const sh4a_idesc* idesc = abuf->idesc;
882   int cycles = 0;
883   {
884     int referenced = 0;
885     unsigned long long insn_referenced = abuf->written;
886     INT in_usereg = -1;
887     in_usereg = FLD (in_rn);
888     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
889   }
890   {
891     int referenced = 0;
892     unsigned long long insn_referenced = abuf->written;
893     INT in_usereg = -1;
894     in_usereg = FLD (in_rm);
895     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
896   }
897   {
898     int referenced = 0;
899     unsigned long long insn_referenced = abuf->written;
900     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
901   }
902   {
903     int referenced = 0;
904     unsigned long long insn_referenced = abuf->written;
905     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
906   }
907   {
908     int referenced = 0;
909     unsigned long long insn_referenced = abuf->written;
910     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
911   }
912   return cycles;
913 #undef FLD
914 }
915
916 UINT
917 sh4a_sh4a_model::model_cmpeqi_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
918 {
919 #define FLD(f) abuf->fields.sfmt_andi_compact.f
920   const sh4a_scache* abuf = sem;
921   const sh4a_idesc* idesc = abuf->idesc;
922   int cycles = 0;
923   {
924     INT in_usereg = -1;
925     in_usereg = FLD (in_r0);
926     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
927   }
928   {
929     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
930   }
931   {
932     cycles += model_u_exec_before (current_cpu, idesc, 2);
933   }
934   {
935     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
936   }
937   return cycles;
938 #undef FLD
939 }
940
941 UINT
942 sh4a_sh4a_model::model_cmpeqi_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
943 {
944 #define FLD(f) abuf->fields.sfmt_andi_compact.f
945   const sh4a_scache* abuf = sem;
946   const sh4a_idesc* idesc = abuf->idesc;
947   int cycles = 0;
948   {
949     int referenced = 0;
950     unsigned long long insn_referenced = abuf->written;
951     INT in_usereg = -1;
952     in_usereg = FLD (in_r0);
953     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
954   }
955   {
956     int referenced = 0;
957     unsigned long long insn_referenced = abuf->written;
958     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
959   }
960   {
961     int referenced = 0;
962     unsigned long long insn_referenced = abuf->written;
963     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
964   }
965   {
966     int referenced = 0;
967     unsigned long long insn_referenced = abuf->written;
968     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
969   }
970   return cycles;
971 #undef FLD
972 }
973
974 UINT
975 sh4a_sh4a_model::model_cmpge_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
976 {
977 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
978   const sh4a_scache* abuf = sem;
979   const sh4a_idesc* idesc = abuf->idesc;
980   int cycles = 0;
981   {
982     INT in_usereg = -1;
983     in_usereg = FLD (in_rn);
984     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
985   }
986   {
987     INT in_usereg = -1;
988     in_usereg = FLD (in_rm);
989     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
990   }
991   {
992     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
993   }
994   {
995     cycles += model_u_exec_before (current_cpu, idesc, 3);
996   }
997   {
998     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
999   }
1000   return cycles;
1001 #undef FLD
1002 }
1003
1004 UINT
1005 sh4a_sh4a_model::model_cmpge_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1006 {
1007 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1008   const sh4a_scache* abuf = sem;
1009   const sh4a_idesc* idesc = abuf->idesc;
1010   int cycles = 0;
1011   {
1012     int referenced = 0;
1013     unsigned long long insn_referenced = abuf->written;
1014     INT in_usereg = -1;
1015     in_usereg = FLD (in_rn);
1016     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1017   }
1018   {
1019     int referenced = 0;
1020     unsigned long long insn_referenced = abuf->written;
1021     INT in_usereg = -1;
1022     in_usereg = FLD (in_rm);
1023     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1024   }
1025   {
1026     int referenced = 0;
1027     unsigned long long insn_referenced = abuf->written;
1028     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1029   }
1030   {
1031     int referenced = 0;
1032     unsigned long long insn_referenced = abuf->written;
1033     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1034   }
1035   {
1036     int referenced = 0;
1037     unsigned long long insn_referenced = abuf->written;
1038     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1039   }
1040   return cycles;
1041 #undef FLD
1042 }
1043
1044 UINT
1045 sh4a_sh4a_model::model_cmpgt_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1046 {
1047 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1048   const sh4a_scache* abuf = sem;
1049   const sh4a_idesc* idesc = abuf->idesc;
1050   int cycles = 0;
1051   {
1052     INT in_usereg = -1;
1053     in_usereg = FLD (in_rn);
1054     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1055   }
1056   {
1057     INT in_usereg = -1;
1058     in_usereg = FLD (in_rm);
1059     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1060   }
1061   {
1062     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1063   }
1064   {
1065     cycles += model_u_exec_before (current_cpu, idesc, 3);
1066   }
1067   {
1068     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1069   }
1070   return cycles;
1071 #undef FLD
1072 }
1073
1074 UINT
1075 sh4a_sh4a_model::model_cmpgt_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1076 {
1077 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1078   const sh4a_scache* abuf = sem;
1079   const sh4a_idesc* idesc = abuf->idesc;
1080   int cycles = 0;
1081   {
1082     int referenced = 0;
1083     unsigned long long insn_referenced = abuf->written;
1084     INT in_usereg = -1;
1085     in_usereg = FLD (in_rn);
1086     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1087   }
1088   {
1089     int referenced = 0;
1090     unsigned long long insn_referenced = abuf->written;
1091     INT in_usereg = -1;
1092     in_usereg = FLD (in_rm);
1093     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1094   }
1095   {
1096     int referenced = 0;
1097     unsigned long long insn_referenced = abuf->written;
1098     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1099   }
1100   {
1101     int referenced = 0;
1102     unsigned long long insn_referenced = abuf->written;
1103     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1104   }
1105   {
1106     int referenced = 0;
1107     unsigned long long insn_referenced = abuf->written;
1108     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1109   }
1110   return cycles;
1111 #undef FLD
1112 }
1113
1114 UINT
1115 sh4a_sh4a_model::model_cmphi_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1116 {
1117 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1118   const sh4a_scache* abuf = sem;
1119   const sh4a_idesc* idesc = abuf->idesc;
1120   int cycles = 0;
1121   {
1122     INT in_usereg = -1;
1123     in_usereg = FLD (in_rn);
1124     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1125   }
1126   {
1127     INT in_usereg = -1;
1128     in_usereg = FLD (in_rm);
1129     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1130   }
1131   {
1132     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1133   }
1134   {
1135     cycles += model_u_exec_before (current_cpu, idesc, 3);
1136   }
1137   {
1138     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1139   }
1140   return cycles;
1141 #undef FLD
1142 }
1143
1144 UINT
1145 sh4a_sh4a_model::model_cmphi_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1146 {
1147 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1148   const sh4a_scache* abuf = sem;
1149   const sh4a_idesc* idesc = abuf->idesc;
1150   int cycles = 0;
1151   {
1152     int referenced = 0;
1153     unsigned long long insn_referenced = abuf->written;
1154     INT in_usereg = -1;
1155     in_usereg = FLD (in_rn);
1156     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1157   }
1158   {
1159     int referenced = 0;
1160     unsigned long long insn_referenced = abuf->written;
1161     INT in_usereg = -1;
1162     in_usereg = FLD (in_rm);
1163     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1164   }
1165   {
1166     int referenced = 0;
1167     unsigned long long insn_referenced = abuf->written;
1168     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1169   }
1170   {
1171     int referenced = 0;
1172     unsigned long long insn_referenced = abuf->written;
1173     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1174   }
1175   {
1176     int referenced = 0;
1177     unsigned long long insn_referenced = abuf->written;
1178     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1179   }
1180   return cycles;
1181 #undef FLD
1182 }
1183
1184 UINT
1185 sh4a_sh4a_model::model_cmphs_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1186 {
1187 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1188   const sh4a_scache* abuf = sem;
1189   const sh4a_idesc* idesc = abuf->idesc;
1190   int cycles = 0;
1191   {
1192     INT in_usereg = -1;
1193     in_usereg = FLD (in_rn);
1194     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1195   }
1196   {
1197     INT in_usereg = -1;
1198     in_usereg = FLD (in_rm);
1199     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1200   }
1201   {
1202     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1203   }
1204   {
1205     cycles += model_u_exec_before (current_cpu, idesc, 3);
1206   }
1207   {
1208     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1209   }
1210   return cycles;
1211 #undef FLD
1212 }
1213
1214 UINT
1215 sh4a_sh4a_model::model_cmphs_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1216 {
1217 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1218   const sh4a_scache* abuf = sem;
1219   const sh4a_idesc* idesc = abuf->idesc;
1220   int cycles = 0;
1221   {
1222     int referenced = 0;
1223     unsigned long long insn_referenced = abuf->written;
1224     INT in_usereg = -1;
1225     in_usereg = FLD (in_rn);
1226     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1227   }
1228   {
1229     int referenced = 0;
1230     unsigned long long insn_referenced = abuf->written;
1231     INT in_usereg = -1;
1232     in_usereg = FLD (in_rm);
1233     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1234   }
1235   {
1236     int referenced = 0;
1237     unsigned long long insn_referenced = abuf->written;
1238     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1239   }
1240   {
1241     int referenced = 0;
1242     unsigned long long insn_referenced = abuf->written;
1243     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1244   }
1245   {
1246     int referenced = 0;
1247     unsigned long long insn_referenced = abuf->written;
1248     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1249   }
1250   return cycles;
1251 #undef FLD
1252 }
1253
1254 UINT
1255 sh4a_sh4a_model::model_cmppl_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1256 {
1257 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
1258   const sh4a_scache* abuf = sem;
1259   const sh4a_idesc* idesc = abuf->idesc;
1260   int cycles = 0;
1261   {
1262     INT in_usereg = -1;
1263     in_usereg = FLD (in_rn);
1264     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1265   }
1266   {
1267     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
1268   }
1269   {
1270     cycles += model_u_exec_before (current_cpu, idesc, 2);
1271   }
1272   {
1273     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
1274   }
1275   return cycles;
1276 #undef FLD
1277 }
1278
1279 UINT
1280 sh4a_sh4a_model::model_cmppl_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1281 {
1282 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
1283   const sh4a_scache* abuf = sem;
1284   const sh4a_idesc* idesc = abuf->idesc;
1285   int cycles = 0;
1286   {
1287     int referenced = 0;
1288     unsigned long long insn_referenced = abuf->written;
1289     INT in_usereg = -1;
1290     in_usereg = FLD (in_rn);
1291     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1292   }
1293   {
1294     int referenced = 0;
1295     unsigned long long insn_referenced = abuf->written;
1296     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
1297   }
1298   {
1299     int referenced = 0;
1300     unsigned long long insn_referenced = abuf->written;
1301     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
1302   }
1303   {
1304     int referenced = 0;
1305     unsigned long long insn_referenced = abuf->written;
1306     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
1307   }
1308   return cycles;
1309 #undef FLD
1310 }
1311
1312 UINT
1313 sh4a_sh4a_model::model_cmppz_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1314 {
1315 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
1316   const sh4a_scache* abuf = sem;
1317   const sh4a_idesc* idesc = abuf->idesc;
1318   int cycles = 0;
1319   {
1320     INT in_usereg = -1;
1321     in_usereg = FLD (in_rn);
1322     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1323   }
1324   {
1325     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
1326   }
1327   {
1328     cycles += model_u_exec_before (current_cpu, idesc, 2);
1329   }
1330   {
1331     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
1332   }
1333   return cycles;
1334 #undef FLD
1335 }
1336
1337 UINT
1338 sh4a_sh4a_model::model_cmppz_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1339 {
1340 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
1341   const sh4a_scache* abuf = sem;
1342   const sh4a_idesc* idesc = abuf->idesc;
1343   int cycles = 0;
1344   {
1345     int referenced = 0;
1346     unsigned long long insn_referenced = abuf->written;
1347     INT in_usereg = -1;
1348     in_usereg = FLD (in_rn);
1349     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1350   }
1351   {
1352     int referenced = 0;
1353     unsigned long long insn_referenced = abuf->written;
1354     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
1355   }
1356   {
1357     int referenced = 0;
1358     unsigned long long insn_referenced = abuf->written;
1359     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
1360   }
1361   {
1362     int referenced = 0;
1363     unsigned long long insn_referenced = abuf->written;
1364     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
1365   }
1366   return cycles;
1367 #undef FLD
1368 }
1369
1370 UINT
1371 sh4a_sh4a_model::model_cmpstr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1372 {
1373 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1374   const sh4a_scache* abuf = sem;
1375   const sh4a_idesc* idesc = abuf->idesc;
1376   int cycles = 0;
1377   {
1378     INT in_usereg = -1;
1379     in_usereg = FLD (in_rn);
1380     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1381   }
1382   {
1383     INT in_usereg = -1;
1384     in_usereg = FLD (in_rm);
1385     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1386   }
1387   {
1388     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1389   }
1390   {
1391     cycles += model_u_exec_before (current_cpu, idesc, 3);
1392   }
1393   {
1394     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1395   }
1396   return cycles;
1397 #undef FLD
1398 }
1399
1400 UINT
1401 sh4a_sh4a_model::model_cmpstr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1402 {
1403 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1404   const sh4a_scache* abuf = sem;
1405   const sh4a_idesc* idesc = abuf->idesc;
1406   int cycles = 0;
1407   {
1408     int referenced = 0;
1409     unsigned long long insn_referenced = abuf->written;
1410     INT in_usereg = -1;
1411     in_usereg = FLD (in_rn);
1412     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1413   }
1414   {
1415     int referenced = 0;
1416     unsigned long long insn_referenced = abuf->written;
1417     INT in_usereg = -1;
1418     in_usereg = FLD (in_rm);
1419     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1420   }
1421   {
1422     int referenced = 0;
1423     unsigned long long insn_referenced = abuf->written;
1424     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1425   }
1426   {
1427     int referenced = 0;
1428     unsigned long long insn_referenced = abuf->written;
1429     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1430   }
1431   {
1432     int referenced = 0;
1433     unsigned long long insn_referenced = abuf->written;
1434     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1435   }
1436   return cycles;
1437 #undef FLD
1438 }
1439
1440 UINT
1441 sh4a_sh4a_model::model_div0s_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1442 {
1443 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1444   const sh4a_scache* abuf = sem;
1445   const sh4a_idesc* idesc = abuf->idesc;
1446   int cycles = 0;
1447   {
1448     INT in_usereg = -1;
1449     in_usereg = FLD (in_rn);
1450     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1451   }
1452   {
1453     INT in_usereg = -1;
1454     in_usereg = FLD (in_rm);
1455     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1456   }
1457   {
1458     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1459   }
1460   {
1461     cycles += model_u_exec_before (current_cpu, idesc, 3);
1462   }
1463   {
1464     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1465   }
1466   return cycles;
1467 #undef FLD
1468 }
1469
1470 UINT
1471 sh4a_sh4a_model::model_div0s_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1472 {
1473 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1474   const sh4a_scache* abuf = sem;
1475   const sh4a_idesc* idesc = abuf->idesc;
1476   int cycles = 0;
1477   {
1478     int referenced = 0;
1479     unsigned long long insn_referenced = abuf->written;
1480     INT in_usereg = -1;
1481     in_usereg = FLD (in_rn);
1482     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1483   }
1484   {
1485     int referenced = 0;
1486     unsigned long long insn_referenced = abuf->written;
1487     INT in_usereg = -1;
1488     in_usereg = FLD (in_rm);
1489     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1490   }
1491   {
1492     int referenced = 0;
1493     unsigned long long insn_referenced = abuf->written;
1494     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1495   }
1496   {
1497     int referenced = 0;
1498     unsigned long long insn_referenced = abuf->written;
1499     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1500   }
1501   {
1502     int referenced = 0;
1503     unsigned long long insn_referenced = abuf->written;
1504     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1505   }
1506   return cycles;
1507 #undef FLD
1508 }
1509
1510 UINT
1511 sh4a_sh4a_model::model_div0u_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1512 {
1513 #define FLD(f) abuf->fields.fmt_empty.f
1514   const sh4a_scache* abuf = sem;
1515   const sh4a_idesc* idesc = abuf->idesc;
1516   int cycles = 0;
1517   {
1518     cycles += model_u_use_tbit_before (current_cpu, idesc, 0);
1519   }
1520   {
1521     cycles += model_u_exec_before (current_cpu, idesc, 1);
1522   }
1523   {
1524     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 2);
1525   }
1526   return cycles;
1527 #undef FLD
1528 }
1529
1530 UINT
1531 sh4a_sh4a_model::model_div0u_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1532 {
1533 #define FLD(f) abuf->fields.fmt_empty.f
1534   const sh4a_scache* abuf = sem;
1535   const sh4a_idesc* idesc = abuf->idesc;
1536   int cycles = 0;
1537   {
1538     int referenced = 0;
1539     unsigned long long insn_referenced = abuf->written;
1540     cycles += model_u_use_tbit_after (current_cpu, idesc, 0, referenced);
1541   }
1542   {
1543     int referenced = 0;
1544     unsigned long long insn_referenced = abuf->written;
1545     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1546   }
1547   {
1548     int referenced = 0;
1549     unsigned long long insn_referenced = abuf->written;
1550     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 2, referenced);
1551   }
1552   return cycles;
1553 #undef FLD
1554 }
1555
1556 UINT
1557 sh4a_sh4a_model::model_div1_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1558 {
1559 #define FLD(f) abuf->fields.sfmt_macl_compact.f
1560   const sh4a_scache* abuf = sem;
1561   const sh4a_idesc* idesc = abuf->idesc;
1562   int cycles = 0;
1563   {
1564     INT in_usereg = -1;
1565     in_usereg = FLD (in_rn);
1566     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1567   }
1568   {
1569     INT in_usereg = -1;
1570     in_usereg = FLD (in_rm);
1571     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1572   }
1573   {
1574     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1575   }
1576   {
1577     cycles += model_u_exec_before (current_cpu, idesc, 3);
1578   }
1579   {
1580     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1581   }
1582   return cycles;
1583 #undef FLD
1584 }
1585
1586 UINT
1587 sh4a_sh4a_model::model_div1_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1588 {
1589 #define FLD(f) abuf->fields.sfmt_macl_compact.f
1590   const sh4a_scache* abuf = sem;
1591   const sh4a_idesc* idesc = abuf->idesc;
1592   int cycles = 0;
1593   {
1594     int referenced = 0;
1595     unsigned long long insn_referenced = abuf->written;
1596     INT in_usereg = -1;
1597     in_usereg = FLD (in_rn);
1598     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1599   }
1600   {
1601     int referenced = 0;
1602     unsigned long long insn_referenced = abuf->written;
1603     INT in_usereg = -1;
1604     in_usereg = FLD (in_rm);
1605     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1606   }
1607   {
1608     int referenced = 0;
1609     unsigned long long insn_referenced = abuf->written;
1610     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1611   }
1612   {
1613     int referenced = 0;
1614     unsigned long long insn_referenced = abuf->written;
1615     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1616   }
1617   {
1618     int referenced = 0;
1619     unsigned long long insn_referenced = abuf->written;
1620     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1621   }
1622   return cycles;
1623 #undef FLD
1624 }
1625
1626 UINT
1627 sh4a_sh4a_model::model_dmulsl_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1628 {
1629 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1630   const sh4a_scache* abuf = sem;
1631   const sh4a_idesc* idesc = abuf->idesc;
1632   int cycles = 0;
1633   {
1634     INT in_usereg = -1;
1635     in_usereg = FLD (in_rn);
1636     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1637   }
1638   {
1639     INT in_usereg = -1;
1640     in_usereg = FLD (in_rm);
1641     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1642   }
1643   {
1644     cycles += model_u_dmul_before (current_cpu, idesc, 2);
1645   }
1646   return cycles;
1647 #undef FLD
1648 }
1649
1650 UINT
1651 sh4a_sh4a_model::model_dmulsl_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1652 {
1653 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1654   const sh4a_scache* abuf = sem;
1655   const sh4a_idesc* idesc = abuf->idesc;
1656   int cycles = 0;
1657   {
1658     int referenced = 0;
1659     unsigned long long insn_referenced = abuf->written;
1660     INT in_usereg = -1;
1661     in_usereg = FLD (in_rn);
1662     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1663   }
1664   {
1665     int referenced = 0;
1666     unsigned long long insn_referenced = abuf->written;
1667     INT in_usereg = -1;
1668     in_usereg = FLD (in_rm);
1669     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1670   }
1671   {
1672     int referenced = 0;
1673     unsigned long long insn_referenced = abuf->written;
1674     cycles += model_u_dmul_after (current_cpu, idesc, 2, referenced);
1675   }
1676   return cycles;
1677 #undef FLD
1678 }
1679
1680 UINT
1681 sh4a_sh4a_model::model_dmulul_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1682 {
1683 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1684   const sh4a_scache* abuf = sem;
1685   const sh4a_idesc* idesc = abuf->idesc;
1686   int cycles = 0;
1687   {
1688     INT in_usereg = -1;
1689     in_usereg = FLD (in_rn);
1690     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1691   }
1692   {
1693     INT in_usereg = -1;
1694     in_usereg = FLD (in_rm);
1695     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1696   }
1697   {
1698     cycles += model_u_dmul_before (current_cpu, idesc, 2);
1699   }
1700   return cycles;
1701 #undef FLD
1702 }
1703
1704 UINT
1705 sh4a_sh4a_model::model_dmulul_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1706 {
1707 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1708   const sh4a_scache* abuf = sem;
1709   const sh4a_idesc* idesc = abuf->idesc;
1710   int cycles = 0;
1711   {
1712     int referenced = 0;
1713     unsigned long long insn_referenced = abuf->written;
1714     INT in_usereg = -1;
1715     in_usereg = FLD (in_rn);
1716     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1717   }
1718   {
1719     int referenced = 0;
1720     unsigned long long insn_referenced = abuf->written;
1721     INT in_usereg = -1;
1722     in_usereg = FLD (in_rm);
1723     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1724   }
1725   {
1726     int referenced = 0;
1727     unsigned long long insn_referenced = abuf->written;
1728     cycles += model_u_dmul_after (current_cpu, idesc, 2, referenced);
1729   }
1730   return cycles;
1731 #undef FLD
1732 }
1733
1734 UINT
1735 sh4a_sh4a_model::model_dt_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1736 {
1737 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
1738   const sh4a_scache* abuf = sem;
1739   const sh4a_idesc* idesc = abuf->idesc;
1740   int cycles = 0;
1741   {
1742     INT in_usereg = -1;
1743     in_usereg = FLD (in_rn);
1744     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1745   }
1746   {
1747     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
1748   }
1749   {
1750     cycles += model_u_exec_before (current_cpu, idesc, 2);
1751   }
1752   {
1753     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
1754   }
1755   return cycles;
1756 #undef FLD
1757 }
1758
1759 UINT
1760 sh4a_sh4a_model::model_dt_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1761 {
1762 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
1763   const sh4a_scache* abuf = sem;
1764   const sh4a_idesc* idesc = abuf->idesc;
1765   int cycles = 0;
1766   {
1767     int referenced = 0;
1768     unsigned long long insn_referenced = abuf->written;
1769     INT in_usereg = -1;
1770     in_usereg = FLD (in_rn);
1771     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1772   }
1773   {
1774     int referenced = 0;
1775     unsigned long long insn_referenced = abuf->written;
1776     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
1777   }
1778   {
1779     int referenced = 0;
1780     unsigned long long insn_referenced = abuf->written;
1781     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
1782   }
1783   {
1784     int referenced = 0;
1785     unsigned long long insn_referenced = abuf->written;
1786     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
1787   }
1788   return cycles;
1789 #undef FLD
1790 }
1791
1792 UINT
1793 sh4a_sh4a_model::model_extsb_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1794 {
1795 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1796   const sh4a_scache* abuf = sem;
1797   const sh4a_idesc* idesc = abuf->idesc;
1798   int cycles = 0;
1799   {
1800     INT in_usereg = -1;
1801     in_usereg = FLD (in_rm);
1802     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1803   }
1804   {
1805     cycles += model_u_exec_before (current_cpu, idesc, 1);
1806   }
1807   {
1808     cycles += model_u_shift_before (current_cpu, idesc, 2);
1809   }
1810   return cycles;
1811 #undef FLD
1812 }
1813
1814 UINT
1815 sh4a_sh4a_model::model_extsb_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1816 {
1817 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1818   const sh4a_scache* abuf = sem;
1819   const sh4a_idesc* idesc = abuf->idesc;
1820   int cycles = 0;
1821   {
1822     int referenced = 0;
1823     unsigned long long insn_referenced = abuf->written;
1824     INT in_usereg = -1;
1825     in_usereg = FLD (in_rm);
1826     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1827   }
1828   {
1829     int referenced = 0;
1830     unsigned long long insn_referenced = abuf->written;
1831     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1832   }
1833   {
1834     int referenced = 0;
1835     unsigned long long insn_referenced = abuf->written;
1836     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
1837   }
1838   return cycles;
1839 #undef FLD
1840 }
1841
1842 UINT
1843 sh4a_sh4a_model::model_extsw_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1844 {
1845 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1846   const sh4a_scache* abuf = sem;
1847   const sh4a_idesc* idesc = abuf->idesc;
1848   int cycles = 0;
1849   {
1850     INT in_usereg = -1;
1851     in_usereg = FLD (in_rm);
1852     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1853   }
1854   {
1855     cycles += model_u_exec_before (current_cpu, idesc, 1);
1856   }
1857   {
1858     cycles += model_u_shift_before (current_cpu, idesc, 2);
1859   }
1860   return cycles;
1861 #undef FLD
1862 }
1863
1864 UINT
1865 sh4a_sh4a_model::model_extsw_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1866 {
1867 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1868   const sh4a_scache* abuf = sem;
1869   const sh4a_idesc* idesc = abuf->idesc;
1870   int cycles = 0;
1871   {
1872     int referenced = 0;
1873     unsigned long long insn_referenced = abuf->written;
1874     INT in_usereg = -1;
1875     in_usereg = FLD (in_rm);
1876     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1877   }
1878   {
1879     int referenced = 0;
1880     unsigned long long insn_referenced = abuf->written;
1881     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1882   }
1883   {
1884     int referenced = 0;
1885     unsigned long long insn_referenced = abuf->written;
1886     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
1887   }
1888   return cycles;
1889 #undef FLD
1890 }
1891
1892 UINT
1893 sh4a_sh4a_model::model_extub_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1894 {
1895 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1896   const sh4a_scache* abuf = sem;
1897   const sh4a_idesc* idesc = abuf->idesc;
1898   int cycles = 0;
1899   {
1900     INT in_usereg = -1;
1901     in_usereg = FLD (in_rm);
1902     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1903   }
1904   {
1905     cycles += model_u_exec_before (current_cpu, idesc, 1);
1906   }
1907   {
1908     cycles += model_u_shift_before (current_cpu, idesc, 2);
1909   }
1910   return cycles;
1911 #undef FLD
1912 }
1913
1914 UINT
1915 sh4a_sh4a_model::model_extub_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1916 {
1917 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1918   const sh4a_scache* abuf = sem;
1919   const sh4a_idesc* idesc = abuf->idesc;
1920   int cycles = 0;
1921   {
1922     int referenced = 0;
1923     unsigned long long insn_referenced = abuf->written;
1924     INT in_usereg = -1;
1925     in_usereg = FLD (in_rm);
1926     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1927   }
1928   {
1929     int referenced = 0;
1930     unsigned long long insn_referenced = abuf->written;
1931     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1932   }
1933   {
1934     int referenced = 0;
1935     unsigned long long insn_referenced = abuf->written;
1936     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
1937   }
1938   return cycles;
1939 #undef FLD
1940 }
1941
1942 UINT
1943 sh4a_sh4a_model::model_extuw_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1944 {
1945 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1946   const sh4a_scache* abuf = sem;
1947   const sh4a_idesc* idesc = abuf->idesc;
1948   int cycles = 0;
1949   {
1950     INT in_usereg = -1;
1951     in_usereg = FLD (in_rm);
1952     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1953   }
1954   {
1955     cycles += model_u_exec_before (current_cpu, idesc, 1);
1956   }
1957   {
1958     cycles += model_u_shift_before (current_cpu, idesc, 2);
1959   }
1960   return cycles;
1961 #undef FLD
1962 }
1963
1964 UINT
1965 sh4a_sh4a_model::model_extuw_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
1966 {
1967 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1968   const sh4a_scache* abuf = sem;
1969   const sh4a_idesc* idesc = abuf->idesc;
1970   int cycles = 0;
1971   {
1972     int referenced = 0;
1973     unsigned long long insn_referenced = abuf->written;
1974     INT in_usereg = -1;
1975     in_usereg = FLD (in_rm);
1976     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1977   }
1978   {
1979     int referenced = 0;
1980     unsigned long long insn_referenced = abuf->written;
1981     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1982   }
1983   {
1984     int referenced = 0;
1985     unsigned long long insn_referenced = abuf->written;
1986     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
1987   }
1988   return cycles;
1989 #undef FLD
1990 }
1991
1992 UINT
1993 sh4a_sh4a_model::model_fabs_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
1994 {
1995 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
1996   const sh4a_scache* abuf = sem;
1997   const sh4a_idesc* idesc = abuf->idesc;
1998   int cycles = 0;
1999   {
2000     INT in_usereg = -1;
2001     in_usereg = FLD (in_fsdn);
2002     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
2003   }
2004   {
2005     cycles += model_u_exec_before (current_cpu, idesc, 1);
2006   }
2007   {
2008     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 2);
2009   }
2010   {
2011     INT out_loadreg = -1;
2012     out_loadreg = FLD (out_fsdn);
2013     cycles += model_u_set_fr_0_before (current_cpu, idesc, 3, out_loadreg);
2014   }
2015   return cycles;
2016 #undef FLD
2017 }
2018
2019 UINT
2020 sh4a_sh4a_model::model_fabs_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2021 {
2022 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
2023   const sh4a_scache* abuf = sem;
2024   const sh4a_idesc* idesc = abuf->idesc;
2025   int cycles = 0;
2026   {
2027     int referenced = 0;
2028     unsigned long long insn_referenced = abuf->written;
2029     INT in_usereg = -1;
2030     in_usereg = FLD (in_fsdn);
2031     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
2032   }
2033   {
2034     int referenced = 0;
2035     unsigned long long insn_referenced = abuf->written;
2036     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
2037   }
2038   {
2039     int referenced = 0;
2040     unsigned long long insn_referenced = abuf->written;
2041     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 2, referenced);
2042   }
2043   {
2044     int referenced = 0;
2045     unsigned long long insn_referenced = abuf->written;
2046     INT out_loadreg = -1;
2047     out_loadreg = FLD (out_fsdn);
2048     cycles += model_u_set_fr_0_after (current_cpu, idesc, 3, referenced, out_loadreg);
2049   }
2050   return cycles;
2051 #undef FLD
2052 }
2053
2054 UINT
2055 sh4a_sh4a_model::model_fadd_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2056 {
2057 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
2058   const sh4a_scache* abuf = sem;
2059   const sh4a_idesc* idesc = abuf->idesc;
2060   int cycles = 0;
2061   {
2062     INT in_usereg = -1;
2063     in_usereg = FLD (in_fsdm);
2064     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
2065   }
2066   {
2067     INT in_usereg = -1;
2068     in_usereg = FLD (in_fsdn);
2069     cycles += model_u_use_fr_before (current_cpu, idesc, 1, in_usereg);
2070   }
2071   {
2072     cycles += model_u_exec_before (current_cpu, idesc, 2);
2073   }
2074   {
2075     cycles += model_u_fpu_before (current_cpu, idesc, 3);
2076   }
2077   {
2078     INT out_loadreg = -1;
2079     out_loadreg = FLD (out_fsdn);
2080     cycles += model_u_set_fr_before (current_cpu, idesc, 4, out_loadreg);
2081   }
2082   return cycles;
2083 #undef FLD
2084 }
2085
2086 UINT
2087 sh4a_sh4a_model::model_fadd_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2088 {
2089 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
2090   const sh4a_scache* abuf = sem;
2091   const sh4a_idesc* idesc = abuf->idesc;
2092   int cycles = 0;
2093   {
2094     int referenced = 0;
2095     unsigned long long insn_referenced = abuf->written;
2096     INT in_usereg = -1;
2097     in_usereg = FLD (in_fsdm);
2098     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
2099   }
2100   {
2101     int referenced = 0;
2102     unsigned long long insn_referenced = abuf->written;
2103     INT in_usereg = -1;
2104     in_usereg = FLD (in_fsdn);
2105     cycles += model_u_use_fr_after (current_cpu, idesc, 1, referenced, in_usereg);
2106   }
2107   {
2108     int referenced = 0;
2109     unsigned long long insn_referenced = abuf->written;
2110     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2111   }
2112   {
2113     int referenced = 0;
2114     unsigned long long insn_referenced = abuf->written;
2115     cycles += model_u_fpu_after (current_cpu, idesc, 3, referenced);
2116   }
2117   {
2118     int referenced = 0;
2119     unsigned long long insn_referenced = abuf->written;
2120     INT out_loadreg = -1;
2121     out_loadreg = FLD (out_fsdn);
2122     cycles += model_u_set_fr_after (current_cpu, idesc, 4, referenced, out_loadreg);
2123   }
2124   return cycles;
2125 #undef FLD
2126 }
2127
2128 UINT
2129 sh4a_sh4a_model::model_fcmpeq_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2130 {
2131 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
2132   const sh4a_scache* abuf = sem;
2133   const sh4a_idesc* idesc = abuf->idesc;
2134   int cycles = 0;
2135   {
2136     INT in_usereg = -1;
2137     in_usereg = FLD (in_fsdm);
2138     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
2139   }
2140   {
2141     INT in_usereg = -1;
2142     in_usereg = FLD (in_fsdn);
2143     cycles += model_u_use_fr_before (current_cpu, idesc, 1, in_usereg);
2144   }
2145   {
2146     cycles += model_u_exec_before (current_cpu, idesc, 2);
2147   }
2148   {
2149     cycles += model_u_fcmp_before (current_cpu, idesc, 3);
2150   }
2151   {
2152     cycles += model_u_fpu_before (current_cpu, idesc, 4);
2153   }
2154   return cycles;
2155 #undef FLD
2156 }
2157
2158 UINT
2159 sh4a_sh4a_model::model_fcmpeq_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2160 {
2161 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
2162   const sh4a_scache* abuf = sem;
2163   const sh4a_idesc* idesc = abuf->idesc;
2164   int cycles = 0;
2165   {
2166     int referenced = 0;
2167     unsigned long long insn_referenced = abuf->written;
2168     INT in_usereg = -1;
2169     in_usereg = FLD (in_fsdm);
2170     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
2171   }
2172   {
2173     int referenced = 0;
2174     unsigned long long insn_referenced = abuf->written;
2175     INT in_usereg = -1;
2176     in_usereg = FLD (in_fsdn);
2177     cycles += model_u_use_fr_after (current_cpu, idesc, 1, referenced, in_usereg);
2178   }
2179   {
2180     int referenced = 0;
2181     unsigned long long insn_referenced = abuf->written;
2182     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2183   }
2184   {
2185     int referenced = 0;
2186     unsigned long long insn_referenced = abuf->written;
2187     cycles += model_u_fcmp_after (current_cpu, idesc, 3, referenced);
2188   }
2189   {
2190     int referenced = 0;
2191     unsigned long long insn_referenced = abuf->written;
2192     cycles += model_u_fpu_after (current_cpu, idesc, 4, referenced);
2193   }
2194   return cycles;
2195 #undef FLD
2196 }
2197
2198 UINT
2199 sh4a_sh4a_model::model_fcmpgt_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2200 {
2201 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
2202   const sh4a_scache* abuf = sem;
2203   const sh4a_idesc* idesc = abuf->idesc;
2204   int cycles = 0;
2205   {
2206     INT in_usereg = -1;
2207     in_usereg = FLD (in_fsdm);
2208     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
2209   }
2210   {
2211     INT in_usereg = -1;
2212     in_usereg = FLD (in_fsdn);
2213     cycles += model_u_use_fr_before (current_cpu, idesc, 1, in_usereg);
2214   }
2215   {
2216     cycles += model_u_exec_before (current_cpu, idesc, 2);
2217   }
2218   {
2219     cycles += model_u_fcmp_before (current_cpu, idesc, 3);
2220   }
2221   {
2222     cycles += model_u_fpu_before (current_cpu, idesc, 4);
2223   }
2224   return cycles;
2225 #undef FLD
2226 }
2227
2228 UINT
2229 sh4a_sh4a_model::model_fcmpgt_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2230 {
2231 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
2232   const sh4a_scache* abuf = sem;
2233   const sh4a_idesc* idesc = abuf->idesc;
2234   int cycles = 0;
2235   {
2236     int referenced = 0;
2237     unsigned long long insn_referenced = abuf->written;
2238     INT in_usereg = -1;
2239     in_usereg = FLD (in_fsdm);
2240     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
2241   }
2242   {
2243     int referenced = 0;
2244     unsigned long long insn_referenced = abuf->written;
2245     INT in_usereg = -1;
2246     in_usereg = FLD (in_fsdn);
2247     cycles += model_u_use_fr_after (current_cpu, idesc, 1, referenced, in_usereg);
2248   }
2249   {
2250     int referenced = 0;
2251     unsigned long long insn_referenced = abuf->written;
2252     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2253   }
2254   {
2255     int referenced = 0;
2256     unsigned long long insn_referenced = abuf->written;
2257     cycles += model_u_fcmp_after (current_cpu, idesc, 3, referenced);
2258   }
2259   {
2260     int referenced = 0;
2261     unsigned long long insn_referenced = abuf->written;
2262     cycles += model_u_fpu_after (current_cpu, idesc, 4, referenced);
2263   }
2264   return cycles;
2265 #undef FLD
2266 }
2267
2268 UINT
2269 sh4a_sh4a_model::model_fdiv_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2270 {
2271 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
2272   const sh4a_scache* abuf = sem;
2273   const sh4a_idesc* idesc = abuf->idesc;
2274   int cycles = 0;
2275   {
2276     INT in_usereg = -1;
2277     in_usereg = FLD (in_fsdm);
2278     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
2279   }
2280   {
2281     INT in_usereg = -1;
2282     in_usereg = FLD (in_fsdn);
2283     cycles += model_u_use_fr_before (current_cpu, idesc, 1, in_usereg);
2284   }
2285   {
2286     cycles += model_u_exec_before (current_cpu, idesc, 2);
2287   }
2288   {
2289     INT out_loadreg = -1;
2290     out_loadreg = FLD (out_fsdn);
2291     cycles += model_u_fdiv_before (current_cpu, idesc, 3, out_loadreg);
2292   }
2293   return cycles;
2294 #undef FLD
2295 }
2296
2297 UINT
2298 sh4a_sh4a_model::model_fdiv_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2299 {
2300 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
2301   const sh4a_scache* abuf = sem;
2302   const sh4a_idesc* idesc = abuf->idesc;
2303   int cycles = 0;
2304   {
2305     int referenced = 0;
2306     unsigned long long insn_referenced = abuf->written;
2307     INT in_usereg = -1;
2308     in_usereg = FLD (in_fsdm);
2309     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
2310   }
2311   {
2312     int referenced = 0;
2313     unsigned long long insn_referenced = abuf->written;
2314     INT in_usereg = -1;
2315     in_usereg = FLD (in_fsdn);
2316     cycles += model_u_use_fr_after (current_cpu, idesc, 1, referenced, in_usereg);
2317   }
2318   {
2319     int referenced = 0;
2320     unsigned long long insn_referenced = abuf->written;
2321     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2322   }
2323   {
2324     int referenced = 0;
2325     unsigned long long insn_referenced = abuf->written;
2326     INT out_loadreg = -1;
2327     out_loadreg = FLD (out_fsdn);
2328     cycles += model_u_fdiv_after (current_cpu, idesc, 3, referenced, out_loadreg);
2329   }
2330   return cycles;
2331 #undef FLD
2332 }
2333
2334 UINT
2335 sh4a_sh4a_model::model_fipr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2336 {
2337 #define FLD(f) abuf->fields.sfmt_fipr_compact.f
2338   const sh4a_scache* abuf = sem;
2339   const sh4a_idesc* idesc = abuf->idesc;
2340   int cycles = 0;
2341   {
2342     cycles += model_u_exec_before (current_cpu, idesc, 0);
2343   }
2344   {
2345     INT in_fvm = -1;
2346     INT in_fvn = -1;
2347     cycles += model_u_fipr_before (current_cpu, idesc, 1, in_fvm, in_fvn);
2348   }
2349   return cycles;
2350 #undef FLD
2351 }
2352
2353 UINT
2354 sh4a_sh4a_model::model_fipr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2355 {
2356 #define FLD(f) abuf->fields.sfmt_fipr_compact.f
2357   const sh4a_scache* abuf = sem;
2358   const sh4a_idesc* idesc = abuf->idesc;
2359   int cycles = 0;
2360   {
2361     int referenced = 0;
2362     unsigned long long insn_referenced = abuf->written;
2363     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
2364   }
2365   {
2366     int referenced = 0;
2367     unsigned long long insn_referenced = abuf->written;
2368     INT in_fvm = -1;
2369     INT in_fvn = -1;
2370     cycles += model_u_fipr_after (current_cpu, idesc, 1, referenced, in_fvm, in_fvn);
2371   }
2372   return cycles;
2373 #undef FLD
2374 }
2375
2376 UINT
2377 sh4a_sh4a_model::model_flds_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2378 {
2379 #define FLD(f) abuf->fields.sfmt_flds_compact.f
2380   const sh4a_scache* abuf = sem;
2381   const sh4a_idesc* idesc = abuf->idesc;
2382   int cycles = 0;
2383   {
2384     INT in_usereg = -1;
2385     in_usereg = FLD (in_frn);
2386     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
2387   }
2388   {
2389     cycles += model_u_exec_before (current_cpu, idesc, 1);
2390   }
2391   {
2392     cycles += model_u_flds_fpul_before (current_cpu, idesc, 2);
2393   }
2394   return cycles;
2395 #undef FLD
2396 }
2397
2398 UINT
2399 sh4a_sh4a_model::model_flds_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2400 {
2401 #define FLD(f) abuf->fields.sfmt_flds_compact.f
2402   const sh4a_scache* abuf = sem;
2403   const sh4a_idesc* idesc = abuf->idesc;
2404   int cycles = 0;
2405   {
2406     int referenced = 0;
2407     unsigned long long insn_referenced = abuf->written;
2408     INT in_usereg = -1;
2409     in_usereg = FLD (in_frn);
2410     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
2411   }
2412   {
2413     int referenced = 0;
2414     unsigned long long insn_referenced = abuf->written;
2415     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
2416   }
2417   {
2418     int referenced = 0;
2419     unsigned long long insn_referenced = abuf->written;
2420     cycles += model_u_flds_fpul_after (current_cpu, idesc, 2, referenced);
2421   }
2422   return cycles;
2423 #undef FLD
2424 }
2425
2426 UINT
2427 sh4a_sh4a_model::model_fldi0_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2428 {
2429 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
2430   const sh4a_scache* abuf = sem;
2431   const sh4a_idesc* idesc = abuf->idesc;
2432   int cycles = 0;
2433   {
2434     cycles += model_u_exec_before (current_cpu, idesc, 0);
2435   }
2436   {
2437     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 1);
2438   }
2439   {
2440     INT out_loadreg = -1;
2441     out_loadreg = FLD (out_frn);
2442     cycles += model_u_set_fr_0_before (current_cpu, idesc, 2, out_loadreg);
2443   }
2444   return cycles;
2445 #undef FLD
2446 }
2447
2448 UINT
2449 sh4a_sh4a_model::model_fldi0_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2450 {
2451 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
2452   const sh4a_scache* abuf = sem;
2453   const sh4a_idesc* idesc = abuf->idesc;
2454   int cycles = 0;
2455   {
2456     int referenced = 0;
2457     unsigned long long insn_referenced = abuf->written;
2458     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
2459   }
2460   {
2461     int referenced = 0;
2462     unsigned long long insn_referenced = abuf->written;
2463     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 1, referenced);
2464   }
2465   {
2466     int referenced = 0;
2467     unsigned long long insn_referenced = abuf->written;
2468     INT out_loadreg = -1;
2469     out_loadreg = FLD (out_frn);
2470     cycles += model_u_set_fr_0_after (current_cpu, idesc, 2, referenced, out_loadreg);
2471   }
2472   return cycles;
2473 #undef FLD
2474 }
2475
2476 UINT
2477 sh4a_sh4a_model::model_fldi1_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2478 {
2479 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
2480   const sh4a_scache* abuf = sem;
2481   const sh4a_idesc* idesc = abuf->idesc;
2482   int cycles = 0;
2483   {
2484     cycles += model_u_exec_before (current_cpu, idesc, 0);
2485   }
2486   {
2487     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 1);
2488   }
2489   {
2490     INT out_loadreg = -1;
2491     out_loadreg = FLD (out_frn);
2492     cycles += model_u_set_fr_0_before (current_cpu, idesc, 2, out_loadreg);
2493   }
2494   return cycles;
2495 #undef FLD
2496 }
2497
2498 UINT
2499 sh4a_sh4a_model::model_fldi1_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2500 {
2501 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
2502   const sh4a_scache* abuf = sem;
2503   const sh4a_idesc* idesc = abuf->idesc;
2504   int cycles = 0;
2505   {
2506     int referenced = 0;
2507     unsigned long long insn_referenced = abuf->written;
2508     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
2509   }
2510   {
2511     int referenced = 0;
2512     unsigned long long insn_referenced = abuf->written;
2513     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 1, referenced);
2514   }
2515   {
2516     int referenced = 0;
2517     unsigned long long insn_referenced = abuf->written;
2518     INT out_loadreg = -1;
2519     out_loadreg = FLD (out_frn);
2520     cycles += model_u_set_fr_0_after (current_cpu, idesc, 2, referenced, out_loadreg);
2521   }
2522   return cycles;
2523 #undef FLD
2524 }
2525
2526 UINT
2527 sh4a_sh4a_model::model_float_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2528 {
2529 #define FLD(f) abuf->fields.sfmt_float_compact.f
2530   const sh4a_scache* abuf = sem;
2531   const sh4a_idesc* idesc = abuf->idesc;
2532   int cycles = 0;
2533   {
2534     cycles += model_u_use_fpul_before (current_cpu, idesc, 0);
2535   }
2536   {
2537     cycles += model_u_exec_before (current_cpu, idesc, 1);
2538   }
2539   {
2540     cycles += model_u_fpu_before (current_cpu, idesc, 2);
2541   }
2542   {
2543     INT out_loadreg = -1;
2544     out_loadreg = FLD (out_fsdn);
2545     cycles += model_u_set_fr_before (current_cpu, idesc, 3, out_loadreg);
2546   }
2547   return cycles;
2548 #undef FLD
2549 }
2550
2551 UINT
2552 sh4a_sh4a_model::model_float_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2553 {
2554 #define FLD(f) abuf->fields.sfmt_float_compact.f
2555   const sh4a_scache* abuf = sem;
2556   const sh4a_idesc* idesc = abuf->idesc;
2557   int cycles = 0;
2558   {
2559     int referenced = 0;
2560     unsigned long long insn_referenced = abuf->written;
2561     cycles += model_u_use_fpul_after (current_cpu, idesc, 0, referenced);
2562   }
2563   {
2564     int referenced = 0;
2565     unsigned long long insn_referenced = abuf->written;
2566     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
2567   }
2568   {
2569     int referenced = 0;
2570     unsigned long long insn_referenced = abuf->written;
2571     cycles += model_u_fpu_after (current_cpu, idesc, 2, referenced);
2572   }
2573   {
2574     int referenced = 0;
2575     unsigned long long insn_referenced = abuf->written;
2576     INT out_loadreg = -1;
2577     out_loadreg = FLD (out_fsdn);
2578     cycles += model_u_set_fr_after (current_cpu, idesc, 3, referenced, out_loadreg);
2579   }
2580   return cycles;
2581 #undef FLD
2582 }
2583
2584 UINT
2585 sh4a_sh4a_model::model_fmac_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2586 {
2587 #define FLD(f) abuf->fields.sfmt_fmac_compact.f
2588   const sh4a_scache* abuf = sem;
2589   const sh4a_idesc* idesc = abuf->idesc;
2590   int cycles = 0;
2591   {
2592     INT in_usereg = -1;
2593     in_usereg = FLD (in_frm);
2594     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
2595   }
2596   {
2597     INT in_usereg = -1;
2598     in_usereg = FLD (in_frn);
2599     cycles += model_u_use_fr_before (current_cpu, idesc, 1, in_usereg);
2600   }
2601   {
2602     INT in_usereg = -1;
2603     in_usereg = FLD (in_fr0);
2604     cycles += model_u_use_fr_before (current_cpu, idesc, 2, in_usereg);
2605   }
2606   {
2607     cycles += model_u_exec_before (current_cpu, idesc, 3);
2608   }
2609   {
2610     cycles += model_u_fpu_before (current_cpu, idesc, 4);
2611   }
2612   {
2613     INT out_loadreg = -1;
2614     out_loadreg = FLD (out_frn);
2615     cycles += model_u_set_fr_before (current_cpu, idesc, 5, out_loadreg);
2616   }
2617   return cycles;
2618 #undef FLD
2619 }
2620
2621 UINT
2622 sh4a_sh4a_model::model_fmac_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2623 {
2624 #define FLD(f) abuf->fields.sfmt_fmac_compact.f
2625   const sh4a_scache* abuf = sem;
2626   const sh4a_idesc* idesc = abuf->idesc;
2627   int cycles = 0;
2628   {
2629     int referenced = 0;
2630     unsigned long long insn_referenced = abuf->written;
2631     INT in_usereg = -1;
2632     in_usereg = FLD (in_frm);
2633     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
2634   }
2635   {
2636     int referenced = 0;
2637     unsigned long long insn_referenced = abuf->written;
2638     INT in_usereg = -1;
2639     in_usereg = FLD (in_frn);
2640     cycles += model_u_use_fr_after (current_cpu, idesc, 1, referenced, in_usereg);
2641   }
2642   {
2643     int referenced = 0;
2644     unsigned long long insn_referenced = abuf->written;
2645     INT in_usereg = -1;
2646     in_usereg = FLD (in_fr0);
2647     cycles += model_u_use_fr_after (current_cpu, idesc, 2, referenced, in_usereg);
2648   }
2649   {
2650     int referenced = 0;
2651     unsigned long long insn_referenced = abuf->written;
2652     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
2653   }
2654   {
2655     int referenced = 0;
2656     unsigned long long insn_referenced = abuf->written;
2657     cycles += model_u_fpu_after (current_cpu, idesc, 4, referenced);
2658   }
2659   {
2660     int referenced = 0;
2661     unsigned long long insn_referenced = abuf->written;
2662     INT out_loadreg = -1;
2663     out_loadreg = FLD (out_frn);
2664     cycles += model_u_set_fr_after (current_cpu, idesc, 5, referenced, out_loadreg);
2665   }
2666   return cycles;
2667 #undef FLD
2668 }
2669
2670 UINT
2671 sh4a_sh4a_model::model_fmov1_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2672 {
2673 #define FLD(f) abuf->fields.sfmt_fmov1_compact.f
2674   const sh4a_scache* abuf = sem;
2675   const sh4a_idesc* idesc = abuf->idesc;
2676   int cycles = 0;
2677   {
2678     INT in_usereg = -1;
2679     in_usereg = FLD (in_fmovm);
2680     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
2681   }
2682   {
2683     cycles += model_u_exec_before (current_cpu, idesc, 1);
2684   }
2685   {
2686     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 2);
2687   }
2688   {
2689     INT out_loadreg = -1;
2690     out_loadreg = FLD (out_fmovn);
2691     cycles += model_u_set_fr_0_before (current_cpu, idesc, 3, out_loadreg);
2692   }
2693   return cycles;
2694 #undef FLD
2695 }
2696
2697 UINT
2698 sh4a_sh4a_model::model_fmov1_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2699 {
2700 #define FLD(f) abuf->fields.sfmt_fmov1_compact.f
2701   const sh4a_scache* abuf = sem;
2702   const sh4a_idesc* idesc = abuf->idesc;
2703   int cycles = 0;
2704   {
2705     int referenced = 0;
2706     unsigned long long insn_referenced = abuf->written;
2707     INT in_usereg = -1;
2708     in_usereg = FLD (in_fmovm);
2709     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
2710   }
2711   {
2712     int referenced = 0;
2713     unsigned long long insn_referenced = abuf->written;
2714     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
2715   }
2716   {
2717     int referenced = 0;
2718     unsigned long long insn_referenced = abuf->written;
2719     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 2, referenced);
2720   }
2721   {
2722     int referenced = 0;
2723     unsigned long long insn_referenced = abuf->written;
2724     INT out_loadreg = -1;
2725     out_loadreg = FLD (out_fmovn);
2726     cycles += model_u_set_fr_0_after (current_cpu, idesc, 3, referenced, out_loadreg);
2727   }
2728   return cycles;
2729 #undef FLD
2730 }
2731
2732 UINT
2733 sh4a_sh4a_model::model_fmov2_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2734 {
2735 #define FLD(f) abuf->fields.sfmt_fmov4_compact.f
2736   const sh4a_scache* abuf = sem;
2737   const sh4a_idesc* idesc = abuf->idesc;
2738   int cycles = 0;
2739   {
2740     INT in_usereg = -1;
2741     in_usereg = FLD (in_rm);
2742     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2743   }
2744   {
2745     cycles += model_u_exec_before (current_cpu, idesc, 1);
2746   }
2747   {
2748     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 2);
2749   }
2750   {
2751     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 3);
2752   }
2753   {
2754     INT out_loadreg = -1;
2755     out_loadreg = FLD (out_fmovn);
2756     cycles += model_u_load_fr_before (current_cpu, idesc, 4, out_loadreg);
2757   }
2758   return cycles;
2759 #undef FLD
2760 }
2761
2762 UINT
2763 sh4a_sh4a_model::model_fmov2_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2764 {
2765 #define FLD(f) abuf->fields.sfmt_fmov4_compact.f
2766   const sh4a_scache* abuf = sem;
2767   const sh4a_idesc* idesc = abuf->idesc;
2768   int cycles = 0;
2769   {
2770     int referenced = 0;
2771     unsigned long long insn_referenced = abuf->written;
2772     INT in_usereg = -1;
2773     in_usereg = FLD (in_rm);
2774     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2775   }
2776   {
2777     int referenced = 0;
2778     unsigned long long insn_referenced = abuf->written;
2779     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
2780   }
2781   {
2782     int referenced = 0;
2783     unsigned long long insn_referenced = abuf->written;
2784     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 2, referenced);
2785   }
2786   {
2787     int referenced = 0;
2788     unsigned long long insn_referenced = abuf->written;
2789     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 3, referenced);
2790   }
2791   {
2792     int referenced = 0;
2793     unsigned long long insn_referenced = abuf->written;
2794     INT out_loadreg = -1;
2795     out_loadreg = FLD (out_fmovn);
2796     cycles += model_u_load_fr_after (current_cpu, idesc, 4, referenced, out_loadreg);
2797   }
2798   return cycles;
2799 #undef FLD
2800 }
2801
2802 UINT
2803 sh4a_sh4a_model::model_fmov3_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2804 {
2805 #define FLD(f) abuf->fields.sfmt_fmov3_compact.f
2806   const sh4a_scache* abuf = sem;
2807   const sh4a_idesc* idesc = abuf->idesc;
2808   int cycles = 0;
2809   {
2810     INT in_usereg = -1;
2811     in_usereg = FLD (in_rm);
2812     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2813   }
2814   {
2815     cycles += model_u_exec_before (current_cpu, idesc, 1);
2816   }
2817   {
2818     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 2);
2819   }
2820   {
2821     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 3);
2822   }
2823   {
2824     INT out_loadreg = -1;
2825     out_loadreg = FLD (out_fmovn);
2826     cycles += model_u_load_fr_before (current_cpu, idesc, 4, out_loadreg);
2827   }
2828   return cycles;
2829 #undef FLD
2830 }
2831
2832 UINT
2833 sh4a_sh4a_model::model_fmov3_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2834 {
2835 #define FLD(f) abuf->fields.sfmt_fmov3_compact.f
2836   const sh4a_scache* abuf = sem;
2837   const sh4a_idesc* idesc = abuf->idesc;
2838   int cycles = 0;
2839   {
2840     int referenced = 0;
2841     unsigned long long insn_referenced = abuf->written;
2842     INT in_usereg = -1;
2843     in_usereg = FLD (in_rm);
2844     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2845   }
2846   {
2847     int referenced = 0;
2848     unsigned long long insn_referenced = abuf->written;
2849     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
2850   }
2851   {
2852     int referenced = 0;
2853     unsigned long long insn_referenced = abuf->written;
2854     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 2, referenced);
2855   }
2856   {
2857     int referenced = 0;
2858     unsigned long long insn_referenced = abuf->written;
2859     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 3, referenced);
2860   }
2861   {
2862     int referenced = 0;
2863     unsigned long long insn_referenced = abuf->written;
2864     INT out_loadreg = -1;
2865     out_loadreg = FLD (out_fmovn);
2866     cycles += model_u_load_fr_after (current_cpu, idesc, 4, referenced, out_loadreg);
2867   }
2868   return cycles;
2869 #undef FLD
2870 }
2871
2872 UINT
2873 sh4a_sh4a_model::model_fmov4_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2874 {
2875 #define FLD(f) abuf->fields.sfmt_fmov4_compact.f
2876   const sh4a_scache* abuf = sem;
2877   const sh4a_idesc* idesc = abuf->idesc;
2878   int cycles = 0;
2879   {
2880     INT in_usereg = -1;
2881     in_usereg = FLD (in_rm);
2882     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2883   }
2884   {
2885     INT in_usereg = -1;
2886     in_usereg = FLD (in_r0);
2887     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
2888   }
2889   {
2890     cycles += model_u_exec_before (current_cpu, idesc, 2);
2891   }
2892   {
2893     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 3);
2894   }
2895   {
2896     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 4);
2897   }
2898   {
2899     INT out_loadreg = -1;
2900     out_loadreg = FLD (out_fmovn);
2901     cycles += model_u_load_fr_before (current_cpu, idesc, 5, out_loadreg);
2902   }
2903   return cycles;
2904 #undef FLD
2905 }
2906
2907 UINT
2908 sh4a_sh4a_model::model_fmov4_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2909 {
2910 #define FLD(f) abuf->fields.sfmt_fmov4_compact.f
2911   const sh4a_scache* abuf = sem;
2912   const sh4a_idesc* idesc = abuf->idesc;
2913   int cycles = 0;
2914   {
2915     int referenced = 0;
2916     unsigned long long insn_referenced = abuf->written;
2917     INT in_usereg = -1;
2918     in_usereg = FLD (in_rm);
2919     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2920   }
2921   {
2922     int referenced = 0;
2923     unsigned long long insn_referenced = abuf->written;
2924     INT in_usereg = -1;
2925     in_usereg = FLD (in_r0);
2926     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
2927   }
2928   {
2929     int referenced = 0;
2930     unsigned long long insn_referenced = abuf->written;
2931     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2932   }
2933   {
2934     int referenced = 0;
2935     unsigned long long insn_referenced = abuf->written;
2936     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 3, referenced);
2937   }
2938   {
2939     int referenced = 0;
2940     unsigned long long insn_referenced = abuf->written;
2941     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 4, referenced);
2942   }
2943   {
2944     int referenced = 0;
2945     unsigned long long insn_referenced = abuf->written;
2946     INT out_loadreg = -1;
2947     out_loadreg = FLD (out_fmovn);
2948     cycles += model_u_load_fr_after (current_cpu, idesc, 5, referenced, out_loadreg);
2949   }
2950   return cycles;
2951 #undef FLD
2952 }
2953
2954 UINT
2955 sh4a_sh4a_model::model_fmov5_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
2956 {
2957 #define FLD(f) abuf->fields.sfmt_fmov7_compact.f
2958   const sh4a_scache* abuf = sem;
2959   const sh4a_idesc* idesc = abuf->idesc;
2960   int cycles = 0;
2961   {
2962     INT in_usereg = -1;
2963     in_usereg = FLD (in_fmovm);
2964     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
2965   }
2966   {
2967     INT in_usereg = -1;
2968     in_usereg = FLD (in_rn);
2969     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
2970   }
2971   {
2972     cycles += model_u_exec_before (current_cpu, idesc, 2);
2973   }
2974   {
2975     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 3);
2976   }
2977   {
2978     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 4);
2979   }
2980   return cycles;
2981 #undef FLD
2982 }
2983
2984 UINT
2985 sh4a_sh4a_model::model_fmov5_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
2986 {
2987 #define FLD(f) abuf->fields.sfmt_fmov7_compact.f
2988   const sh4a_scache* abuf = sem;
2989   const sh4a_idesc* idesc = abuf->idesc;
2990   int cycles = 0;
2991   {
2992     int referenced = 0;
2993     unsigned long long insn_referenced = abuf->written;
2994     INT in_usereg = -1;
2995     in_usereg = FLD (in_fmovm);
2996     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
2997   }
2998   {
2999     int referenced = 0;
3000     unsigned long long insn_referenced = abuf->written;
3001     INT in_usereg = -1;
3002     in_usereg = FLD (in_rn);
3003     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3004   }
3005   {
3006     int referenced = 0;
3007     unsigned long long insn_referenced = abuf->written;
3008     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3009   }
3010   {
3011     int referenced = 0;
3012     unsigned long long insn_referenced = abuf->written;
3013     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 3, referenced);
3014   }
3015   {
3016     int referenced = 0;
3017     unsigned long long insn_referenced = abuf->written;
3018     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 4, referenced);
3019   }
3020   return cycles;
3021 #undef FLD
3022 }
3023
3024 UINT
3025 sh4a_sh4a_model::model_fmov6_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3026 {
3027 #define FLD(f) abuf->fields.sfmt_fmov6_compact.f
3028   const sh4a_scache* abuf = sem;
3029   const sh4a_idesc* idesc = abuf->idesc;
3030   int cycles = 0;
3031   {
3032     INT in_usereg = -1;
3033     in_usereg = FLD (in_fmovm);
3034     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
3035   }
3036   {
3037     INT in_usereg = -1;
3038     in_usereg = FLD (in_rn);
3039     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
3040   }
3041   {
3042     cycles += model_u_exec_before (current_cpu, idesc, 2);
3043   }
3044   {
3045     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 3);
3046   }
3047   {
3048     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 4);
3049   }
3050   return cycles;
3051 #undef FLD
3052 }
3053
3054 UINT
3055 sh4a_sh4a_model::model_fmov6_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3056 {
3057 #define FLD(f) abuf->fields.sfmt_fmov6_compact.f
3058   const sh4a_scache* abuf = sem;
3059   const sh4a_idesc* idesc = abuf->idesc;
3060   int cycles = 0;
3061   {
3062     int referenced = 0;
3063     unsigned long long insn_referenced = abuf->written;
3064     INT in_usereg = -1;
3065     in_usereg = FLD (in_fmovm);
3066     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
3067   }
3068   {
3069     int referenced = 0;
3070     unsigned long long insn_referenced = abuf->written;
3071     INT in_usereg = -1;
3072     in_usereg = FLD (in_rn);
3073     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3074   }
3075   {
3076     int referenced = 0;
3077     unsigned long long insn_referenced = abuf->written;
3078     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3079   }
3080   {
3081     int referenced = 0;
3082     unsigned long long insn_referenced = abuf->written;
3083     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 3, referenced);
3084   }
3085   {
3086     int referenced = 0;
3087     unsigned long long insn_referenced = abuf->written;
3088     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 4, referenced);
3089   }
3090   return cycles;
3091 #undef FLD
3092 }
3093
3094 UINT
3095 sh4a_sh4a_model::model_fmov7_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3096 {
3097 #define FLD(f) abuf->fields.sfmt_fmov7_compact.f
3098   const sh4a_scache* abuf = sem;
3099   const sh4a_idesc* idesc = abuf->idesc;
3100   int cycles = 0;
3101   {
3102     INT in_usereg = -1;
3103     in_usereg = FLD (in_fmovm);
3104     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
3105   }
3106   {
3107     INT in_usereg = -1;
3108     in_usereg = FLD (in_rn);
3109     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
3110   }
3111   {
3112     INT in_usereg = -1;
3113     in_usereg = FLD (in_r0);
3114     cycles += model_u_use_gr_before (current_cpu, idesc, 2, in_usereg);
3115   }
3116   {
3117     cycles += model_u_exec_before (current_cpu, idesc, 3);
3118   }
3119   {
3120     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 4);
3121   }
3122   {
3123     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 5);
3124   }
3125   return cycles;
3126 #undef FLD
3127 }
3128
3129 UINT
3130 sh4a_sh4a_model::model_fmov7_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3131 {
3132 #define FLD(f) abuf->fields.sfmt_fmov7_compact.f
3133   const sh4a_scache* abuf = sem;
3134   const sh4a_idesc* idesc = abuf->idesc;
3135   int cycles = 0;
3136   {
3137     int referenced = 0;
3138     unsigned long long insn_referenced = abuf->written;
3139     INT in_usereg = -1;
3140     in_usereg = FLD (in_fmovm);
3141     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
3142   }
3143   {
3144     int referenced = 0;
3145     unsigned long long insn_referenced = abuf->written;
3146     INT in_usereg = -1;
3147     in_usereg = FLD (in_rn);
3148     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3149   }
3150   {
3151     int referenced = 0;
3152     unsigned long long insn_referenced = abuf->written;
3153     INT in_usereg = -1;
3154     in_usereg = FLD (in_r0);
3155     cycles += model_u_use_gr_after (current_cpu, idesc, 2, referenced, in_usereg);
3156   }
3157   {
3158     int referenced = 0;
3159     unsigned long long insn_referenced = abuf->written;
3160     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
3161   }
3162   {
3163     int referenced = 0;
3164     unsigned long long insn_referenced = abuf->written;
3165     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 4, referenced);
3166   }
3167   {
3168     int referenced = 0;
3169     unsigned long long insn_referenced = abuf->written;
3170     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 5, referenced);
3171   }
3172   return cycles;
3173 #undef FLD
3174 }
3175
3176 UINT
3177 sh4a_sh4a_model::model_fmul_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3178 {
3179 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3180   const sh4a_scache* abuf = sem;
3181   const sh4a_idesc* idesc = abuf->idesc;
3182   int cycles = 0;
3183   {
3184     INT in_usereg = -1;
3185     in_usereg = FLD (in_fsdm);
3186     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
3187   }
3188   {
3189     INT in_usereg = -1;
3190     in_usereg = FLD (in_fsdn);
3191     cycles += model_u_use_fr_before (current_cpu, idesc, 1, in_usereg);
3192   }
3193   {
3194     cycles += model_u_exec_before (current_cpu, idesc, 2);
3195   }
3196   {
3197     cycles += model_u_fpu_before (current_cpu, idesc, 3);
3198   }
3199   {
3200     INT out_loadreg = -1;
3201     out_loadreg = FLD (out_fsdn);
3202     cycles += model_u_set_fr_before (current_cpu, idesc, 4, out_loadreg);
3203   }
3204   return cycles;
3205 #undef FLD
3206 }
3207
3208 UINT
3209 sh4a_sh4a_model::model_fmul_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3210 {
3211 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3212   const sh4a_scache* abuf = sem;
3213   const sh4a_idesc* idesc = abuf->idesc;
3214   int cycles = 0;
3215   {
3216     int referenced = 0;
3217     unsigned long long insn_referenced = abuf->written;
3218     INT in_usereg = -1;
3219     in_usereg = FLD (in_fsdm);
3220     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
3221   }
3222   {
3223     int referenced = 0;
3224     unsigned long long insn_referenced = abuf->written;
3225     INT in_usereg = -1;
3226     in_usereg = FLD (in_fsdn);
3227     cycles += model_u_use_fr_after (current_cpu, idesc, 1, referenced, in_usereg);
3228   }
3229   {
3230     int referenced = 0;
3231     unsigned long long insn_referenced = abuf->written;
3232     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3233   }
3234   {
3235     int referenced = 0;
3236     unsigned long long insn_referenced = abuf->written;
3237     cycles += model_u_fpu_after (current_cpu, idesc, 3, referenced);
3238   }
3239   {
3240     int referenced = 0;
3241     unsigned long long insn_referenced = abuf->written;
3242     INT out_loadreg = -1;
3243     out_loadreg = FLD (out_fsdn);
3244     cycles += model_u_set_fr_after (current_cpu, idesc, 4, referenced, out_loadreg);
3245   }
3246   return cycles;
3247 #undef FLD
3248 }
3249
3250 UINT
3251 sh4a_sh4a_model::model_fneg_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3252 {
3253 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3254   const sh4a_scache* abuf = sem;
3255   const sh4a_idesc* idesc = abuf->idesc;
3256   int cycles = 0;
3257   {
3258     INT in_usereg = -1;
3259     in_usereg = FLD (in_fsdn);
3260     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
3261   }
3262   {
3263     cycles += model_u_exec_before (current_cpu, idesc, 1);
3264   }
3265   {
3266     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 2);
3267   }
3268   {
3269     INT out_loadreg = -1;
3270     out_loadreg = FLD (out_fsdn);
3271     cycles += model_u_set_fr_0_before (current_cpu, idesc, 3, out_loadreg);
3272   }
3273   return cycles;
3274 #undef FLD
3275 }
3276
3277 UINT
3278 sh4a_sh4a_model::model_fneg_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3279 {
3280 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3281   const sh4a_scache* abuf = sem;
3282   const sh4a_idesc* idesc = abuf->idesc;
3283   int cycles = 0;
3284   {
3285     int referenced = 0;
3286     unsigned long long insn_referenced = abuf->written;
3287     INT in_usereg = -1;
3288     in_usereg = FLD (in_fsdn);
3289     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
3290   }
3291   {
3292     int referenced = 0;
3293     unsigned long long insn_referenced = abuf->written;
3294     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3295   }
3296   {
3297     int referenced = 0;
3298     unsigned long long insn_referenced = abuf->written;
3299     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 2, referenced);
3300   }
3301   {
3302     int referenced = 0;
3303     unsigned long long insn_referenced = abuf->written;
3304     INT out_loadreg = -1;
3305     out_loadreg = FLD (out_fsdn);
3306     cycles += model_u_set_fr_0_after (current_cpu, idesc, 3, referenced, out_loadreg);
3307   }
3308   return cycles;
3309 #undef FLD
3310 }
3311
3312 UINT
3313 sh4a_sh4a_model::model_frchg_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3314 {
3315 #define FLD(f) abuf->fields.fmt_empty.f
3316   const sh4a_scache* abuf = sem;
3317   const sh4a_idesc* idesc = abuf->idesc;
3318   int cycles = 0;
3319   {
3320     cycles += model_u_exec_before (current_cpu, idesc, 0);
3321   }
3322   return cycles;
3323 #undef FLD
3324 }
3325
3326 UINT
3327 sh4a_sh4a_model::model_frchg_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3328 {
3329 #define FLD(f) abuf->fields.fmt_empty.f
3330   const sh4a_scache* abuf = sem;
3331   const sh4a_idesc* idesc = abuf->idesc;
3332   int cycles = 0;
3333   {
3334     int referenced = 0;
3335     unsigned long long insn_referenced = abuf->written;
3336     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
3337   }
3338   return cycles;
3339 #undef FLD
3340 }
3341
3342 UINT
3343 sh4a_sh4a_model::model_fschg_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3344 {
3345 #define FLD(f) abuf->fields.fmt_empty.f
3346   const sh4a_scache* abuf = sem;
3347   const sh4a_idesc* idesc = abuf->idesc;
3348   int cycles = 0;
3349   {
3350     cycles += model_u_exec_before (current_cpu, idesc, 0);
3351   }
3352   return cycles;
3353 #undef FLD
3354 }
3355
3356 UINT
3357 sh4a_sh4a_model::model_fschg_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3358 {
3359 #define FLD(f) abuf->fields.fmt_empty.f
3360   const sh4a_scache* abuf = sem;
3361   const sh4a_idesc* idesc = abuf->idesc;
3362   int cycles = 0;
3363   {
3364     int referenced = 0;
3365     unsigned long long insn_referenced = abuf->written;
3366     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
3367   }
3368   return cycles;
3369 #undef FLD
3370 }
3371
3372 UINT
3373 sh4a_sh4a_model::model_fsqrt_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3374 {
3375 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3376   const sh4a_scache* abuf = sem;
3377   const sh4a_idesc* idesc = abuf->idesc;
3378   int cycles = 0;
3379   {
3380     INT in_usereg = -1;
3381     in_usereg = FLD (in_fsdn);
3382     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
3383   }
3384   {
3385     cycles += model_u_exec_before (current_cpu, idesc, 1);
3386   }
3387   {
3388     INT out_loadreg = -1;
3389     out_loadreg = FLD (out_fsdn);
3390     cycles += model_u_fsqrt_before (current_cpu, idesc, 2, out_loadreg);
3391   }
3392   return cycles;
3393 #undef FLD
3394 }
3395
3396 UINT
3397 sh4a_sh4a_model::model_fsqrt_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3398 {
3399 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3400   const sh4a_scache* abuf = sem;
3401   const sh4a_idesc* idesc = abuf->idesc;
3402   int cycles = 0;
3403   {
3404     int referenced = 0;
3405     unsigned long long insn_referenced = abuf->written;
3406     INT in_usereg = -1;
3407     in_usereg = FLD (in_fsdn);
3408     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
3409   }
3410   {
3411     int referenced = 0;
3412     unsigned long long insn_referenced = abuf->written;
3413     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3414   }
3415   {
3416     int referenced = 0;
3417     unsigned long long insn_referenced = abuf->written;
3418     INT out_loadreg = -1;
3419     out_loadreg = FLD (out_fsdn);
3420     cycles += model_u_fsqrt_after (current_cpu, idesc, 2, referenced, out_loadreg);
3421   }
3422   return cycles;
3423 #undef FLD
3424 }
3425
3426 UINT
3427 sh4a_sh4a_model::model_fsts_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3428 {
3429 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
3430   const sh4a_scache* abuf = sem;
3431   const sh4a_idesc* idesc = abuf->idesc;
3432   int cycles = 0;
3433   {
3434     cycles += model_u_use_fpul_before (current_cpu, idesc, 0);
3435   }
3436   {
3437     cycles += model_u_exec_before (current_cpu, idesc, 1);
3438   }
3439   {
3440     cycles += model_u_fpu_before (current_cpu, idesc, 2);
3441   }
3442   {
3443     INT out_loadreg = -1;
3444     out_loadreg = FLD (out_frn);
3445     cycles += model_u_set_fr_0_before (current_cpu, idesc, 3, out_loadreg);
3446   }
3447   return cycles;
3448 #undef FLD
3449 }
3450
3451 UINT
3452 sh4a_sh4a_model::model_fsts_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3453 {
3454 #define FLD(f) abuf->fields.sfmt_fsts_compact.f
3455   const sh4a_scache* abuf = sem;
3456   const sh4a_idesc* idesc = abuf->idesc;
3457   int cycles = 0;
3458   {
3459     int referenced = 0;
3460     unsigned long long insn_referenced = abuf->written;
3461     cycles += model_u_use_fpul_after (current_cpu, idesc, 0, referenced);
3462   }
3463   {
3464     int referenced = 0;
3465     unsigned long long insn_referenced = abuf->written;
3466     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3467   }
3468   {
3469     int referenced = 0;
3470     unsigned long long insn_referenced = abuf->written;
3471     cycles += model_u_fpu_after (current_cpu, idesc, 2, referenced);
3472   }
3473   {
3474     int referenced = 0;
3475     unsigned long long insn_referenced = abuf->written;
3476     INT out_loadreg = -1;
3477     out_loadreg = FLD (out_frn);
3478     cycles += model_u_set_fr_0_after (current_cpu, idesc, 3, referenced, out_loadreg);
3479   }
3480   return cycles;
3481 #undef FLD
3482 }
3483
3484 UINT
3485 sh4a_sh4a_model::model_fsub_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3486 {
3487 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3488   const sh4a_scache* abuf = sem;
3489   const sh4a_idesc* idesc = abuf->idesc;
3490   int cycles = 0;
3491   {
3492     INT in_usereg = -1;
3493     in_usereg = FLD (in_fsdm);
3494     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
3495   }
3496   {
3497     INT in_usereg = -1;
3498     in_usereg = FLD (in_fsdn);
3499     cycles += model_u_use_fr_before (current_cpu, idesc, 1, in_usereg);
3500   }
3501   {
3502     cycles += model_u_exec_before (current_cpu, idesc, 2);
3503   }
3504   {
3505     cycles += model_u_fpu_before (current_cpu, idesc, 3);
3506   }
3507   {
3508     INT out_loadreg = -1;
3509     out_loadreg = FLD (out_fsdn);
3510     cycles += model_u_set_fr_before (current_cpu, idesc, 4, out_loadreg);
3511   }
3512   return cycles;
3513 #undef FLD
3514 }
3515
3516 UINT
3517 sh4a_sh4a_model::model_fsub_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3518 {
3519 #define FLD(f) abuf->fields.sfmt_fadd_compact.f
3520   const sh4a_scache* abuf = sem;
3521   const sh4a_idesc* idesc = abuf->idesc;
3522   int cycles = 0;
3523   {
3524     int referenced = 0;
3525     unsigned long long insn_referenced = abuf->written;
3526     INT in_usereg = -1;
3527     in_usereg = FLD (in_fsdm);
3528     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
3529   }
3530   {
3531     int referenced = 0;
3532     unsigned long long insn_referenced = abuf->written;
3533     INT in_usereg = -1;
3534     in_usereg = FLD (in_fsdn);
3535     cycles += model_u_use_fr_after (current_cpu, idesc, 1, referenced, in_usereg);
3536   }
3537   {
3538     int referenced = 0;
3539     unsigned long long insn_referenced = abuf->written;
3540     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3541   }
3542   {
3543     int referenced = 0;
3544     unsigned long long insn_referenced = abuf->written;
3545     cycles += model_u_fpu_after (current_cpu, idesc, 3, referenced);
3546   }
3547   {
3548     int referenced = 0;
3549     unsigned long long insn_referenced = abuf->written;
3550     INT out_loadreg = -1;
3551     out_loadreg = FLD (out_fsdn);
3552     cycles += model_u_set_fr_after (current_cpu, idesc, 4, referenced, out_loadreg);
3553   }
3554   return cycles;
3555 #undef FLD
3556 }
3557
3558 UINT
3559 sh4a_sh4a_model::model_ftrc_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3560 {
3561 #define FLD(f) abuf->fields.sfmt_ftrc_compact.f
3562   const sh4a_scache* abuf = sem;
3563   const sh4a_idesc* idesc = abuf->idesc;
3564   int cycles = 0;
3565   {
3566     INT in_usereg = -1;
3567     in_usereg = FLD (in_fsdn);
3568     cycles += model_u_use_fr_before (current_cpu, idesc, 0, in_usereg);
3569   }
3570   {
3571     cycles += model_u_exec_before (current_cpu, idesc, 1);
3572   }
3573   {
3574     cycles += model_u_fpu_before (current_cpu, idesc, 2);
3575   }
3576   {
3577     cycles += model_u_set_fpul_before (current_cpu, idesc, 3);
3578   }
3579   return cycles;
3580 #undef FLD
3581 }
3582
3583 UINT
3584 sh4a_sh4a_model::model_ftrc_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3585 {
3586 #define FLD(f) abuf->fields.sfmt_ftrc_compact.f
3587   const sh4a_scache* abuf = sem;
3588   const sh4a_idesc* idesc = abuf->idesc;
3589   int cycles = 0;
3590   {
3591     int referenced = 0;
3592     unsigned long long insn_referenced = abuf->written;
3593     INT in_usereg = -1;
3594     in_usereg = FLD (in_fsdn);
3595     cycles += model_u_use_fr_after (current_cpu, idesc, 0, referenced, in_usereg);
3596   }
3597   {
3598     int referenced = 0;
3599     unsigned long long insn_referenced = abuf->written;
3600     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3601   }
3602   {
3603     int referenced = 0;
3604     unsigned long long insn_referenced = abuf->written;
3605     cycles += model_u_fpu_after (current_cpu, idesc, 2, referenced);
3606   }
3607   {
3608     int referenced = 0;
3609     unsigned long long insn_referenced = abuf->written;
3610     cycles += model_u_set_fpul_after (current_cpu, idesc, 3, referenced);
3611   }
3612   return cycles;
3613 #undef FLD
3614 }
3615
3616 UINT
3617 sh4a_sh4a_model::model_ftrv_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3618 {
3619 #define FLD(f) abuf->fields.sfmt_fipr_compact.f
3620   const sh4a_scache* abuf = sem;
3621   const sh4a_idesc* idesc = abuf->idesc;
3622   int cycles = 0;
3623   {
3624     cycles += model_u_exec_before (current_cpu, idesc, 0);
3625   }
3626   {
3627     INT in_fvn = -1;
3628     cycles += model_u_ftrv_before (current_cpu, idesc, 1, in_fvn);
3629   }
3630   return cycles;
3631 #undef FLD
3632 }
3633
3634 UINT
3635 sh4a_sh4a_model::model_ftrv_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3636 {
3637 #define FLD(f) abuf->fields.sfmt_fipr_compact.f
3638   const sh4a_scache* abuf = sem;
3639   const sh4a_idesc* idesc = abuf->idesc;
3640   int cycles = 0;
3641   {
3642     int referenced = 0;
3643     unsigned long long insn_referenced = abuf->written;
3644     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
3645   }
3646   {
3647     int referenced = 0;
3648     unsigned long long insn_referenced = abuf->written;
3649     INT in_fvn = -1;
3650     cycles += model_u_ftrv_after (current_cpu, idesc, 1, referenced, in_fvn);
3651   }
3652   return cycles;
3653 #undef FLD
3654 }
3655
3656 UINT
3657 sh4a_sh4a_model::model_jmp_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3658 {
3659 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3660   const sh4a_scache* abuf = sem;
3661   const sh4a_idesc* idesc = abuf->idesc;
3662   int cycles = 0;
3663   {
3664     cycles += model_u_jmp_before (current_cpu, idesc, 0);
3665   }
3666   return cycles;
3667 #undef FLD
3668 }
3669
3670 UINT
3671 sh4a_sh4a_model::model_jmp_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3672 {
3673 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3674   const sh4a_scache* abuf = sem;
3675   const sh4a_idesc* idesc = abuf->idesc;
3676   int cycles = 0;
3677   {
3678     int referenced = 0;
3679     unsigned long long insn_referenced = abuf->written;
3680     referenced |= 1 << 0;
3681     cycles += model_u_jmp_after (current_cpu, idesc, 0, referenced);
3682   }
3683   return cycles;
3684 #undef FLD
3685 }
3686
3687 UINT
3688 sh4a_sh4a_model::model_jsr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3689 {
3690 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3691   const sh4a_scache* abuf = sem;
3692   const sh4a_idesc* idesc = abuf->idesc;
3693   int cycles = 0;
3694   {
3695     cycles += model_u_jsr_before (current_cpu, idesc, 0);
3696   }
3697   return cycles;
3698 #undef FLD
3699 }
3700
3701 UINT
3702 sh4a_sh4a_model::model_jsr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3703 {
3704 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3705   const sh4a_scache* abuf = sem;
3706   const sh4a_idesc* idesc = abuf->idesc;
3707   int cycles = 0;
3708   {
3709     int referenced = 0;
3710     unsigned long long insn_referenced = abuf->written;
3711     referenced |= 1 << 0;
3712     cycles += model_u_jsr_after (current_cpu, idesc, 0, referenced);
3713   }
3714   return cycles;
3715 #undef FLD
3716 }
3717
3718 UINT
3719 sh4a_sh4a_model::model_ldc_gbr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3720 {
3721 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3722   const sh4a_scache* abuf = sem;
3723   const sh4a_idesc* idesc = abuf->idesc;
3724   int cycles = 0;
3725   {
3726     INT in_usereg = -1;
3727     in_usereg = FLD (in_rn);
3728     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3729   }
3730   {
3731     cycles += model_u_ldc_gbr_before (current_cpu, idesc, 1);
3732   }
3733   return cycles;
3734 #undef FLD
3735 }
3736
3737 UINT
3738 sh4a_sh4a_model::model_ldc_gbr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3739 {
3740 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3741   const sh4a_scache* abuf = sem;
3742   const sh4a_idesc* idesc = abuf->idesc;
3743   int cycles = 0;
3744   {
3745     int referenced = 0;
3746     unsigned long long insn_referenced = abuf->written;
3747     INT in_usereg = -1;
3748     in_usereg = FLD (in_rn);
3749     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3750   }
3751   {
3752     int referenced = 0;
3753     unsigned long long insn_referenced = abuf->written;
3754     cycles += model_u_ldc_gbr_after (current_cpu, idesc, 1, referenced);
3755   }
3756   return cycles;
3757 #undef FLD
3758 }
3759
3760 UINT
3761 sh4a_sh4a_model::model_ldc_vbr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3762 {
3763 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3764   const sh4a_scache* abuf = sem;
3765   const sh4a_idesc* idesc = abuf->idesc;
3766   int cycles = 0;
3767   {
3768     INT in_usereg = -1;
3769     in_usereg = FLD (in_rn);
3770     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3771   }
3772   {
3773     cycles += model_u_exec_before (current_cpu, idesc, 1);
3774   }
3775   return cycles;
3776 #undef FLD
3777 }
3778
3779 UINT
3780 sh4a_sh4a_model::model_ldc_vbr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3781 {
3782 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3783   const sh4a_scache* abuf = sem;
3784   const sh4a_idesc* idesc = abuf->idesc;
3785   int cycles = 0;
3786   {
3787     int referenced = 0;
3788     unsigned long long insn_referenced = abuf->written;
3789     INT in_usereg = -1;
3790     in_usereg = FLD (in_rn);
3791     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3792   }
3793   {
3794     int referenced = 0;
3795     unsigned long long insn_referenced = abuf->written;
3796     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3797   }
3798   return cycles;
3799 #undef FLD
3800 }
3801
3802 UINT
3803 sh4a_sh4a_model::model_ldc_sr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3804 {
3805 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3806   const sh4a_scache* abuf = sem;
3807   const sh4a_idesc* idesc = abuf->idesc;
3808   int cycles = 0;
3809   {
3810     INT in_usereg = -1;
3811     in_usereg = FLD (in_rn);
3812     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3813   }
3814   {
3815     cycles += model_u_ldc_sr_before (current_cpu, idesc, 1);
3816   }
3817   return cycles;
3818 #undef FLD
3819 }
3820
3821 UINT
3822 sh4a_sh4a_model::model_ldc_sr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3823 {
3824 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3825   const sh4a_scache* abuf = sem;
3826   const sh4a_idesc* idesc = abuf->idesc;
3827   int cycles = 0;
3828   {
3829     int referenced = 0;
3830     unsigned long long insn_referenced = abuf->written;
3831     INT in_usereg = -1;
3832     in_usereg = FLD (in_rn);
3833     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3834   }
3835   {
3836     int referenced = 0;
3837     unsigned long long insn_referenced = abuf->written;
3838     cycles += model_u_ldc_sr_after (current_cpu, idesc, 1, referenced);
3839   }
3840   return cycles;
3841 #undef FLD
3842 }
3843
3844 UINT
3845 sh4a_sh4a_model::model_ldcl_gbr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3846 {
3847 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3848   const sh4a_scache* abuf = sem;
3849   const sh4a_idesc* idesc = abuf->idesc;
3850   int cycles = 0;
3851   {
3852     INT in_usereg = -1;
3853     in_usereg = FLD (in_rn);
3854     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3855   }
3856   {
3857     cycles += model_u_ldcl_before (current_cpu, idesc, 1);
3858   }
3859   {
3860     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
3861   }
3862   {
3863     cycles += model_u_load_gbr_before (current_cpu, idesc, 3);
3864   }
3865   return cycles;
3866 #undef FLD
3867 }
3868
3869 UINT
3870 sh4a_sh4a_model::model_ldcl_gbr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3871 {
3872 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3873   const sh4a_scache* abuf = sem;
3874   const sh4a_idesc* idesc = abuf->idesc;
3875   int cycles = 0;
3876   {
3877     int referenced = 0;
3878     unsigned long long insn_referenced = abuf->written;
3879     INT in_usereg = -1;
3880     in_usereg = FLD (in_rn);
3881     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3882   }
3883   {
3884     int referenced = 0;
3885     unsigned long long insn_referenced = abuf->written;
3886     cycles += model_u_ldcl_after (current_cpu, idesc, 1, referenced);
3887   }
3888   {
3889     int referenced = 0;
3890     unsigned long long insn_referenced = abuf->written;
3891     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
3892   }
3893   {
3894     int referenced = 0;
3895     unsigned long long insn_referenced = abuf->written;
3896     cycles += model_u_load_gbr_after (current_cpu, idesc, 3, referenced);
3897   }
3898   return cycles;
3899 #undef FLD
3900 }
3901
3902 UINT
3903 sh4a_sh4a_model::model_ldcl_vbr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3904 {
3905 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3906   const sh4a_scache* abuf = sem;
3907   const sh4a_idesc* idesc = abuf->idesc;
3908   int cycles = 0;
3909   {
3910     INT in_usereg = -1;
3911     in_usereg = FLD (in_rn);
3912     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3913   }
3914   {
3915     cycles += model_u_ldcl_vbr_before (current_cpu, idesc, 1);
3916   }
3917   {
3918     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
3919   }
3920   {
3921     cycles += model_u_load_vbr_before (current_cpu, idesc, 3);
3922   }
3923   return cycles;
3924 #undef FLD
3925 }
3926
3927 UINT
3928 sh4a_sh4a_model::model_ldcl_vbr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3929 {
3930 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3931   const sh4a_scache* abuf = sem;
3932   const sh4a_idesc* idesc = abuf->idesc;
3933   int cycles = 0;
3934   {
3935     int referenced = 0;
3936     unsigned long long insn_referenced = abuf->written;
3937     INT in_usereg = -1;
3938     in_usereg = FLD (in_rn);
3939     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3940   }
3941   {
3942     int referenced = 0;
3943     unsigned long long insn_referenced = abuf->written;
3944     cycles += model_u_ldcl_vbr_after (current_cpu, idesc, 1, referenced);
3945   }
3946   {
3947     int referenced = 0;
3948     unsigned long long insn_referenced = abuf->written;
3949     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
3950   }
3951   {
3952     int referenced = 0;
3953     unsigned long long insn_referenced = abuf->written;
3954     cycles += model_u_load_vbr_after (current_cpu, idesc, 3, referenced);
3955   }
3956   return cycles;
3957 #undef FLD
3958 }
3959
3960 UINT
3961 sh4a_sh4a_model::model_lds_fpscr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
3962 {
3963 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3964   const sh4a_scache* abuf = sem;
3965   const sh4a_idesc* idesc = abuf->idesc;
3966   int cycles = 0;
3967   {
3968     INT in_usereg = -1;
3969     in_usereg = FLD (in_rn);
3970     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3971   }
3972   {
3973     cycles += model_u_lds_fpscr_before (current_cpu, idesc, 1);
3974   }
3975   return cycles;
3976 #undef FLD
3977 }
3978
3979 UINT
3980 sh4a_sh4a_model::model_lds_fpscr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
3981 {
3982 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
3983   const sh4a_scache* abuf = sem;
3984   const sh4a_idesc* idesc = abuf->idesc;
3985   int cycles = 0;
3986   {
3987     int referenced = 0;
3988     unsigned long long insn_referenced = abuf->written;
3989     INT in_usereg = -1;
3990     in_usereg = FLD (in_rn);
3991     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3992   }
3993   {
3994     int referenced = 0;
3995     unsigned long long insn_referenced = abuf->written;
3996     cycles += model_u_lds_fpscr_after (current_cpu, idesc, 1, referenced);
3997   }
3998   return cycles;
3999 #undef FLD
4000 }
4001
4002 UINT
4003 sh4a_sh4a_model::model_ldsl_fpscr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4004 {
4005 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4006   const sh4a_scache* abuf = sem;
4007   const sh4a_idesc* idesc = abuf->idesc;
4008   int cycles = 0;
4009   {
4010     INT in_usereg = -1;
4011     in_usereg = FLD (in_rn);
4012     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4013   }
4014   {
4015     cycles += model_u_lds_fpscr_before (current_cpu, idesc, 1);
4016   }
4017   {
4018     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 2);
4019   }
4020   {
4021     cycles += model_u_ldsl_fpscr_before (current_cpu, idesc, 3);
4022   }
4023   return cycles;
4024 #undef FLD
4025 }
4026
4027 UINT
4028 sh4a_sh4a_model::model_ldsl_fpscr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4029 {
4030 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4031   const sh4a_scache* abuf = sem;
4032   const sh4a_idesc* idesc = abuf->idesc;
4033   int cycles = 0;
4034   {
4035     int referenced = 0;
4036     unsigned long long insn_referenced = abuf->written;
4037     INT in_usereg = -1;
4038     in_usereg = FLD (in_rn);
4039     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4040   }
4041   {
4042     int referenced = 0;
4043     unsigned long long insn_referenced = abuf->written;
4044     cycles += model_u_lds_fpscr_after (current_cpu, idesc, 1, referenced);
4045   }
4046   {
4047     int referenced = 0;
4048     unsigned long long insn_referenced = abuf->written;
4049     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 2, referenced);
4050   }
4051   {
4052     int referenced = 0;
4053     unsigned long long insn_referenced = abuf->written;
4054     cycles += model_u_ldsl_fpscr_after (current_cpu, idesc, 3, referenced);
4055   }
4056   return cycles;
4057 #undef FLD
4058 }
4059
4060 UINT
4061 sh4a_sh4a_model::model_lds_fpul_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4062 {
4063 #define FLD(f) abuf->fields.sfmt_ldsl_fpul_compact.f
4064   const sh4a_scache* abuf = sem;
4065   const sh4a_idesc* idesc = abuf->idesc;
4066   int cycles = 0;
4067   {
4068     INT in_usereg = -1;
4069     in_usereg = FLD (in_rn);
4070     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4071   }
4072   {
4073     cycles += model_u_exec_before (current_cpu, idesc, 1);
4074   }
4075   {
4076     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 2);
4077   }
4078   {
4079     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 3);
4080   }
4081   {
4082     cycles += model_u_load_fpul_before (current_cpu, idesc, 4);
4083   }
4084   return cycles;
4085 #undef FLD
4086 }
4087
4088 UINT
4089 sh4a_sh4a_model::model_lds_fpul_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4090 {
4091 #define FLD(f) abuf->fields.sfmt_ldsl_fpul_compact.f
4092   const sh4a_scache* abuf = sem;
4093   const sh4a_idesc* idesc = abuf->idesc;
4094   int cycles = 0;
4095   {
4096     int referenced = 0;
4097     unsigned long long insn_referenced = abuf->written;
4098     INT in_usereg = -1;
4099     in_usereg = FLD (in_rn);
4100     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4101   }
4102   {
4103     int referenced = 0;
4104     unsigned long long insn_referenced = abuf->written;
4105     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
4106   }
4107   {
4108     int referenced = 0;
4109     unsigned long long insn_referenced = abuf->written;
4110     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 2, referenced);
4111   }
4112   {
4113     int referenced = 0;
4114     unsigned long long insn_referenced = abuf->written;
4115     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 3, referenced);
4116   }
4117   {
4118     int referenced = 0;
4119     unsigned long long insn_referenced = abuf->written;
4120     cycles += model_u_load_fpul_after (current_cpu, idesc, 4, referenced);
4121   }
4122   return cycles;
4123 #undef FLD
4124 }
4125
4126 UINT
4127 sh4a_sh4a_model::model_ldsl_fpul_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4128 {
4129 #define FLD(f) abuf->fields.sfmt_ldsl_fpul_compact.f
4130   const sh4a_scache* abuf = sem;
4131   const sh4a_idesc* idesc = abuf->idesc;
4132   int cycles = 0;
4133   {
4134     INT in_usereg = -1;
4135     in_usereg = FLD (in_rn);
4136     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4137   }
4138   {
4139     cycles += model_u_exec_before (current_cpu, idesc, 1);
4140   }
4141   {
4142     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 2);
4143   }
4144   {
4145     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 3);
4146   }
4147   {
4148     cycles += model_u_load_fpul_before (current_cpu, idesc, 4);
4149   }
4150   return cycles;
4151 #undef FLD
4152 }
4153
4154 UINT
4155 sh4a_sh4a_model::model_ldsl_fpul_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4156 {
4157 #define FLD(f) abuf->fields.sfmt_ldsl_fpul_compact.f
4158   const sh4a_scache* abuf = sem;
4159   const sh4a_idesc* idesc = abuf->idesc;
4160   int cycles = 0;
4161   {
4162     int referenced = 0;
4163     unsigned long long insn_referenced = abuf->written;
4164     INT in_usereg = -1;
4165     in_usereg = FLD (in_rn);
4166     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4167   }
4168   {
4169     int referenced = 0;
4170     unsigned long long insn_referenced = abuf->written;
4171     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
4172   }
4173   {
4174     int referenced = 0;
4175     unsigned long long insn_referenced = abuf->written;
4176     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 2, referenced);
4177   }
4178   {
4179     int referenced = 0;
4180     unsigned long long insn_referenced = abuf->written;
4181     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 3, referenced);
4182   }
4183   {
4184     int referenced = 0;
4185     unsigned long long insn_referenced = abuf->written;
4186     cycles += model_u_load_fpul_after (current_cpu, idesc, 4, referenced);
4187   }
4188   return cycles;
4189 #undef FLD
4190 }
4191
4192 UINT
4193 sh4a_sh4a_model::model_lds_mach_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4194 {
4195 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4196   const sh4a_scache* abuf = sem;
4197   const sh4a_idesc* idesc = abuf->idesc;
4198   int cycles = 0;
4199   {
4200     INT in_usereg = -1;
4201     in_usereg = FLD (in_rn);
4202     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4203   }
4204   {
4205     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
4206   }
4207   {
4208     cycles += model_u_exec_before (current_cpu, idesc, 2);
4209   }
4210   {
4211     cycles += model_u_set_mac_before (current_cpu, idesc, 3);
4212   }
4213   return cycles;
4214 #undef FLD
4215 }
4216
4217 UINT
4218 sh4a_sh4a_model::model_lds_mach_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4219 {
4220 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4221   const sh4a_scache* abuf = sem;
4222   const sh4a_idesc* idesc = abuf->idesc;
4223   int cycles = 0;
4224   {
4225     int referenced = 0;
4226     unsigned long long insn_referenced = abuf->written;
4227     INT in_usereg = -1;
4228     in_usereg = FLD (in_rn);
4229     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4230   }
4231   {
4232     int referenced = 0;
4233     unsigned long long insn_referenced = abuf->written;
4234     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
4235   }
4236   {
4237     int referenced = 0;
4238     unsigned long long insn_referenced = abuf->written;
4239     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4240   }
4241   {
4242     int referenced = 0;
4243     unsigned long long insn_referenced = abuf->written;
4244     cycles += model_u_set_mac_after (current_cpu, idesc, 3, referenced);
4245   }
4246   return cycles;
4247 #undef FLD
4248 }
4249
4250 UINT
4251 sh4a_sh4a_model::model_ldsl_mach_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4252 {
4253 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4254   const sh4a_scache* abuf = sem;
4255   const sh4a_idesc* idesc = abuf->idesc;
4256   int cycles = 0;
4257   {
4258     INT in_usereg = -1;
4259     in_usereg = FLD (in_rn);
4260     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4261   }
4262   {
4263     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
4264   }
4265   {
4266     cycles += model_u_exec_before (current_cpu, idesc, 2);
4267   }
4268   {
4269     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4270   }
4271   {
4272     cycles += model_u_load_mac_before (current_cpu, idesc, 4);
4273   }
4274   return cycles;
4275 #undef FLD
4276 }
4277
4278 UINT
4279 sh4a_sh4a_model::model_ldsl_mach_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4280 {
4281 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4282   const sh4a_scache* abuf = sem;
4283   const sh4a_idesc* idesc = abuf->idesc;
4284   int cycles = 0;
4285   {
4286     int referenced = 0;
4287     unsigned long long insn_referenced = abuf->written;
4288     INT in_usereg = -1;
4289     in_usereg = FLD (in_rn);
4290     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4291   }
4292   {
4293     int referenced = 0;
4294     unsigned long long insn_referenced = abuf->written;
4295     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
4296   }
4297   {
4298     int referenced = 0;
4299     unsigned long long insn_referenced = abuf->written;
4300     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4301   }
4302   {
4303     int referenced = 0;
4304     unsigned long long insn_referenced = abuf->written;
4305     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
4306   }
4307   {
4308     int referenced = 0;
4309     unsigned long long insn_referenced = abuf->written;
4310     cycles += model_u_load_mac_after (current_cpu, idesc, 4, referenced);
4311   }
4312   return cycles;
4313 #undef FLD
4314 }
4315
4316 UINT
4317 sh4a_sh4a_model::model_lds_macl_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4318 {
4319 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4320   const sh4a_scache* abuf = sem;
4321   const sh4a_idesc* idesc = abuf->idesc;
4322   int cycles = 0;
4323   {
4324     INT in_usereg = -1;
4325     in_usereg = FLD (in_rn);
4326     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4327   }
4328   {
4329     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
4330   }
4331   {
4332     cycles += model_u_exec_before (current_cpu, idesc, 2);
4333   }
4334   {
4335     cycles += model_u_set_mac_before (current_cpu, idesc, 3);
4336   }
4337   return cycles;
4338 #undef FLD
4339 }
4340
4341 UINT
4342 sh4a_sh4a_model::model_lds_macl_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4343 {
4344 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4345   const sh4a_scache* abuf = sem;
4346   const sh4a_idesc* idesc = abuf->idesc;
4347   int cycles = 0;
4348   {
4349     int referenced = 0;
4350     unsigned long long insn_referenced = abuf->written;
4351     INT in_usereg = -1;
4352     in_usereg = FLD (in_rn);
4353     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4354   }
4355   {
4356     int referenced = 0;
4357     unsigned long long insn_referenced = abuf->written;
4358     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
4359   }
4360   {
4361     int referenced = 0;
4362     unsigned long long insn_referenced = abuf->written;
4363     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4364   }
4365   {
4366     int referenced = 0;
4367     unsigned long long insn_referenced = abuf->written;
4368     cycles += model_u_set_mac_after (current_cpu, idesc, 3, referenced);
4369   }
4370   return cycles;
4371 #undef FLD
4372 }
4373
4374 UINT
4375 sh4a_sh4a_model::model_ldsl_macl_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4376 {
4377 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4378   const sh4a_scache* abuf = sem;
4379   const sh4a_idesc* idesc = abuf->idesc;
4380   int cycles = 0;
4381   {
4382     INT in_usereg = -1;
4383     in_usereg = FLD (in_rn);
4384     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4385   }
4386   {
4387     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
4388   }
4389   {
4390     cycles += model_u_exec_before (current_cpu, idesc, 2);
4391   }
4392   {
4393     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4394   }
4395   {
4396     cycles += model_u_load_mac_before (current_cpu, idesc, 4);
4397   }
4398   return cycles;
4399 #undef FLD
4400 }
4401
4402 UINT
4403 sh4a_sh4a_model::model_ldsl_macl_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4404 {
4405 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4406   const sh4a_scache* abuf = sem;
4407   const sh4a_idesc* idesc = abuf->idesc;
4408   int cycles = 0;
4409   {
4410     int referenced = 0;
4411     unsigned long long insn_referenced = abuf->written;
4412     INT in_usereg = -1;
4413     in_usereg = FLD (in_rn);
4414     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4415   }
4416   {
4417     int referenced = 0;
4418     unsigned long long insn_referenced = abuf->written;
4419     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
4420   }
4421   {
4422     int referenced = 0;
4423     unsigned long long insn_referenced = abuf->written;
4424     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4425   }
4426   {
4427     int referenced = 0;
4428     unsigned long long insn_referenced = abuf->written;
4429     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
4430   }
4431   {
4432     int referenced = 0;
4433     unsigned long long insn_referenced = abuf->written;
4434     cycles += model_u_load_mac_after (current_cpu, idesc, 4, referenced);
4435   }
4436   return cycles;
4437 #undef FLD
4438 }
4439
4440 UINT
4441 sh4a_sh4a_model::model_lds_pr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4442 {
4443 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4444   const sh4a_scache* abuf = sem;
4445   const sh4a_idesc* idesc = abuf->idesc;
4446   int cycles = 0;
4447   {
4448     INT in_usereg = -1;
4449     in_usereg = FLD (in_rn);
4450     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4451   }
4452   {
4453     cycles += model_u_lds_pr_before (current_cpu, idesc, 1);
4454   }
4455   return cycles;
4456 #undef FLD
4457 }
4458
4459 UINT
4460 sh4a_sh4a_model::model_lds_pr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4461 {
4462 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4463   const sh4a_scache* abuf = sem;
4464   const sh4a_idesc* idesc = abuf->idesc;
4465   int cycles = 0;
4466   {
4467     int referenced = 0;
4468     unsigned long long insn_referenced = abuf->written;
4469     INT in_usereg = -1;
4470     in_usereg = FLD (in_rn);
4471     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4472   }
4473   {
4474     int referenced = 0;
4475     unsigned long long insn_referenced = abuf->written;
4476     cycles += model_u_lds_pr_after (current_cpu, idesc, 1, referenced);
4477   }
4478   return cycles;
4479 #undef FLD
4480 }
4481
4482 UINT
4483 sh4a_sh4a_model::model_ldsl_pr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4484 {
4485 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4486   const sh4a_scache* abuf = sem;
4487   const sh4a_idesc* idesc = abuf->idesc;
4488   int cycles = 0;
4489   {
4490     INT in_usereg = -1;
4491     in_usereg = FLD (in_rn);
4492     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4493   }
4494   {
4495     cycles += model_u_lds_pr_before (current_cpu, idesc, 1);
4496   }
4497   {
4498     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
4499   }
4500   {
4501     cycles += model_u_load_pr_before (current_cpu, idesc, 3);
4502   }
4503   return cycles;
4504 #undef FLD
4505 }
4506
4507 UINT
4508 sh4a_sh4a_model::model_ldsl_pr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4509 {
4510 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
4511   const sh4a_scache* abuf = sem;
4512   const sh4a_idesc* idesc = abuf->idesc;
4513   int cycles = 0;
4514   {
4515     int referenced = 0;
4516     unsigned long long insn_referenced = abuf->written;
4517     INT in_usereg = -1;
4518     in_usereg = FLD (in_rn);
4519     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4520   }
4521   {
4522     int referenced = 0;
4523     unsigned long long insn_referenced = abuf->written;
4524     cycles += model_u_lds_pr_after (current_cpu, idesc, 1, referenced);
4525   }
4526   {
4527     int referenced = 0;
4528     unsigned long long insn_referenced = abuf->written;
4529     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
4530   }
4531   {
4532     int referenced = 0;
4533     unsigned long long insn_referenced = abuf->written;
4534     cycles += model_u_load_pr_after (current_cpu, idesc, 3, referenced);
4535   }
4536   return cycles;
4537 #undef FLD
4538 }
4539
4540 UINT
4541 sh4a_sh4a_model::model_macl_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4542 {
4543 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4544   const sh4a_scache* abuf = sem;
4545   const sh4a_idesc* idesc = abuf->idesc;
4546   int cycles = 0;
4547   {
4548     INT in_usereg = -1;
4549     in_usereg = FLD (in_rn);
4550     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4551   }
4552   {
4553     INT in_usereg = -1;
4554     in_usereg = FLD (in_rm);
4555     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4556   }
4557   {
4558     cycles += model_u_macl_before (current_cpu, idesc, 2);
4559   }
4560   return cycles;
4561 #undef FLD
4562 }
4563
4564 UINT
4565 sh4a_sh4a_model::model_macl_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4566 {
4567 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4568   const sh4a_scache* abuf = sem;
4569   const sh4a_idesc* idesc = abuf->idesc;
4570   int cycles = 0;
4571   {
4572     int referenced = 0;
4573     unsigned long long insn_referenced = abuf->written;
4574     INT in_usereg = -1;
4575     in_usereg = FLD (in_rn);
4576     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4577   }
4578   {
4579     int referenced = 0;
4580     unsigned long long insn_referenced = abuf->written;
4581     INT in_usereg = -1;
4582     in_usereg = FLD (in_rm);
4583     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4584   }
4585   {
4586     int referenced = 0;
4587     unsigned long long insn_referenced = abuf->written;
4588     cycles += model_u_macl_after (current_cpu, idesc, 2, referenced);
4589   }
4590   return cycles;
4591 #undef FLD
4592 }
4593
4594 UINT
4595 sh4a_sh4a_model::model_macw_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4596 {
4597 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4598   const sh4a_scache* abuf = sem;
4599   const sh4a_idesc* idesc = abuf->idesc;
4600   int cycles = 0;
4601   {
4602     INT in_usereg = -1;
4603     in_usereg = FLD (in_rn);
4604     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4605   }
4606   {
4607     INT in_usereg = -1;
4608     in_usereg = FLD (in_rm);
4609     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4610   }
4611   {
4612     cycles += model_u_macw_before (current_cpu, idesc, 2);
4613   }
4614   return cycles;
4615 #undef FLD
4616 }
4617
4618 UINT
4619 sh4a_sh4a_model::model_macw_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4620 {
4621 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4622   const sh4a_scache* abuf = sem;
4623   const sh4a_idesc* idesc = abuf->idesc;
4624   int cycles = 0;
4625   {
4626     int referenced = 0;
4627     unsigned long long insn_referenced = abuf->written;
4628     INT in_usereg = -1;
4629     in_usereg = FLD (in_rn);
4630     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4631   }
4632   {
4633     int referenced = 0;
4634     unsigned long long insn_referenced = abuf->written;
4635     INT in_usereg = -1;
4636     in_usereg = FLD (in_rm);
4637     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4638   }
4639   {
4640     int referenced = 0;
4641     unsigned long long insn_referenced = abuf->written;
4642     cycles += model_u_macw_after (current_cpu, idesc, 2, referenced);
4643   }
4644   return cycles;
4645 #undef FLD
4646 }
4647
4648 UINT
4649 sh4a_sh4a_model::model_mov_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4650 {
4651 #define FLD(f) abuf->fields.sfmt_and_compact.f
4652   const sh4a_scache* abuf = sem;
4653   const sh4a_idesc* idesc = abuf->idesc;
4654   int cycles = 0;
4655   {
4656     INT in_usereg = -1;
4657     in_usereg = FLD (in_rm64);
4658     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4659   }
4660   {
4661     cycles += model_u_exec_before (current_cpu, idesc, 1);
4662   }
4663   return cycles;
4664 #undef FLD
4665 }
4666
4667 UINT
4668 sh4a_sh4a_model::model_mov_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4669 {
4670 #define FLD(f) abuf->fields.sfmt_and_compact.f
4671   const sh4a_scache* abuf = sem;
4672   const sh4a_idesc* idesc = abuf->idesc;
4673   int cycles = 0;
4674   {
4675     int referenced = 0;
4676     unsigned long long insn_referenced = abuf->written;
4677     INT in_usereg = -1;
4678     in_usereg = FLD (in_rm64);
4679     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4680   }
4681   {
4682     int referenced = 0;
4683     unsigned long long insn_referenced = abuf->written;
4684     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
4685   }
4686   return cycles;
4687 #undef FLD
4688 }
4689
4690 UINT
4691 sh4a_sh4a_model::model_movi_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4692 {
4693 #define FLD(f) abuf->fields.sfmt_addi_compact.f
4694   const sh4a_scache* abuf = sem;
4695   const sh4a_idesc* idesc = abuf->idesc;
4696   int cycles = 0;
4697   {
4698     cycles += model_u_exec_before (current_cpu, idesc, 0);
4699   }
4700   return cycles;
4701 #undef FLD
4702 }
4703
4704 UINT
4705 sh4a_sh4a_model::model_movi_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4706 {
4707 #define FLD(f) abuf->fields.sfmt_addi_compact.f
4708   const sh4a_scache* abuf = sem;
4709   const sh4a_idesc* idesc = abuf->idesc;
4710   int cycles = 0;
4711   {
4712     int referenced = 0;
4713     unsigned long long insn_referenced = abuf->written;
4714     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
4715   }
4716   return cycles;
4717 #undef FLD
4718 }
4719
4720 UINT
4721 sh4a_sh4a_model::model_movb1_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4722 {
4723 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4724   const sh4a_scache* abuf = sem;
4725   const sh4a_idesc* idesc = abuf->idesc;
4726   int cycles = 0;
4727   {
4728     INT in_usereg = -1;
4729     in_usereg = FLD (in_rn);
4730     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4731   }
4732   {
4733     INT in_usereg = -1;
4734     in_usereg = FLD (in_rm);
4735     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4736   }
4737   {
4738     cycles += model_u_exec_before (current_cpu, idesc, 2);
4739   }
4740   {
4741     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4742   }
4743   return cycles;
4744 #undef FLD
4745 }
4746
4747 UINT
4748 sh4a_sh4a_model::model_movb1_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4749 {
4750 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4751   const sh4a_scache* abuf = sem;
4752   const sh4a_idesc* idesc = abuf->idesc;
4753   int cycles = 0;
4754   {
4755     int referenced = 0;
4756     unsigned long long insn_referenced = abuf->written;
4757     INT in_usereg = -1;
4758     in_usereg = FLD (in_rn);
4759     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4760   }
4761   {
4762     int referenced = 0;
4763     unsigned long long insn_referenced = abuf->written;
4764     INT in_usereg = -1;
4765     in_usereg = FLD (in_rm);
4766     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4767   }
4768   {
4769     int referenced = 0;
4770     unsigned long long insn_referenced = abuf->written;
4771     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4772   }
4773   {
4774     int referenced = 0;
4775     unsigned long long insn_referenced = abuf->written;
4776     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
4777   }
4778   return cycles;
4779 #undef FLD
4780 }
4781
4782 UINT
4783 sh4a_sh4a_model::model_movb2_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4784 {
4785 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4786   const sh4a_scache* abuf = sem;
4787   const sh4a_idesc* idesc = abuf->idesc;
4788   int cycles = 0;
4789   {
4790     INT in_usereg = -1;
4791     in_usereg = FLD (in_rn);
4792     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4793   }
4794   {
4795     INT in_usereg = -1;
4796     in_usereg = FLD (in_rm);
4797     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4798   }
4799   {
4800     cycles += model_u_exec_before (current_cpu, idesc, 2);
4801   }
4802   {
4803     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4804   }
4805   return cycles;
4806 #undef FLD
4807 }
4808
4809 UINT
4810 sh4a_sh4a_model::model_movb2_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4811 {
4812 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4813   const sh4a_scache* abuf = sem;
4814   const sh4a_idesc* idesc = abuf->idesc;
4815   int cycles = 0;
4816   {
4817     int referenced = 0;
4818     unsigned long long insn_referenced = abuf->written;
4819     INT in_usereg = -1;
4820     in_usereg = FLD (in_rn);
4821     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4822   }
4823   {
4824     int referenced = 0;
4825     unsigned long long insn_referenced = abuf->written;
4826     INT in_usereg = -1;
4827     in_usereg = FLD (in_rm);
4828     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4829   }
4830   {
4831     int referenced = 0;
4832     unsigned long long insn_referenced = abuf->written;
4833     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4834   }
4835   {
4836     int referenced = 0;
4837     unsigned long long insn_referenced = abuf->written;
4838     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
4839   }
4840   return cycles;
4841 #undef FLD
4842 }
4843
4844 UINT
4845 sh4a_sh4a_model::model_movb3_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4846 {
4847 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
4848   const sh4a_scache* abuf = sem;
4849   const sh4a_idesc* idesc = abuf->idesc;
4850   int cycles = 0;
4851   {
4852     INT in_usereg = -1;
4853     in_usereg = FLD (in_rn);
4854     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4855   }
4856   {
4857     INT in_usereg = -1;
4858     in_usereg = FLD (in_rm);
4859     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4860   }
4861   {
4862     INT in_usereg = -1;
4863     in_usereg = FLD (in_r0);
4864     cycles += model_u_use_gr_before (current_cpu, idesc, 2, in_usereg);
4865   }
4866   {
4867     cycles += model_u_exec_before (current_cpu, idesc, 3);
4868   }
4869   {
4870     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
4871   }
4872   return cycles;
4873 #undef FLD
4874 }
4875
4876 UINT
4877 sh4a_sh4a_model::model_movb3_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4878 {
4879 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
4880   const sh4a_scache* abuf = sem;
4881   const sh4a_idesc* idesc = abuf->idesc;
4882   int cycles = 0;
4883   {
4884     int referenced = 0;
4885     unsigned long long insn_referenced = abuf->written;
4886     INT in_usereg = -1;
4887     in_usereg = FLD (in_rn);
4888     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4889   }
4890   {
4891     int referenced = 0;
4892     unsigned long long insn_referenced = abuf->written;
4893     INT in_usereg = -1;
4894     in_usereg = FLD (in_rm);
4895     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4896   }
4897   {
4898     int referenced = 0;
4899     unsigned long long insn_referenced = abuf->written;
4900     INT in_usereg = -1;
4901     in_usereg = FLD (in_r0);
4902     cycles += model_u_use_gr_after (current_cpu, idesc, 2, referenced, in_usereg);
4903   }
4904   {
4905     int referenced = 0;
4906     unsigned long long insn_referenced = abuf->written;
4907     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
4908   }
4909   {
4910     int referenced = 0;
4911     unsigned long long insn_referenced = abuf->written;
4912     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
4913   }
4914   return cycles;
4915 #undef FLD
4916 }
4917
4918 UINT
4919 sh4a_sh4a_model::model_movb4_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4920 {
4921 #define FLD(f) abuf->fields.sfmt_andi_compact.f
4922   const sh4a_scache* abuf = sem;
4923   const sh4a_idesc* idesc = abuf->idesc;
4924   int cycles = 0;
4925   {
4926     cycles += model_u_exec_before (current_cpu, idesc, 0);
4927   }
4928   {
4929     cycles += model_u_sx_before (current_cpu, idesc, 1);
4930   }
4931   {
4932     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
4933   }
4934   return cycles;
4935 #undef FLD
4936 }
4937
4938 UINT
4939 sh4a_sh4a_model::model_movb4_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4940 {
4941 #define FLD(f) abuf->fields.sfmt_andi_compact.f
4942   const sh4a_scache* abuf = sem;
4943   const sh4a_idesc* idesc = abuf->idesc;
4944   int cycles = 0;
4945   {
4946     int referenced = 0;
4947     unsigned long long insn_referenced = abuf->written;
4948     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
4949   }
4950   {
4951     int referenced = 0;
4952     unsigned long long insn_referenced = abuf->written;
4953     cycles += model_u_sx_after (current_cpu, idesc, 1, referenced);
4954   }
4955   {
4956     int referenced = 0;
4957     unsigned long long insn_referenced = abuf->written;
4958     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
4959   }
4960   return cycles;
4961 #undef FLD
4962 }
4963
4964 UINT
4965 sh4a_sh4a_model::model_movb5_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
4966 {
4967 #define FLD(f) abuf->fields.sfmt_movb5_compact.f
4968   const sh4a_scache* abuf = sem;
4969   const sh4a_idesc* idesc = abuf->idesc;
4970   int cycles = 0;
4971   {
4972     INT in_usereg = -1;
4973     in_usereg = FLD (in_r0);
4974     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4975   }
4976   {
4977     INT in_usereg = -1;
4978     in_usereg = FLD (in_rm);
4979     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4980   }
4981   {
4982     cycles += model_u_exec_before (current_cpu, idesc, 2);
4983   }
4984   {
4985     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4986   }
4987   return cycles;
4988 #undef FLD
4989 }
4990
4991 UINT
4992 sh4a_sh4a_model::model_movb5_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
4993 {
4994 #define FLD(f) abuf->fields.sfmt_movb5_compact.f
4995   const sh4a_scache* abuf = sem;
4996   const sh4a_idesc* idesc = abuf->idesc;
4997   int cycles = 0;
4998   {
4999     int referenced = 0;
5000     unsigned long long insn_referenced = abuf->written;
5001     INT in_usereg = -1;
5002     in_usereg = FLD (in_r0);
5003     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5004   }
5005   {
5006     int referenced = 0;
5007     unsigned long long insn_referenced = abuf->written;
5008     INT in_usereg = -1;
5009     in_usereg = FLD (in_rm);
5010     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
5011   }
5012   {
5013     int referenced = 0;
5014     unsigned long long insn_referenced = abuf->written;
5015     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5016   }
5017   {
5018     int referenced = 0;
5019     unsigned long long insn_referenced = abuf->written;
5020     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
5021   }
5022   return cycles;
5023 #undef FLD
5024 }
5025
5026 UINT
5027 sh4a_sh4a_model::model_movb6_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5028 {
5029 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5030   const sh4a_scache* abuf = sem;
5031   const sh4a_idesc* idesc = abuf->idesc;
5032   int cycles = 0;
5033   {
5034     INT in_usereg = -1;
5035     in_usereg = FLD (in_rm);
5036     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5037   }
5038   {
5039     cycles += model_u_exec_before (current_cpu, idesc, 1);
5040   }
5041   {
5042     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
5043   }
5044   {
5045     INT out_loadreg = -1;
5046     out_loadreg = FLD (out_rn);
5047     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
5048   }
5049   return cycles;
5050 #undef FLD
5051 }
5052
5053 UINT
5054 sh4a_sh4a_model::model_movb6_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5055 {
5056 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5057   const sh4a_scache* abuf = sem;
5058   const sh4a_idesc* idesc = abuf->idesc;
5059   int cycles = 0;
5060   {
5061     int referenced = 0;
5062     unsigned long long insn_referenced = abuf->written;
5063     INT in_usereg = -1;
5064     in_usereg = FLD (in_rm);
5065     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5066   }
5067   {
5068     int referenced = 0;
5069     unsigned long long insn_referenced = abuf->written;
5070     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5071   }
5072   {
5073     int referenced = 0;
5074     unsigned long long insn_referenced = abuf->written;
5075     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
5076   }
5077   {
5078     int referenced = 0;
5079     unsigned long long insn_referenced = abuf->written;
5080     INT out_loadreg = -1;
5081     out_loadreg = FLD (out_rn);
5082     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
5083   }
5084   return cycles;
5085 #undef FLD
5086 }
5087
5088 UINT
5089 sh4a_sh4a_model::model_movb7_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5090 {
5091 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5092   const sh4a_scache* abuf = sem;
5093   const sh4a_idesc* idesc = abuf->idesc;
5094   int cycles = 0;
5095   {
5096     INT in_usereg = -1;
5097     in_usereg = FLD (in_rm);
5098     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5099   }
5100   {
5101     cycles += model_u_exec_before (current_cpu, idesc, 1);
5102   }
5103   {
5104     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
5105   }
5106   {
5107     INT out_loadreg = -1;
5108     out_loadreg = FLD (out_rn);
5109     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
5110   }
5111   return cycles;
5112 #undef FLD
5113 }
5114
5115 UINT
5116 sh4a_sh4a_model::model_movb7_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5117 {
5118 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5119   const sh4a_scache* abuf = sem;
5120   const sh4a_idesc* idesc = abuf->idesc;
5121   int cycles = 0;
5122   {
5123     int referenced = 0;
5124     unsigned long long insn_referenced = abuf->written;
5125     INT in_usereg = -1;
5126     in_usereg = FLD (in_rm);
5127     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5128   }
5129   {
5130     int referenced = 0;
5131     unsigned long long insn_referenced = abuf->written;
5132     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5133   }
5134   {
5135     int referenced = 0;
5136     unsigned long long insn_referenced = abuf->written;
5137     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
5138   }
5139   {
5140     int referenced = 0;
5141     unsigned long long insn_referenced = abuf->written;
5142     INT out_loadreg = -1;
5143     out_loadreg = FLD (out_rn);
5144     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
5145   }
5146   return cycles;
5147 #undef FLD
5148 }
5149
5150 UINT
5151 sh4a_sh4a_model::model_movb8_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5152 {
5153 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
5154   const sh4a_scache* abuf = sem;
5155   const sh4a_idesc* idesc = abuf->idesc;
5156   int cycles = 0;
5157   {
5158     INT in_usereg = -1;
5159     in_usereg = FLD (in_rm);
5160     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5161   }
5162   {
5163     INT in_usereg = -1;
5164     in_usereg = FLD (in_r0);
5165     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
5166   }
5167   {
5168     cycles += model_u_exec_before (current_cpu, idesc, 2);
5169   }
5170   {
5171     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
5172   }
5173   {
5174     INT out_loadreg = -1;
5175     out_loadreg = FLD (out_rn);
5176     cycles += model_u_load_gr_before (current_cpu, idesc, 4, out_loadreg);
5177   }
5178   return cycles;
5179 #undef FLD
5180 }
5181
5182 UINT
5183 sh4a_sh4a_model::model_movb8_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5184 {
5185 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
5186   const sh4a_scache* abuf = sem;
5187   const sh4a_idesc* idesc = abuf->idesc;
5188   int cycles = 0;
5189   {
5190     int referenced = 0;
5191     unsigned long long insn_referenced = abuf->written;
5192     INT in_usereg = -1;
5193     in_usereg = FLD (in_rm);
5194     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5195   }
5196   {
5197     int referenced = 0;
5198     unsigned long long insn_referenced = abuf->written;
5199     INT in_usereg = -1;
5200     in_usereg = FLD (in_r0);
5201     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
5202   }
5203   {
5204     int referenced = 0;
5205     unsigned long long insn_referenced = abuf->written;
5206     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5207   }
5208   {
5209     int referenced = 0;
5210     unsigned long long insn_referenced = abuf->written;
5211     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
5212   }
5213   {
5214     int referenced = 0;
5215     unsigned long long insn_referenced = abuf->written;
5216     INT out_loadreg = -1;
5217     out_loadreg = FLD (out_rn);
5218     cycles += model_u_load_gr_after (current_cpu, idesc, 4, referenced, out_loadreg);
5219   }
5220   return cycles;
5221 #undef FLD
5222 }
5223
5224 UINT
5225 sh4a_sh4a_model::model_movb9_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5226 {
5227 #define FLD(f) abuf->fields.sfmt_andi_compact.f
5228   const sh4a_scache* abuf = sem;
5229   const sh4a_idesc* idesc = abuf->idesc;
5230   int cycles = 0;
5231   {
5232     cycles += model_u_exec_before (current_cpu, idesc, 0);
5233   }
5234   {
5235     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
5236   }
5237   {
5238     INT out_loadreg = -1;
5239     out_loadreg = FLD (out_r0);
5240     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
5241   }
5242   return cycles;
5243 #undef FLD
5244 }
5245
5246 UINT
5247 sh4a_sh4a_model::model_movb9_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5248 {
5249 #define FLD(f) abuf->fields.sfmt_andi_compact.f
5250   const sh4a_scache* abuf = sem;
5251   const sh4a_idesc* idesc = abuf->idesc;
5252   int cycles = 0;
5253   {
5254     int referenced = 0;
5255     unsigned long long insn_referenced = abuf->written;
5256     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
5257   }
5258   {
5259     int referenced = 0;
5260     unsigned long long insn_referenced = abuf->written;
5261     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
5262   }
5263   {
5264     int referenced = 0;
5265     unsigned long long insn_referenced = abuf->written;
5266     INT out_loadreg = -1;
5267     out_loadreg = FLD (out_r0);
5268     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
5269   }
5270   return cycles;
5271 #undef FLD
5272 }
5273
5274 UINT
5275 sh4a_sh4a_model::model_movb10_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5276 {
5277 #define FLD(f) abuf->fields.sfmt_movb10_compact.f
5278   const sh4a_scache* abuf = sem;
5279   const sh4a_idesc* idesc = abuf->idesc;
5280   int cycles = 0;
5281   {
5282     INT in_usereg = -1;
5283     in_usereg = FLD (in_rm);
5284     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5285   }
5286   {
5287     cycles += model_u_exec_before (current_cpu, idesc, 1);
5288   }
5289   {
5290     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
5291   }
5292   {
5293     INT out_loadreg = -1;
5294     out_loadreg = FLD (out_r0);
5295     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
5296   }
5297   return cycles;
5298 #undef FLD
5299 }
5300
5301 UINT
5302 sh4a_sh4a_model::model_movb10_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5303 {
5304 #define FLD(f) abuf->fields.sfmt_movb10_compact.f
5305   const sh4a_scache* abuf = sem;
5306   const sh4a_idesc* idesc = abuf->idesc;
5307   int cycles = 0;
5308   {
5309     int referenced = 0;
5310     unsigned long long insn_referenced = abuf->written;
5311     INT in_usereg = -1;
5312     in_usereg = FLD (in_rm);
5313     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5314   }
5315   {
5316     int referenced = 0;
5317     unsigned long long insn_referenced = abuf->written;
5318     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5319   }
5320   {
5321     int referenced = 0;
5322     unsigned long long insn_referenced = abuf->written;
5323     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
5324   }
5325   {
5326     int referenced = 0;
5327     unsigned long long insn_referenced = abuf->written;
5328     INT out_loadreg = -1;
5329     out_loadreg = FLD (out_r0);
5330     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
5331   }
5332   return cycles;
5333 #undef FLD
5334 }
5335
5336 UINT
5337 sh4a_sh4a_model::model_movl1_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5338 {
5339 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5340   const sh4a_scache* abuf = sem;
5341   const sh4a_idesc* idesc = abuf->idesc;
5342   int cycles = 0;
5343   {
5344     INT in_usereg = -1;
5345     in_usereg = FLD (in_rm);
5346     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5347   }
5348   {
5349     INT in_usereg = -1;
5350     in_usereg = FLD (in_rn);
5351     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
5352   }
5353   {
5354     cycles += model_u_exec_before (current_cpu, idesc, 2);
5355   }
5356   {
5357     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
5358   }
5359   return cycles;
5360 #undef FLD
5361 }
5362
5363 UINT
5364 sh4a_sh4a_model::model_movl1_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5365 {
5366 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5367   const sh4a_scache* abuf = sem;
5368   const sh4a_idesc* idesc = abuf->idesc;
5369   int cycles = 0;
5370   {
5371     int referenced = 0;
5372     unsigned long long insn_referenced = abuf->written;
5373     INT in_usereg = -1;
5374     in_usereg = FLD (in_rm);
5375     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5376   }
5377   {
5378     int referenced = 0;
5379     unsigned long long insn_referenced = abuf->written;
5380     INT in_usereg = -1;
5381     in_usereg = FLD (in_rn);
5382     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
5383   }
5384   {
5385     int referenced = 0;
5386     unsigned long long insn_referenced = abuf->written;
5387     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5388   }
5389   {
5390     int referenced = 0;
5391     unsigned long long insn_referenced = abuf->written;
5392     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
5393   }
5394   return cycles;
5395 #undef FLD
5396 }
5397
5398 UINT
5399 sh4a_sh4a_model::model_movl2_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5400 {
5401 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5402   const sh4a_scache* abuf = sem;
5403   const sh4a_idesc* idesc = abuf->idesc;
5404   int cycles = 0;
5405   {
5406     INT in_usereg = -1;
5407     in_usereg = FLD (in_rm);
5408     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5409   }
5410   {
5411     INT in_usereg = -1;
5412     in_usereg = FLD (in_rn);
5413     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
5414   }
5415   {
5416     cycles += model_u_exec_before (current_cpu, idesc, 2);
5417   }
5418   {
5419     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
5420   }
5421   return cycles;
5422 #undef FLD
5423 }
5424
5425 UINT
5426 sh4a_sh4a_model::model_movl2_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5427 {
5428 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5429   const sh4a_scache* abuf = sem;
5430   const sh4a_idesc* idesc = abuf->idesc;
5431   int cycles = 0;
5432   {
5433     int referenced = 0;
5434     unsigned long long insn_referenced = abuf->written;
5435     INT in_usereg = -1;
5436     in_usereg = FLD (in_rm);
5437     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5438   }
5439   {
5440     int referenced = 0;
5441     unsigned long long insn_referenced = abuf->written;
5442     INT in_usereg = -1;
5443     in_usereg = FLD (in_rn);
5444     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
5445   }
5446   {
5447     int referenced = 0;
5448     unsigned long long insn_referenced = abuf->written;
5449     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5450   }
5451   {
5452     int referenced = 0;
5453     unsigned long long insn_referenced = abuf->written;
5454     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
5455   }
5456   return cycles;
5457 #undef FLD
5458 }
5459
5460 UINT
5461 sh4a_sh4a_model::model_movl3_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5462 {
5463 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
5464   const sh4a_scache* abuf = sem;
5465   const sh4a_idesc* idesc = abuf->idesc;
5466   int cycles = 0;
5467   {
5468     INT in_usereg = -1;
5469     in_usereg = FLD (in_rm);
5470     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5471   }
5472   {
5473     INT in_usereg = -1;
5474     in_usereg = FLD (in_rn);
5475     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
5476   }
5477   {
5478     INT in_usereg = -1;
5479     in_usereg = FLD (in_r0);
5480     cycles += model_u_use_gr_before (current_cpu, idesc, 2, in_usereg);
5481   }
5482   {
5483     cycles += model_u_exec_before (current_cpu, idesc, 3);
5484   }
5485   {
5486     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
5487   }
5488   return cycles;
5489 #undef FLD
5490 }
5491
5492 UINT
5493 sh4a_sh4a_model::model_movl3_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5494 {
5495 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
5496   const sh4a_scache* abuf = sem;
5497   const sh4a_idesc* idesc = abuf->idesc;
5498   int cycles = 0;
5499   {
5500     int referenced = 0;
5501     unsigned long long insn_referenced = abuf->written;
5502     INT in_usereg = -1;
5503     in_usereg = FLD (in_rm);
5504     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5505   }
5506   {
5507     int referenced = 0;
5508     unsigned long long insn_referenced = abuf->written;
5509     INT in_usereg = -1;
5510     in_usereg = FLD (in_rn);
5511     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
5512   }
5513   {
5514     int referenced = 0;
5515     unsigned long long insn_referenced = abuf->written;
5516     INT in_usereg = -1;
5517     in_usereg = FLD (in_r0);
5518     cycles += model_u_use_gr_after (current_cpu, idesc, 2, referenced, in_usereg);
5519   }
5520   {
5521     int referenced = 0;
5522     unsigned long long insn_referenced = abuf->written;
5523     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
5524   }
5525   {
5526     int referenced = 0;
5527     unsigned long long insn_referenced = abuf->written;
5528     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
5529   }
5530   return cycles;
5531 #undef FLD
5532 }
5533
5534 UINT
5535 sh4a_sh4a_model::model_movl4_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5536 {
5537 #define FLD(f) abuf->fields.sfmt_movl4_compact.f
5538   const sh4a_scache* abuf = sem;
5539   const sh4a_idesc* idesc = abuf->idesc;
5540   int cycles = 0;
5541   {
5542     INT in_usereg = -1;
5543     in_usereg = FLD (in_r0);
5544     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5545   }
5546   {
5547     cycles += model_u_exec_before (current_cpu, idesc, 1);
5548   }
5549   {
5550     cycles += model_u_sx_before (current_cpu, idesc, 2);
5551   }
5552   {
5553     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
5554   }
5555   return cycles;
5556 #undef FLD
5557 }
5558
5559 UINT
5560 sh4a_sh4a_model::model_movl4_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5561 {
5562 #define FLD(f) abuf->fields.sfmt_movl4_compact.f
5563   const sh4a_scache* abuf = sem;
5564   const sh4a_idesc* idesc = abuf->idesc;
5565   int cycles = 0;
5566   {
5567     int referenced = 0;
5568     unsigned long long insn_referenced = abuf->written;
5569     INT in_usereg = -1;
5570     in_usereg = FLD (in_r0);
5571     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5572   }
5573   {
5574     int referenced = 0;
5575     unsigned long long insn_referenced = abuf->written;
5576     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5577   }
5578   {
5579     int referenced = 0;
5580     unsigned long long insn_referenced = abuf->written;
5581     cycles += model_u_sx_after (current_cpu, idesc, 2, referenced);
5582   }
5583   {
5584     int referenced = 0;
5585     unsigned long long insn_referenced = abuf->written;
5586     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
5587   }
5588   return cycles;
5589 #undef FLD
5590 }
5591
5592 UINT
5593 sh4a_sh4a_model::model_movl5_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5594 {
5595 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5596   const sh4a_scache* abuf = sem;
5597   const sh4a_idesc* idesc = abuf->idesc;
5598   int cycles = 0;
5599   {
5600     INT in_usereg = -1;
5601     in_usereg = FLD (in_rm);
5602     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5603   }
5604   {
5605     INT in_usereg = -1;
5606     in_usereg = FLD (in_rn);
5607     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
5608   }
5609   {
5610     cycles += model_u_exec_before (current_cpu, idesc, 2);
5611   }
5612   {
5613     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
5614   }
5615   return cycles;
5616 #undef FLD
5617 }
5618
5619 UINT
5620 sh4a_sh4a_model::model_movl5_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5621 {
5622 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5623   const sh4a_scache* abuf = sem;
5624   const sh4a_idesc* idesc = abuf->idesc;
5625   int cycles = 0;
5626   {
5627     int referenced = 0;
5628     unsigned long long insn_referenced = abuf->written;
5629     INT in_usereg = -1;
5630     in_usereg = FLD (in_rm);
5631     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5632   }
5633   {
5634     int referenced = 0;
5635     unsigned long long insn_referenced = abuf->written;
5636     INT in_usereg = -1;
5637     in_usereg = FLD (in_rn);
5638     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
5639   }
5640   {
5641     int referenced = 0;
5642     unsigned long long insn_referenced = abuf->written;
5643     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5644   }
5645   {
5646     int referenced = 0;
5647     unsigned long long insn_referenced = abuf->written;
5648     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
5649   }
5650   return cycles;
5651 #undef FLD
5652 }
5653
5654 UINT
5655 sh4a_sh4a_model::model_movl6_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5656 {
5657 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5658   const sh4a_scache* abuf = sem;
5659   const sh4a_idesc* idesc = abuf->idesc;
5660   int cycles = 0;
5661   {
5662     INT in_usereg = -1;
5663     in_usereg = FLD (in_rm);
5664     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5665   }
5666   {
5667     cycles += model_u_exec_before (current_cpu, idesc, 1);
5668   }
5669   {
5670     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
5671   }
5672   {
5673     INT out_loadreg = -1;
5674     out_loadreg = FLD (out_rn);
5675     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
5676   }
5677   return cycles;
5678 #undef FLD
5679 }
5680
5681 UINT
5682 sh4a_sh4a_model::model_movl6_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5683 {
5684 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5685   const sh4a_scache* abuf = sem;
5686   const sh4a_idesc* idesc = abuf->idesc;
5687   int cycles = 0;
5688   {
5689     int referenced = 0;
5690     unsigned long long insn_referenced = abuf->written;
5691     INT in_usereg = -1;
5692     in_usereg = FLD (in_rm);
5693     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5694   }
5695   {
5696     int referenced = 0;
5697     unsigned long long insn_referenced = abuf->written;
5698     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5699   }
5700   {
5701     int referenced = 0;
5702     unsigned long long insn_referenced = abuf->written;
5703     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
5704   }
5705   {
5706     int referenced = 0;
5707     unsigned long long insn_referenced = abuf->written;
5708     INT out_loadreg = -1;
5709     out_loadreg = FLD (out_rn);
5710     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
5711   }
5712   return cycles;
5713 #undef FLD
5714 }
5715
5716 UINT
5717 sh4a_sh4a_model::model_movl7_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5718 {
5719 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5720   const sh4a_scache* abuf = sem;
5721   const sh4a_idesc* idesc = abuf->idesc;
5722   int cycles = 0;
5723   {
5724     INT in_usereg = -1;
5725     in_usereg = FLD (in_rm);
5726     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5727   }
5728   {
5729     cycles += model_u_exec_before (current_cpu, idesc, 1);
5730   }
5731   {
5732     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
5733   }
5734   {
5735     INT out_loadreg = -1;
5736     out_loadreg = FLD (out_rn);
5737     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
5738   }
5739   return cycles;
5740 #undef FLD
5741 }
5742
5743 UINT
5744 sh4a_sh4a_model::model_movl7_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5745 {
5746 #define FLD(f) abuf->fields.sfmt_macl_compact.f
5747   const sh4a_scache* abuf = sem;
5748   const sh4a_idesc* idesc = abuf->idesc;
5749   int cycles = 0;
5750   {
5751     int referenced = 0;
5752     unsigned long long insn_referenced = abuf->written;
5753     INT in_usereg = -1;
5754     in_usereg = FLD (in_rm);
5755     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5756   }
5757   {
5758     int referenced = 0;
5759     unsigned long long insn_referenced = abuf->written;
5760     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5761   }
5762   {
5763     int referenced = 0;
5764     unsigned long long insn_referenced = abuf->written;
5765     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
5766   }
5767   {
5768     int referenced = 0;
5769     unsigned long long insn_referenced = abuf->written;
5770     INT out_loadreg = -1;
5771     out_loadreg = FLD (out_rn);
5772     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
5773   }
5774   return cycles;
5775 #undef FLD
5776 }
5777
5778 UINT
5779 sh4a_sh4a_model::model_movl8_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5780 {
5781 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
5782   const sh4a_scache* abuf = sem;
5783   const sh4a_idesc* idesc = abuf->idesc;
5784   int cycles = 0;
5785   {
5786     INT in_usereg = -1;
5787     in_usereg = FLD (in_rm);
5788     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5789   }
5790   {
5791     INT in_usereg = -1;
5792     in_usereg = FLD (in_r0);
5793     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
5794   }
5795   {
5796     cycles += model_u_exec_before (current_cpu, idesc, 2);
5797   }
5798   {
5799     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
5800   }
5801   {
5802     INT out_loadreg = -1;
5803     out_loadreg = FLD (out_rn);
5804     cycles += model_u_load_gr_before (current_cpu, idesc, 4, out_loadreg);
5805   }
5806   return cycles;
5807 #undef FLD
5808 }
5809
5810 UINT
5811 sh4a_sh4a_model::model_movl8_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5812 {
5813 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
5814   const sh4a_scache* abuf = sem;
5815   const sh4a_idesc* idesc = abuf->idesc;
5816   int cycles = 0;
5817   {
5818     int referenced = 0;
5819     unsigned long long insn_referenced = abuf->written;
5820     INT in_usereg = -1;
5821     in_usereg = FLD (in_rm);
5822     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5823   }
5824   {
5825     int referenced = 0;
5826     unsigned long long insn_referenced = abuf->written;
5827     INT in_usereg = -1;
5828     in_usereg = FLD (in_r0);
5829     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
5830   }
5831   {
5832     int referenced = 0;
5833     unsigned long long insn_referenced = abuf->written;
5834     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5835   }
5836   {
5837     int referenced = 0;
5838     unsigned long long insn_referenced = abuf->written;
5839     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
5840   }
5841   {
5842     int referenced = 0;
5843     unsigned long long insn_referenced = abuf->written;
5844     INT out_loadreg = -1;
5845     out_loadreg = FLD (out_rn);
5846     cycles += model_u_load_gr_after (current_cpu, idesc, 4, referenced, out_loadreg);
5847   }
5848   return cycles;
5849 #undef FLD
5850 }
5851
5852 UINT
5853 sh4a_sh4a_model::model_movl9_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5854 {
5855 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
5856   const sh4a_scache* abuf = sem;
5857   const sh4a_idesc* idesc = abuf->idesc;
5858   int cycles = 0;
5859   {
5860     cycles += model_u_exec_before (current_cpu, idesc, 0);
5861   }
5862   {
5863     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
5864   }
5865   {
5866     INT out_loadreg = -1;
5867     out_loadreg = FLD (out_r0);
5868     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
5869   }
5870   return cycles;
5871 #undef FLD
5872 }
5873
5874 UINT
5875 sh4a_sh4a_model::model_movl9_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5876 {
5877 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
5878   const sh4a_scache* abuf = sem;
5879   const sh4a_idesc* idesc = abuf->idesc;
5880   int cycles = 0;
5881   {
5882     int referenced = 0;
5883     unsigned long long insn_referenced = abuf->written;
5884     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
5885   }
5886   {
5887     int referenced = 0;
5888     unsigned long long insn_referenced = abuf->written;
5889     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
5890   }
5891   {
5892     int referenced = 0;
5893     unsigned long long insn_referenced = abuf->written;
5894     INT out_loadreg = -1;
5895     out_loadreg = FLD (out_r0);
5896     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
5897   }
5898   return cycles;
5899 #undef FLD
5900 }
5901
5902 UINT
5903 sh4a_sh4a_model::model_movl10_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5904 {
5905 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
5906   const sh4a_scache* abuf = sem;
5907   const sh4a_idesc* idesc = abuf->idesc;
5908   int cycles = 0;
5909   {
5910     cycles += model_u_exec_before (current_cpu, idesc, 0);
5911   }
5912   {
5913     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
5914   }
5915   {
5916     INT out_loadreg = -1;
5917     out_loadreg = FLD (out_rn);
5918     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
5919   }
5920   return cycles;
5921 #undef FLD
5922 }
5923
5924 UINT
5925 sh4a_sh4a_model::model_movl10_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5926 {
5927 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
5928   const sh4a_scache* abuf = sem;
5929   const sh4a_idesc* idesc = abuf->idesc;
5930   int cycles = 0;
5931   {
5932     int referenced = 0;
5933     unsigned long long insn_referenced = abuf->written;
5934     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
5935   }
5936   {
5937     int referenced = 0;
5938     unsigned long long insn_referenced = abuf->written;
5939     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
5940   }
5941   {
5942     int referenced = 0;
5943     unsigned long long insn_referenced = abuf->written;
5944     INT out_loadreg = -1;
5945     out_loadreg = FLD (out_rn);
5946     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
5947   }
5948   return cycles;
5949 #undef FLD
5950 }
5951
5952 UINT
5953 sh4a_sh4a_model::model_movl11_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
5954 {
5955 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5956   const sh4a_scache* abuf = sem;
5957   const sh4a_idesc* idesc = abuf->idesc;
5958   int cycles = 0;
5959   {
5960     INT in_usereg = -1;
5961     in_usereg = FLD (in_rm);
5962     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5963   }
5964   {
5965     cycles += model_u_exec_before (current_cpu, idesc, 1);
5966   }
5967   {
5968     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
5969   }
5970   {
5971     INT out_loadreg = -1;
5972     out_loadreg = FLD (out_rn);
5973     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
5974   }
5975   return cycles;
5976 #undef FLD
5977 }
5978
5979 UINT
5980 sh4a_sh4a_model::model_movl11_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
5981 {
5982 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5983   const sh4a_scache* abuf = sem;
5984   const sh4a_idesc* idesc = abuf->idesc;
5985   int cycles = 0;
5986   {
5987     int referenced = 0;
5988     unsigned long long insn_referenced = abuf->written;
5989     INT in_usereg = -1;
5990     in_usereg = FLD (in_rm);
5991     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5992   }
5993   {
5994     int referenced = 0;
5995     unsigned long long insn_referenced = abuf->written;
5996     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5997   }
5998   {
5999     int referenced = 0;
6000     unsigned long long insn_referenced = abuf->written;
6001     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
6002   }
6003   {
6004     int referenced = 0;
6005     unsigned long long insn_referenced = abuf->written;
6006     INT out_loadreg = -1;
6007     out_loadreg = FLD (out_rn);
6008     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
6009   }
6010   return cycles;
6011 #undef FLD
6012 }
6013
6014 UINT
6015 sh4a_sh4a_model::model_movw1_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6016 {
6017 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
6018   const sh4a_scache* abuf = sem;
6019   const sh4a_idesc* idesc = abuf->idesc;
6020   int cycles = 0;
6021   {
6022     INT in_usereg = -1;
6023     in_usereg = FLD (in_rm);
6024     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6025   }
6026   {
6027     INT in_usereg = -1;
6028     in_usereg = FLD (in_rn);
6029     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
6030   }
6031   {
6032     cycles += model_u_exec_before (current_cpu, idesc, 2);
6033   }
6034   {
6035     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
6036   }
6037   return cycles;
6038 #undef FLD
6039 }
6040
6041 UINT
6042 sh4a_sh4a_model::model_movw1_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6043 {
6044 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
6045   const sh4a_scache* abuf = sem;
6046   const sh4a_idesc* idesc = abuf->idesc;
6047   int cycles = 0;
6048   {
6049     int referenced = 0;
6050     unsigned long long insn_referenced = abuf->written;
6051     INT in_usereg = -1;
6052     in_usereg = FLD (in_rm);
6053     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6054   }
6055   {
6056     int referenced = 0;
6057     unsigned long long insn_referenced = abuf->written;
6058     INT in_usereg = -1;
6059     in_usereg = FLD (in_rn);
6060     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
6061   }
6062   {
6063     int referenced = 0;
6064     unsigned long long insn_referenced = abuf->written;
6065     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
6066   }
6067   {
6068     int referenced = 0;
6069     unsigned long long insn_referenced = abuf->written;
6070     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
6071   }
6072   return cycles;
6073 #undef FLD
6074 }
6075
6076 UINT
6077 sh4a_sh4a_model::model_movw2_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6078 {
6079 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6080   const sh4a_scache* abuf = sem;
6081   const sh4a_idesc* idesc = abuf->idesc;
6082   int cycles = 0;
6083   {
6084     INT in_usereg = -1;
6085     in_usereg = FLD (in_rm);
6086     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6087   }
6088   {
6089     INT in_usereg = -1;
6090     in_usereg = FLD (in_rn);
6091     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
6092   }
6093   {
6094     cycles += model_u_exec_before (current_cpu, idesc, 2);
6095   }
6096   {
6097     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
6098   }
6099   return cycles;
6100 #undef FLD
6101 }
6102
6103 UINT
6104 sh4a_sh4a_model::model_movw2_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6105 {
6106 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6107   const sh4a_scache* abuf = sem;
6108   const sh4a_idesc* idesc = abuf->idesc;
6109   int cycles = 0;
6110   {
6111     int referenced = 0;
6112     unsigned long long insn_referenced = abuf->written;
6113     INT in_usereg = -1;
6114     in_usereg = FLD (in_rm);
6115     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6116   }
6117   {
6118     int referenced = 0;
6119     unsigned long long insn_referenced = abuf->written;
6120     INT in_usereg = -1;
6121     in_usereg = FLD (in_rn);
6122     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
6123   }
6124   {
6125     int referenced = 0;
6126     unsigned long long insn_referenced = abuf->written;
6127     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
6128   }
6129   {
6130     int referenced = 0;
6131     unsigned long long insn_referenced = abuf->written;
6132     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
6133   }
6134   return cycles;
6135 #undef FLD
6136 }
6137
6138 UINT
6139 sh4a_sh4a_model::model_movw3_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6140 {
6141 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
6142   const sh4a_scache* abuf = sem;
6143   const sh4a_idesc* idesc = abuf->idesc;
6144   int cycles = 0;
6145   {
6146     INT in_usereg = -1;
6147     in_usereg = FLD (in_rm);
6148     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6149   }
6150   {
6151     INT in_usereg = -1;
6152     in_usereg = FLD (in_rn);
6153     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
6154   }
6155   {
6156     INT in_usereg = -1;
6157     in_usereg = FLD (in_r0);
6158     cycles += model_u_use_gr_before (current_cpu, idesc, 2, in_usereg);
6159   }
6160   {
6161     cycles += model_u_exec_before (current_cpu, idesc, 3);
6162   }
6163   {
6164     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
6165   }
6166   return cycles;
6167 #undef FLD
6168 }
6169
6170 UINT
6171 sh4a_sh4a_model::model_movw3_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6172 {
6173 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
6174   const sh4a_scache* abuf = sem;
6175   const sh4a_idesc* idesc = abuf->idesc;
6176   int cycles = 0;
6177   {
6178     int referenced = 0;
6179     unsigned long long insn_referenced = abuf->written;
6180     INT in_usereg = -1;
6181     in_usereg = FLD (in_rm);
6182     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6183   }
6184   {
6185     int referenced = 0;
6186     unsigned long long insn_referenced = abuf->written;
6187     INT in_usereg = -1;
6188     in_usereg = FLD (in_rn);
6189     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
6190   }
6191   {
6192     int referenced = 0;
6193     unsigned long long insn_referenced = abuf->written;
6194     INT in_usereg = -1;
6195     in_usereg = FLD (in_r0);
6196     cycles += model_u_use_gr_after (current_cpu, idesc, 2, referenced, in_usereg);
6197   }
6198   {
6199     int referenced = 0;
6200     unsigned long long insn_referenced = abuf->written;
6201     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
6202   }
6203   {
6204     int referenced = 0;
6205     unsigned long long insn_referenced = abuf->written;
6206     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
6207   }
6208   return cycles;
6209 #undef FLD
6210 }
6211
6212 UINT
6213 sh4a_sh4a_model::model_movw4_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6214 {
6215 #define FLD(f) abuf->fields.sfmt_movw4_compact.f
6216   const sh4a_scache* abuf = sem;
6217   const sh4a_idesc* idesc = abuf->idesc;
6218   int cycles = 0;
6219   {
6220     INT in_usereg = -1;
6221     in_usereg = FLD (in_r0);
6222     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6223   }
6224   {
6225     cycles += model_u_exec_before (current_cpu, idesc, 1);
6226   }
6227   {
6228     cycles += model_u_sx_before (current_cpu, idesc, 2);
6229   }
6230   {
6231     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
6232   }
6233   return cycles;
6234 #undef FLD
6235 }
6236
6237 UINT
6238 sh4a_sh4a_model::model_movw4_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6239 {
6240 #define FLD(f) abuf->fields.sfmt_movw4_compact.f
6241   const sh4a_scache* abuf = sem;
6242   const sh4a_idesc* idesc = abuf->idesc;
6243   int cycles = 0;
6244   {
6245     int referenced = 0;
6246     unsigned long long insn_referenced = abuf->written;
6247     INT in_usereg = -1;
6248     in_usereg = FLD (in_r0);
6249     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6250   }
6251   {
6252     int referenced = 0;
6253     unsigned long long insn_referenced = abuf->written;
6254     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6255   }
6256   {
6257     int referenced = 0;
6258     unsigned long long insn_referenced = abuf->written;
6259     cycles += model_u_sx_after (current_cpu, idesc, 2, referenced);
6260   }
6261   {
6262     int referenced = 0;
6263     unsigned long long insn_referenced = abuf->written;
6264     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
6265   }
6266   return cycles;
6267 #undef FLD
6268 }
6269
6270 UINT
6271 sh4a_sh4a_model::model_movw5_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6272 {
6273 #define FLD(f) abuf->fields.sfmt_movw5_compact.f
6274   const sh4a_scache* abuf = sem;
6275   const sh4a_idesc* idesc = abuf->idesc;
6276   int cycles = 0;
6277   {
6278     INT in_usereg = -1;
6279     in_usereg = FLD (in_rm);
6280     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6281   }
6282   {
6283     INT in_usereg = -1;
6284     in_usereg = FLD (in_r0);
6285     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
6286   }
6287   {
6288     cycles += model_u_exec_before (current_cpu, idesc, 2);
6289   }
6290   {
6291     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
6292   }
6293   return cycles;
6294 #undef FLD
6295 }
6296
6297 UINT
6298 sh4a_sh4a_model::model_movw5_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6299 {
6300 #define FLD(f) abuf->fields.sfmt_movw5_compact.f
6301   const sh4a_scache* abuf = sem;
6302   const sh4a_idesc* idesc = abuf->idesc;
6303   int cycles = 0;
6304   {
6305     int referenced = 0;
6306     unsigned long long insn_referenced = abuf->written;
6307     INT in_usereg = -1;
6308     in_usereg = FLD (in_rm);
6309     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6310   }
6311   {
6312     int referenced = 0;
6313     unsigned long long insn_referenced = abuf->written;
6314     INT in_usereg = -1;
6315     in_usereg = FLD (in_r0);
6316     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
6317   }
6318   {
6319     int referenced = 0;
6320     unsigned long long insn_referenced = abuf->written;
6321     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
6322   }
6323   {
6324     int referenced = 0;
6325     unsigned long long insn_referenced = abuf->written;
6326     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
6327   }
6328   return cycles;
6329 #undef FLD
6330 }
6331
6332 UINT
6333 sh4a_sh4a_model::model_movw6_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6334 {
6335 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
6336   const sh4a_scache* abuf = sem;
6337   const sh4a_idesc* idesc = abuf->idesc;
6338   int cycles = 0;
6339   {
6340     INT in_usereg = -1;
6341     in_usereg = FLD (in_rm);
6342     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6343   }
6344   {
6345     cycles += model_u_exec_before (current_cpu, idesc, 1);
6346   }
6347   {
6348     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
6349   }
6350   {
6351     INT out_loadreg = -1;
6352     out_loadreg = FLD (out_rn);
6353     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
6354   }
6355   return cycles;
6356 #undef FLD
6357 }
6358
6359 UINT
6360 sh4a_sh4a_model::model_movw6_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6361 {
6362 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
6363   const sh4a_scache* abuf = sem;
6364   const sh4a_idesc* idesc = abuf->idesc;
6365   int cycles = 0;
6366   {
6367     int referenced = 0;
6368     unsigned long long insn_referenced = abuf->written;
6369     INT in_usereg = -1;
6370     in_usereg = FLD (in_rm);
6371     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6372   }
6373   {
6374     int referenced = 0;
6375     unsigned long long insn_referenced = abuf->written;
6376     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6377   }
6378   {
6379     int referenced = 0;
6380     unsigned long long insn_referenced = abuf->written;
6381     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
6382   }
6383   {
6384     int referenced = 0;
6385     unsigned long long insn_referenced = abuf->written;
6386     INT out_loadreg = -1;
6387     out_loadreg = FLD (out_rn);
6388     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
6389   }
6390   return cycles;
6391 #undef FLD
6392 }
6393
6394 UINT
6395 sh4a_sh4a_model::model_movw7_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6396 {
6397 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6398   const sh4a_scache* abuf = sem;
6399   const sh4a_idesc* idesc = abuf->idesc;
6400   int cycles = 0;
6401   {
6402     INT in_usereg = -1;
6403     in_usereg = FLD (in_rm);
6404     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6405   }
6406   {
6407     cycles += model_u_exec_before (current_cpu, idesc, 1);
6408   }
6409   {
6410     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
6411   }
6412   {
6413     INT out_loadreg = -1;
6414     out_loadreg = FLD (out_rn);
6415     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
6416   }
6417   return cycles;
6418 #undef FLD
6419 }
6420
6421 UINT
6422 sh4a_sh4a_model::model_movw7_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6423 {
6424 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6425   const sh4a_scache* abuf = sem;
6426   const sh4a_idesc* idesc = abuf->idesc;
6427   int cycles = 0;
6428   {
6429     int referenced = 0;
6430     unsigned long long insn_referenced = abuf->written;
6431     INT in_usereg = -1;
6432     in_usereg = FLD (in_rm);
6433     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6434   }
6435   {
6436     int referenced = 0;
6437     unsigned long long insn_referenced = abuf->written;
6438     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6439   }
6440   {
6441     int referenced = 0;
6442     unsigned long long insn_referenced = abuf->written;
6443     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
6444   }
6445   {
6446     int referenced = 0;
6447     unsigned long long insn_referenced = abuf->written;
6448     INT out_loadreg = -1;
6449     out_loadreg = FLD (out_rn);
6450     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
6451   }
6452   return cycles;
6453 #undef FLD
6454 }
6455
6456 UINT
6457 sh4a_sh4a_model::model_movw8_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6458 {
6459 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
6460   const sh4a_scache* abuf = sem;
6461   const sh4a_idesc* idesc = abuf->idesc;
6462   int cycles = 0;
6463   {
6464     INT in_usereg = -1;
6465     in_usereg = FLD (in_rm);
6466     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6467   }
6468   {
6469     INT in_usereg = -1;
6470     in_usereg = FLD (in_r0);
6471     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
6472   }
6473   {
6474     cycles += model_u_exec_before (current_cpu, idesc, 2);
6475   }
6476   {
6477     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
6478   }
6479   {
6480     INT out_loadreg = -1;
6481     out_loadreg = FLD (out_rn);
6482     cycles += model_u_load_gr_before (current_cpu, idesc, 4, out_loadreg);
6483   }
6484   return cycles;
6485 #undef FLD
6486 }
6487
6488 UINT
6489 sh4a_sh4a_model::model_movw8_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6490 {
6491 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
6492   const sh4a_scache* abuf = sem;
6493   const sh4a_idesc* idesc = abuf->idesc;
6494   int cycles = 0;
6495   {
6496     int referenced = 0;
6497     unsigned long long insn_referenced = abuf->written;
6498     INT in_usereg = -1;
6499     in_usereg = FLD (in_rm);
6500     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6501   }
6502   {
6503     int referenced = 0;
6504     unsigned long long insn_referenced = abuf->written;
6505     INT in_usereg = -1;
6506     in_usereg = FLD (in_r0);
6507     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
6508   }
6509   {
6510     int referenced = 0;
6511     unsigned long long insn_referenced = abuf->written;
6512     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
6513   }
6514   {
6515     int referenced = 0;
6516     unsigned long long insn_referenced = abuf->written;
6517     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
6518   }
6519   {
6520     int referenced = 0;
6521     unsigned long long insn_referenced = abuf->written;
6522     INT out_loadreg = -1;
6523     out_loadreg = FLD (out_rn);
6524     cycles += model_u_load_gr_after (current_cpu, idesc, 4, referenced, out_loadreg);
6525   }
6526   return cycles;
6527 #undef FLD
6528 }
6529
6530 UINT
6531 sh4a_sh4a_model::model_movw9_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6532 {
6533 #define FLD(f) abuf->fields.sfmt_movw9_compact.f
6534   const sh4a_scache* abuf = sem;
6535   const sh4a_idesc* idesc = abuf->idesc;
6536   int cycles = 0;
6537   {
6538     cycles += model_u_exec_before (current_cpu, idesc, 0);
6539   }
6540   {
6541     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
6542   }
6543   {
6544     INT out_loadreg = -1;
6545     out_loadreg = FLD (out_r0);
6546     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
6547   }
6548   return cycles;
6549 #undef FLD
6550 }
6551
6552 UINT
6553 sh4a_sh4a_model::model_movw9_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6554 {
6555 #define FLD(f) abuf->fields.sfmt_movw9_compact.f
6556   const sh4a_scache* abuf = sem;
6557   const sh4a_idesc* idesc = abuf->idesc;
6558   int cycles = 0;
6559   {
6560     int referenced = 0;
6561     unsigned long long insn_referenced = abuf->written;
6562     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
6563   }
6564   {
6565     int referenced = 0;
6566     unsigned long long insn_referenced = abuf->written;
6567     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
6568   }
6569   {
6570     int referenced = 0;
6571     unsigned long long insn_referenced = abuf->written;
6572     INT out_loadreg = -1;
6573     out_loadreg = FLD (out_r0);
6574     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
6575   }
6576   return cycles;
6577 #undef FLD
6578 }
6579
6580 UINT
6581 sh4a_sh4a_model::model_movw10_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6582 {
6583 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6584   const sh4a_scache* abuf = sem;
6585   const sh4a_idesc* idesc = abuf->idesc;
6586   int cycles = 0;
6587   {
6588     cycles += model_u_exec_before (current_cpu, idesc, 0);
6589   }
6590   {
6591     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
6592   }
6593   {
6594     INT out_loadreg = -1;
6595     out_loadreg = FLD (out_rn);
6596     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
6597   }
6598   return cycles;
6599 #undef FLD
6600 }
6601
6602 UINT
6603 sh4a_sh4a_model::model_movw10_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6604 {
6605 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6606   const sh4a_scache* abuf = sem;
6607   const sh4a_idesc* idesc = abuf->idesc;
6608   int cycles = 0;
6609   {
6610     int referenced = 0;
6611     unsigned long long insn_referenced = abuf->written;
6612     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
6613   }
6614   {
6615     int referenced = 0;
6616     unsigned long long insn_referenced = abuf->written;
6617     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
6618   }
6619   {
6620     int referenced = 0;
6621     unsigned long long insn_referenced = abuf->written;
6622     INT out_loadreg = -1;
6623     out_loadreg = FLD (out_rn);
6624     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
6625   }
6626   return cycles;
6627 #undef FLD
6628 }
6629
6630 UINT
6631 sh4a_sh4a_model::model_movw11_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6632 {
6633 #define FLD(f) abuf->fields.sfmt_movw11_compact.f
6634   const sh4a_scache* abuf = sem;
6635   const sh4a_idesc* idesc = abuf->idesc;
6636   int cycles = 0;
6637   {
6638     INT in_usereg = -1;
6639     in_usereg = FLD (in_rm);
6640     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6641   }
6642   {
6643     cycles += model_u_exec_before (current_cpu, idesc, 1);
6644   }
6645   {
6646     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
6647   }
6648   {
6649     INT out_loadreg = -1;
6650     out_loadreg = FLD (out_r0);
6651     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
6652   }
6653   return cycles;
6654 #undef FLD
6655 }
6656
6657 UINT
6658 sh4a_sh4a_model::model_movw11_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6659 {
6660 #define FLD(f) abuf->fields.sfmt_movw11_compact.f
6661   const sh4a_scache* abuf = sem;
6662   const sh4a_idesc* idesc = abuf->idesc;
6663   int cycles = 0;
6664   {
6665     int referenced = 0;
6666     unsigned long long insn_referenced = abuf->written;
6667     INT in_usereg = -1;
6668     in_usereg = FLD (in_rm);
6669     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6670   }
6671   {
6672     int referenced = 0;
6673     unsigned long long insn_referenced = abuf->written;
6674     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6675   }
6676   {
6677     int referenced = 0;
6678     unsigned long long insn_referenced = abuf->written;
6679     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
6680   }
6681   {
6682     int referenced = 0;
6683     unsigned long long insn_referenced = abuf->written;
6684     INT out_loadreg = -1;
6685     out_loadreg = FLD (out_r0);
6686     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
6687   }
6688   return cycles;
6689 #undef FLD
6690 }
6691
6692 UINT
6693 sh4a_sh4a_model::model_mova_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6694 {
6695 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
6696   const sh4a_scache* abuf = sem;
6697   const sh4a_idesc* idesc = abuf->idesc;
6698   int cycles = 0;
6699   {
6700     cycles += model_u_exec_before (current_cpu, idesc, 0);
6701   }
6702   return cycles;
6703 #undef FLD
6704 }
6705
6706 UINT
6707 sh4a_sh4a_model::model_mova_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6708 {
6709 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
6710   const sh4a_scache* abuf = sem;
6711   const sh4a_idesc* idesc = abuf->idesc;
6712   int cycles = 0;
6713   {
6714     int referenced = 0;
6715     unsigned long long insn_referenced = abuf->written;
6716     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
6717   }
6718   return cycles;
6719 #undef FLD
6720 }
6721
6722 UINT
6723 sh4a_sh4a_model::model_movcal_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6724 {
6725 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
6726   const sh4a_scache* abuf = sem;
6727   const sh4a_idesc* idesc = abuf->idesc;
6728   int cycles = 0;
6729   {
6730     INT in_usereg = -1;
6731     in_usereg = FLD (in_rn);
6732     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6733   }
6734   {
6735     cycles += model_u_ocb_before (current_cpu, idesc, 1);
6736   }
6737   return cycles;
6738 #undef FLD
6739 }
6740
6741 UINT
6742 sh4a_sh4a_model::model_movcal_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6743 {
6744 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
6745   const sh4a_scache* abuf = sem;
6746   const sh4a_idesc* idesc = abuf->idesc;
6747   int cycles = 0;
6748   {
6749     int referenced = 0;
6750     unsigned long long insn_referenced = abuf->written;
6751     INT in_usereg = -1;
6752     in_usereg = FLD (in_rn);
6753     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6754   }
6755   {
6756     int referenced = 0;
6757     unsigned long long insn_referenced = abuf->written;
6758     cycles += model_u_ocb_after (current_cpu, idesc, 1, referenced);
6759   }
6760   return cycles;
6761 #undef FLD
6762 }
6763
6764 UINT
6765 sh4a_sh4a_model::model_movcol_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6766 {
6767 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6768   const sh4a_scache* abuf = sem;
6769   const sh4a_idesc* idesc = abuf->idesc;
6770   int cycles = 0;
6771   {
6772     INT in_usereg = -1;
6773     in_usereg = FLD (in_rn);
6774     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6775   }
6776   {
6777     cycles += model_u_exec_before (current_cpu, idesc, 1);
6778   }
6779   return cycles;
6780 #undef FLD
6781 }
6782
6783 UINT
6784 sh4a_sh4a_model::model_movcol_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6785 {
6786 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
6787   const sh4a_scache* abuf = sem;
6788   const sh4a_idesc* idesc = abuf->idesc;
6789   int cycles = 0;
6790   {
6791     int referenced = 0;
6792     unsigned long long insn_referenced = abuf->written;
6793     INT in_usereg = -1;
6794     in_usereg = FLD (in_rn);
6795     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6796   }
6797   {
6798     int referenced = 0;
6799     unsigned long long insn_referenced = abuf->written;
6800     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6801   }
6802   return cycles;
6803 #undef FLD
6804 }
6805
6806 UINT
6807 sh4a_sh4a_model::model_movt_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6808 {
6809 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6810   const sh4a_scache* abuf = sem;
6811   const sh4a_idesc* idesc = abuf->idesc;
6812   int cycles = 0;
6813   {
6814     cycles += model_u_use_tbit_before (current_cpu, idesc, 0);
6815   }
6816   {
6817     cycles += model_u_exec_before (current_cpu, idesc, 1);
6818   }
6819   return cycles;
6820 #undef FLD
6821 }
6822
6823 UINT
6824 sh4a_sh4a_model::model_movt_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6825 {
6826 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6827   const sh4a_scache* abuf = sem;
6828   const sh4a_idesc* idesc = abuf->idesc;
6829   int cycles = 0;
6830   {
6831     int referenced = 0;
6832     unsigned long long insn_referenced = abuf->written;
6833     cycles += model_u_use_tbit_after (current_cpu, idesc, 0, referenced);
6834   }
6835   {
6836     int referenced = 0;
6837     unsigned long long insn_referenced = abuf->written;
6838     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6839   }
6840   return cycles;
6841 #undef FLD
6842 }
6843
6844 UINT
6845 sh4a_sh4a_model::model_movual_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6846 {
6847 #define FLD(f) abuf->fields.sfmt_movual2_compact.f
6848   const sh4a_scache* abuf = sem;
6849   const sh4a_idesc* idesc = abuf->idesc;
6850   int cycles = 0;
6851   {
6852     INT in_usereg = -1;
6853     in_usereg = FLD (in_rn);
6854     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6855   }
6856   {
6857     cycles += model_u_exec_before (current_cpu, idesc, 1);
6858   }
6859   {
6860     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
6861   }
6862   {
6863     INT out_loadreg = -1;
6864     out_loadreg = FLD (out_r0);
6865     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
6866   }
6867   return cycles;
6868 #undef FLD
6869 }
6870
6871 UINT
6872 sh4a_sh4a_model::model_movual_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6873 {
6874 #define FLD(f) abuf->fields.sfmt_movual2_compact.f
6875   const sh4a_scache* abuf = sem;
6876   const sh4a_idesc* idesc = abuf->idesc;
6877   int cycles = 0;
6878   {
6879     int referenced = 0;
6880     unsigned long long insn_referenced = abuf->written;
6881     INT in_usereg = -1;
6882     in_usereg = FLD (in_rn);
6883     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6884   }
6885   {
6886     int referenced = 0;
6887     unsigned long long insn_referenced = abuf->written;
6888     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6889   }
6890   {
6891     int referenced = 0;
6892     unsigned long long insn_referenced = abuf->written;
6893     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
6894   }
6895   {
6896     int referenced = 0;
6897     unsigned long long insn_referenced = abuf->written;
6898     INT out_loadreg = -1;
6899     out_loadreg = FLD (out_r0);
6900     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
6901   }
6902   return cycles;
6903 #undef FLD
6904 }
6905
6906 UINT
6907 sh4a_sh4a_model::model_movual2_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6908 {
6909 #define FLD(f) abuf->fields.sfmt_movual2_compact.f
6910   const sh4a_scache* abuf = sem;
6911   const sh4a_idesc* idesc = abuf->idesc;
6912   int cycles = 0;
6913   {
6914     INT in_usereg = -1;
6915     in_usereg = FLD (in_rn);
6916     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6917   }
6918   {
6919     cycles += model_u_exec_before (current_cpu, idesc, 1);
6920   }
6921   {
6922     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
6923   }
6924   {
6925     INT out_loadreg = -1;
6926     out_loadreg = FLD (out_r0);
6927     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
6928   }
6929   return cycles;
6930 #undef FLD
6931 }
6932
6933 UINT
6934 sh4a_sh4a_model::model_movual2_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6935 {
6936 #define FLD(f) abuf->fields.sfmt_movual2_compact.f
6937   const sh4a_scache* abuf = sem;
6938   const sh4a_idesc* idesc = abuf->idesc;
6939   int cycles = 0;
6940   {
6941     int referenced = 0;
6942     unsigned long long insn_referenced = abuf->written;
6943     INT in_usereg = -1;
6944     in_usereg = FLD (in_rn);
6945     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6946   }
6947   {
6948     int referenced = 0;
6949     unsigned long long insn_referenced = abuf->written;
6950     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6951   }
6952   {
6953     int referenced = 0;
6954     unsigned long long insn_referenced = abuf->written;
6955     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
6956   }
6957   {
6958     int referenced = 0;
6959     unsigned long long insn_referenced = abuf->written;
6960     INT out_loadreg = -1;
6961     out_loadreg = FLD (out_r0);
6962     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
6963   }
6964   return cycles;
6965 #undef FLD
6966 }
6967
6968 UINT
6969 sh4a_sh4a_model::model_mull_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
6970 {
6971 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
6972   const sh4a_scache* abuf = sem;
6973   const sh4a_idesc* idesc = abuf->idesc;
6974   int cycles = 0;
6975   {
6976     INT in_usereg = -1;
6977     in_usereg = FLD (in_rn);
6978     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6979   }
6980   {
6981     INT in_usereg = -1;
6982     in_usereg = FLD (in_rm);
6983     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
6984   }
6985   {
6986     cycles += model_u_mull_before (current_cpu, idesc, 2);
6987   }
6988   return cycles;
6989 #undef FLD
6990 }
6991
6992 UINT
6993 sh4a_sh4a_model::model_mull_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
6994 {
6995 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
6996   const sh4a_scache* abuf = sem;
6997   const sh4a_idesc* idesc = abuf->idesc;
6998   int cycles = 0;
6999   {
7000     int referenced = 0;
7001     unsigned long long insn_referenced = abuf->written;
7002     INT in_usereg = -1;
7003     in_usereg = FLD (in_rn);
7004     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7005   }
7006   {
7007     int referenced = 0;
7008     unsigned long long insn_referenced = abuf->written;
7009     INT in_usereg = -1;
7010     in_usereg = FLD (in_rm);
7011     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
7012   }
7013   {
7014     int referenced = 0;
7015     unsigned long long insn_referenced = abuf->written;
7016     cycles += model_u_mull_after (current_cpu, idesc, 2, referenced);
7017   }
7018   return cycles;
7019 #undef FLD
7020 }
7021
7022 UINT
7023 sh4a_sh4a_model::model_mulsw_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7024 {
7025 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
7026   const sh4a_scache* abuf = sem;
7027   const sh4a_idesc* idesc = abuf->idesc;
7028   int cycles = 0;
7029   {
7030     INT in_usereg = -1;
7031     in_usereg = FLD (in_rn);
7032     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7033   }
7034   {
7035     INT in_usereg = -1;
7036     in_usereg = FLD (in_rm);
7037     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
7038   }
7039   {
7040     cycles += model_u_mulsw_before (current_cpu, idesc, 2);
7041   }
7042   {
7043     cycles += model_u_multiply_before (current_cpu, idesc, 3);
7044   }
7045   return cycles;
7046 #undef FLD
7047 }
7048
7049 UINT
7050 sh4a_sh4a_model::model_mulsw_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7051 {
7052 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
7053   const sh4a_scache* abuf = sem;
7054   const sh4a_idesc* idesc = abuf->idesc;
7055   int cycles = 0;
7056   {
7057     int referenced = 0;
7058     unsigned long long insn_referenced = abuf->written;
7059     INT in_usereg = -1;
7060     in_usereg = FLD (in_rn);
7061     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7062   }
7063   {
7064     int referenced = 0;
7065     unsigned long long insn_referenced = abuf->written;
7066     INT in_usereg = -1;
7067     in_usereg = FLD (in_rm);
7068     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
7069   }
7070   {
7071     int referenced = 0;
7072     unsigned long long insn_referenced = abuf->written;
7073     cycles += model_u_mulsw_after (current_cpu, idesc, 2, referenced);
7074   }
7075   {
7076     int referenced = 0;
7077     unsigned long long insn_referenced = abuf->written;
7078     cycles += model_u_multiply_after (current_cpu, idesc, 3, referenced);
7079   }
7080   return cycles;
7081 #undef FLD
7082 }
7083
7084 UINT
7085 sh4a_sh4a_model::model_muluw_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7086 {
7087 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
7088   const sh4a_scache* abuf = sem;
7089   const sh4a_idesc* idesc = abuf->idesc;
7090   int cycles = 0;
7091   {
7092     INT in_usereg = -1;
7093     in_usereg = FLD (in_rn);
7094     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7095   }
7096   {
7097     INT in_usereg = -1;
7098     in_usereg = FLD (in_rm);
7099     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
7100   }
7101   {
7102     cycles += model_u_mulsw_before (current_cpu, idesc, 2);
7103   }
7104   {
7105     cycles += model_u_multiply_before (current_cpu, idesc, 3);
7106   }
7107   return cycles;
7108 #undef FLD
7109 }
7110
7111 UINT
7112 sh4a_sh4a_model::model_muluw_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7113 {
7114 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
7115   const sh4a_scache* abuf = sem;
7116   const sh4a_idesc* idesc = abuf->idesc;
7117   int cycles = 0;
7118   {
7119     int referenced = 0;
7120     unsigned long long insn_referenced = abuf->written;
7121     INT in_usereg = -1;
7122     in_usereg = FLD (in_rn);
7123     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7124   }
7125   {
7126     int referenced = 0;
7127     unsigned long long insn_referenced = abuf->written;
7128     INT in_usereg = -1;
7129     in_usereg = FLD (in_rm);
7130     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
7131   }
7132   {
7133     int referenced = 0;
7134     unsigned long long insn_referenced = abuf->written;
7135     cycles += model_u_mulsw_after (current_cpu, idesc, 2, referenced);
7136   }
7137   {
7138     int referenced = 0;
7139     unsigned long long insn_referenced = abuf->written;
7140     cycles += model_u_multiply_after (current_cpu, idesc, 3, referenced);
7141   }
7142   return cycles;
7143 #undef FLD
7144 }
7145
7146 UINT
7147 sh4a_sh4a_model::model_neg_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7148 {
7149 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
7150   const sh4a_scache* abuf = sem;
7151   const sh4a_idesc* idesc = abuf->idesc;
7152   int cycles = 0;
7153   {
7154     INT in_usereg = -1;
7155     in_usereg = FLD (in_rm);
7156     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7157   }
7158   {
7159     cycles += model_u_exec_before (current_cpu, idesc, 1);
7160   }
7161   return cycles;
7162 #undef FLD
7163 }
7164
7165 UINT
7166 sh4a_sh4a_model::model_neg_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7167 {
7168 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
7169   const sh4a_scache* abuf = sem;
7170   const sh4a_idesc* idesc = abuf->idesc;
7171   int cycles = 0;
7172   {
7173     int referenced = 0;
7174     unsigned long long insn_referenced = abuf->written;
7175     INT in_usereg = -1;
7176     in_usereg = FLD (in_rm);
7177     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7178   }
7179   {
7180     int referenced = 0;
7181     unsigned long long insn_referenced = abuf->written;
7182     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
7183   }
7184   return cycles;
7185 #undef FLD
7186 }
7187
7188 UINT
7189 sh4a_sh4a_model::model_negc_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7190 {
7191 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
7192   const sh4a_scache* abuf = sem;
7193   const sh4a_idesc* idesc = abuf->idesc;
7194   int cycles = 0;
7195   {
7196     INT in_usereg = -1;
7197     in_usereg = FLD (in_rm);
7198     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7199   }
7200   {
7201     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
7202   }
7203   {
7204     cycles += model_u_exec_before (current_cpu, idesc, 2);
7205   }
7206   {
7207     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
7208   }
7209   return cycles;
7210 #undef FLD
7211 }
7212
7213 UINT
7214 sh4a_sh4a_model::model_negc_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7215 {
7216 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
7217   const sh4a_scache* abuf = sem;
7218   const sh4a_idesc* idesc = abuf->idesc;
7219   int cycles = 0;
7220   {
7221     int referenced = 0;
7222     unsigned long long insn_referenced = abuf->written;
7223     INT in_usereg = -1;
7224     in_usereg = FLD (in_rm);
7225     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7226   }
7227   {
7228     int referenced = 0;
7229     unsigned long long insn_referenced = abuf->written;
7230     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
7231   }
7232   {
7233     int referenced = 0;
7234     unsigned long long insn_referenced = abuf->written;
7235     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7236   }
7237   {
7238     int referenced = 0;
7239     unsigned long long insn_referenced = abuf->written;
7240     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
7241   }
7242   return cycles;
7243 #undef FLD
7244 }
7245
7246 UINT
7247 sh4a_sh4a_model::model_nop_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7248 {
7249 #define FLD(f) abuf->fields.fmt_empty.f
7250   const sh4a_scache* abuf = sem;
7251   const sh4a_idesc* idesc = abuf->idesc;
7252   int cycles = 0;
7253   {
7254     cycles += model_u_exec_before (current_cpu, idesc, 0);
7255   }
7256   return cycles;
7257 #undef FLD
7258 }
7259
7260 UINT
7261 sh4a_sh4a_model::model_nop_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7262 {
7263 #define FLD(f) abuf->fields.fmt_empty.f
7264   const sh4a_scache* abuf = sem;
7265   const sh4a_idesc* idesc = abuf->idesc;
7266   int cycles = 0;
7267   {
7268     int referenced = 0;
7269     unsigned long long insn_referenced = abuf->written;
7270     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
7271   }
7272   return cycles;
7273 #undef FLD
7274 }
7275
7276 UINT
7277 sh4a_sh4a_model::model_not_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7278 {
7279 #define FLD(f) abuf->fields.sfmt_and_compact.f
7280   const sh4a_scache* abuf = sem;
7281   const sh4a_idesc* idesc = abuf->idesc;
7282   int cycles = 0;
7283   {
7284     INT in_usereg = -1;
7285     in_usereg = FLD (in_rm64);
7286     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7287   }
7288   {
7289     cycles += model_u_exec_before (current_cpu, idesc, 1);
7290   }
7291   return cycles;
7292 #undef FLD
7293 }
7294
7295 UINT
7296 sh4a_sh4a_model::model_not_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7297 {
7298 #define FLD(f) abuf->fields.sfmt_and_compact.f
7299   const sh4a_scache* abuf = sem;
7300   const sh4a_idesc* idesc = abuf->idesc;
7301   int cycles = 0;
7302   {
7303     int referenced = 0;
7304     unsigned long long insn_referenced = abuf->written;
7305     INT in_usereg = -1;
7306     in_usereg = FLD (in_rm64);
7307     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7308   }
7309   {
7310     int referenced = 0;
7311     unsigned long long insn_referenced = abuf->written;
7312     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
7313   }
7314   return cycles;
7315 #undef FLD
7316 }
7317
7318 UINT
7319 sh4a_sh4a_model::model_ocbi_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7320 {
7321 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7322   const sh4a_scache* abuf = sem;
7323   const sh4a_idesc* idesc = abuf->idesc;
7324   int cycles = 0;
7325   {
7326     INT in_usereg = -1;
7327     in_usereg = FLD (in_rn);
7328     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7329   }
7330   {
7331     cycles += model_u_ocb_before (current_cpu, idesc, 1);
7332   }
7333   return cycles;
7334 #undef FLD
7335 }
7336
7337 UINT
7338 sh4a_sh4a_model::model_ocbi_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7339 {
7340 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7341   const sh4a_scache* abuf = sem;
7342   const sh4a_idesc* idesc = abuf->idesc;
7343   int cycles = 0;
7344   {
7345     int referenced = 0;
7346     unsigned long long insn_referenced = abuf->written;
7347     INT in_usereg = -1;
7348     in_usereg = FLD (in_rn);
7349     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7350   }
7351   {
7352     int referenced = 0;
7353     unsigned long long insn_referenced = abuf->written;
7354     cycles += model_u_ocb_after (current_cpu, idesc, 1, referenced);
7355   }
7356   return cycles;
7357 #undef FLD
7358 }
7359
7360 UINT
7361 sh4a_sh4a_model::model_ocbp_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7362 {
7363 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7364   const sh4a_scache* abuf = sem;
7365   const sh4a_idesc* idesc = abuf->idesc;
7366   int cycles = 0;
7367   {
7368     INT in_usereg = -1;
7369     in_usereg = FLD (in_rn);
7370     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7371   }
7372   {
7373     cycles += model_u_ocb_before (current_cpu, idesc, 1);
7374   }
7375   return cycles;
7376 #undef FLD
7377 }
7378
7379 UINT
7380 sh4a_sh4a_model::model_ocbp_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7381 {
7382 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7383   const sh4a_scache* abuf = sem;
7384   const sh4a_idesc* idesc = abuf->idesc;
7385   int cycles = 0;
7386   {
7387     int referenced = 0;
7388     unsigned long long insn_referenced = abuf->written;
7389     INT in_usereg = -1;
7390     in_usereg = FLD (in_rn);
7391     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7392   }
7393   {
7394     int referenced = 0;
7395     unsigned long long insn_referenced = abuf->written;
7396     cycles += model_u_ocb_after (current_cpu, idesc, 1, referenced);
7397   }
7398   return cycles;
7399 #undef FLD
7400 }
7401
7402 UINT
7403 sh4a_sh4a_model::model_ocbwb_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7404 {
7405 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7406   const sh4a_scache* abuf = sem;
7407   const sh4a_idesc* idesc = abuf->idesc;
7408   int cycles = 0;
7409   {
7410     INT in_usereg = -1;
7411     in_usereg = FLD (in_rn);
7412     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7413   }
7414   {
7415     cycles += model_u_ocb_before (current_cpu, idesc, 1);
7416   }
7417   return cycles;
7418 #undef FLD
7419 }
7420
7421 UINT
7422 sh4a_sh4a_model::model_ocbwb_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7423 {
7424 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7425   const sh4a_scache* abuf = sem;
7426   const sh4a_idesc* idesc = abuf->idesc;
7427   int cycles = 0;
7428   {
7429     int referenced = 0;
7430     unsigned long long insn_referenced = abuf->written;
7431     INT in_usereg = -1;
7432     in_usereg = FLD (in_rn);
7433     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7434   }
7435   {
7436     int referenced = 0;
7437     unsigned long long insn_referenced = abuf->written;
7438     cycles += model_u_ocb_after (current_cpu, idesc, 1, referenced);
7439   }
7440   return cycles;
7441 #undef FLD
7442 }
7443
7444 UINT
7445 sh4a_sh4a_model::model_or_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7446 {
7447 #define FLD(f) abuf->fields.sfmt_and_compact.f
7448   const sh4a_scache* abuf = sem;
7449   const sh4a_idesc* idesc = abuf->idesc;
7450   int cycles = 0;
7451   {
7452     INT in_usereg = -1;
7453     in_usereg = FLD (in_rm64);
7454     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7455   }
7456   {
7457     INT in_usereg = -1;
7458     in_usereg = FLD (in_rn64);
7459     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
7460   }
7461   {
7462     cycles += model_u_exec_before (current_cpu, idesc, 2);
7463   }
7464   return cycles;
7465 #undef FLD
7466 }
7467
7468 UINT
7469 sh4a_sh4a_model::model_or_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7470 {
7471 #define FLD(f) abuf->fields.sfmt_and_compact.f
7472   const sh4a_scache* abuf = sem;
7473   const sh4a_idesc* idesc = abuf->idesc;
7474   int cycles = 0;
7475   {
7476     int referenced = 0;
7477     unsigned long long insn_referenced = abuf->written;
7478     INT in_usereg = -1;
7479     in_usereg = FLD (in_rm64);
7480     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7481   }
7482   {
7483     int referenced = 0;
7484     unsigned long long insn_referenced = abuf->written;
7485     INT in_usereg = -1;
7486     in_usereg = FLD (in_rn64);
7487     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
7488   }
7489   {
7490     int referenced = 0;
7491     unsigned long long insn_referenced = abuf->written;
7492     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7493   }
7494   return cycles;
7495 #undef FLD
7496 }
7497
7498 UINT
7499 sh4a_sh4a_model::model_ori_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7500 {
7501 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7502   const sh4a_scache* abuf = sem;
7503   const sh4a_idesc* idesc = abuf->idesc;
7504   int cycles = 0;
7505   {
7506     INT in_usereg = -1;
7507     in_usereg = FLD (in_r0);
7508     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7509   }
7510   {
7511     cycles += model_u_exec_before (current_cpu, idesc, 1);
7512   }
7513   return cycles;
7514 #undef FLD
7515 }
7516
7517 UINT
7518 sh4a_sh4a_model::model_ori_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7519 {
7520 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7521   const sh4a_scache* abuf = sem;
7522   const sh4a_idesc* idesc = abuf->idesc;
7523   int cycles = 0;
7524   {
7525     int referenced = 0;
7526     unsigned long long insn_referenced = abuf->written;
7527     INT in_usereg = -1;
7528     in_usereg = FLD (in_r0);
7529     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7530   }
7531   {
7532     int referenced = 0;
7533     unsigned long long insn_referenced = abuf->written;
7534     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
7535   }
7536   return cycles;
7537 #undef FLD
7538 }
7539
7540 UINT
7541 sh4a_sh4a_model::model_orb_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7542 {
7543 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7544   const sh4a_scache* abuf = sem;
7545   const sh4a_idesc* idesc = abuf->idesc;
7546   int cycles = 0;
7547   {
7548     INT in_usereg = -1;
7549     in_usereg = FLD (in_r0);
7550     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7551   }
7552   {
7553     cycles += model_u_logic_b_before (current_cpu, idesc, 1);
7554   }
7555   {
7556     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
7557   }
7558   return cycles;
7559 #undef FLD
7560 }
7561
7562 UINT
7563 sh4a_sh4a_model::model_orb_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7564 {
7565 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7566   const sh4a_scache* abuf = sem;
7567   const sh4a_idesc* idesc = abuf->idesc;
7568   int cycles = 0;
7569   {
7570     int referenced = 0;
7571     unsigned long long insn_referenced = abuf->written;
7572     INT in_usereg = -1;
7573     in_usereg = FLD (in_r0);
7574     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7575   }
7576   {
7577     int referenced = 0;
7578     unsigned long long insn_referenced = abuf->written;
7579     cycles += model_u_logic_b_after (current_cpu, idesc, 1, referenced);
7580   }
7581   {
7582     int referenced = 0;
7583     unsigned long long insn_referenced = abuf->written;
7584     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
7585   }
7586   return cycles;
7587 #undef FLD
7588 }
7589
7590 UINT
7591 sh4a_sh4a_model::model_pref_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7592 {
7593 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7594   const sh4a_scache* abuf = sem;
7595   const sh4a_idesc* idesc = abuf->idesc;
7596   int cycles = 0;
7597   {
7598     INT in_usereg = -1;
7599     in_usereg = FLD (in_rn);
7600     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7601   }
7602   {
7603     cycles += model_u_exec_before (current_cpu, idesc, 1);
7604   }
7605   {
7606     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
7607   }
7608   return cycles;
7609 #undef FLD
7610 }
7611
7612 UINT
7613 sh4a_sh4a_model::model_pref_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7614 {
7615 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7616   const sh4a_scache* abuf = sem;
7617   const sh4a_idesc* idesc = abuf->idesc;
7618   int cycles = 0;
7619   {
7620     int referenced = 0;
7621     unsigned long long insn_referenced = abuf->written;
7622     INT in_usereg = -1;
7623     in_usereg = FLD (in_rn);
7624     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7625   }
7626   {
7627     int referenced = 0;
7628     unsigned long long insn_referenced = abuf->written;
7629     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
7630   }
7631   {
7632     int referenced = 0;
7633     unsigned long long insn_referenced = abuf->written;
7634     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
7635   }
7636   return cycles;
7637 #undef FLD
7638 }
7639
7640 UINT
7641 sh4a_sh4a_model::model_rotcl_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7642 {
7643 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7644   const sh4a_scache* abuf = sem;
7645   const sh4a_idesc* idesc = abuf->idesc;
7646   int cycles = 0;
7647   {
7648     INT in_usereg = -1;
7649     in_usereg = FLD (in_rn);
7650     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7651   }
7652   {
7653     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
7654   }
7655   {
7656     cycles += model_u_exec_before (current_cpu, idesc, 2);
7657   }
7658   {
7659     cycles += model_u_shift_before (current_cpu, idesc, 3);
7660   }
7661   {
7662     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
7663   }
7664   return cycles;
7665 #undef FLD
7666 }
7667
7668 UINT
7669 sh4a_sh4a_model::model_rotcl_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7670 {
7671 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7672   const sh4a_scache* abuf = sem;
7673   const sh4a_idesc* idesc = abuf->idesc;
7674   int cycles = 0;
7675   {
7676     int referenced = 0;
7677     unsigned long long insn_referenced = abuf->written;
7678     INT in_usereg = -1;
7679     in_usereg = FLD (in_rn);
7680     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7681   }
7682   {
7683     int referenced = 0;
7684     unsigned long long insn_referenced = abuf->written;
7685     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
7686   }
7687   {
7688     int referenced = 0;
7689     unsigned long long insn_referenced = abuf->written;
7690     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7691   }
7692   {
7693     int referenced = 0;
7694     unsigned long long insn_referenced = abuf->written;
7695     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
7696   }
7697   {
7698     int referenced = 0;
7699     unsigned long long insn_referenced = abuf->written;
7700     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
7701   }
7702   return cycles;
7703 #undef FLD
7704 }
7705
7706 UINT
7707 sh4a_sh4a_model::model_rotcr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7708 {
7709 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7710   const sh4a_scache* abuf = sem;
7711   const sh4a_idesc* idesc = abuf->idesc;
7712   int cycles = 0;
7713   {
7714     INT in_usereg = -1;
7715     in_usereg = FLD (in_rn);
7716     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7717   }
7718   {
7719     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
7720   }
7721   {
7722     cycles += model_u_exec_before (current_cpu, idesc, 2);
7723   }
7724   {
7725     cycles += model_u_shift_before (current_cpu, idesc, 3);
7726   }
7727   {
7728     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
7729   }
7730   return cycles;
7731 #undef FLD
7732 }
7733
7734 UINT
7735 sh4a_sh4a_model::model_rotcr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7736 {
7737 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7738   const sh4a_scache* abuf = sem;
7739   const sh4a_idesc* idesc = abuf->idesc;
7740   int cycles = 0;
7741   {
7742     int referenced = 0;
7743     unsigned long long insn_referenced = abuf->written;
7744     INT in_usereg = -1;
7745     in_usereg = FLD (in_rn);
7746     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7747   }
7748   {
7749     int referenced = 0;
7750     unsigned long long insn_referenced = abuf->written;
7751     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
7752   }
7753   {
7754     int referenced = 0;
7755     unsigned long long insn_referenced = abuf->written;
7756     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7757   }
7758   {
7759     int referenced = 0;
7760     unsigned long long insn_referenced = abuf->written;
7761     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
7762   }
7763   {
7764     int referenced = 0;
7765     unsigned long long insn_referenced = abuf->written;
7766     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
7767   }
7768   return cycles;
7769 #undef FLD
7770 }
7771
7772 UINT
7773 sh4a_sh4a_model::model_rotl_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7774 {
7775 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7776   const sh4a_scache* abuf = sem;
7777   const sh4a_idesc* idesc = abuf->idesc;
7778   int cycles = 0;
7779   {
7780     INT in_usereg = -1;
7781     in_usereg = FLD (in_rn);
7782     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7783   }
7784   {
7785     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
7786   }
7787   {
7788     cycles += model_u_exec_before (current_cpu, idesc, 2);
7789   }
7790   {
7791     cycles += model_u_shift_before (current_cpu, idesc, 3);
7792   }
7793   {
7794     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
7795   }
7796   return cycles;
7797 #undef FLD
7798 }
7799
7800 UINT
7801 sh4a_sh4a_model::model_rotl_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7802 {
7803 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7804   const sh4a_scache* abuf = sem;
7805   const sh4a_idesc* idesc = abuf->idesc;
7806   int cycles = 0;
7807   {
7808     int referenced = 0;
7809     unsigned long long insn_referenced = abuf->written;
7810     INT in_usereg = -1;
7811     in_usereg = FLD (in_rn);
7812     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7813   }
7814   {
7815     int referenced = 0;
7816     unsigned long long insn_referenced = abuf->written;
7817     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
7818   }
7819   {
7820     int referenced = 0;
7821     unsigned long long insn_referenced = abuf->written;
7822     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7823   }
7824   {
7825     int referenced = 0;
7826     unsigned long long insn_referenced = abuf->written;
7827     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
7828   }
7829   {
7830     int referenced = 0;
7831     unsigned long long insn_referenced = abuf->written;
7832     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
7833   }
7834   return cycles;
7835 #undef FLD
7836 }
7837
7838 UINT
7839 sh4a_sh4a_model::model_rotr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7840 {
7841 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7842   const sh4a_scache* abuf = sem;
7843   const sh4a_idesc* idesc = abuf->idesc;
7844   int cycles = 0;
7845   {
7846     INT in_usereg = -1;
7847     in_usereg = FLD (in_rn);
7848     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7849   }
7850   {
7851     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
7852   }
7853   {
7854     cycles += model_u_exec_before (current_cpu, idesc, 2);
7855   }
7856   {
7857     cycles += model_u_shift_before (current_cpu, idesc, 3);
7858   }
7859   {
7860     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
7861   }
7862   return cycles;
7863 #undef FLD
7864 }
7865
7866 UINT
7867 sh4a_sh4a_model::model_rotr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7868 {
7869 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
7870   const sh4a_scache* abuf = sem;
7871   const sh4a_idesc* idesc = abuf->idesc;
7872   int cycles = 0;
7873   {
7874     int referenced = 0;
7875     unsigned long long insn_referenced = abuf->written;
7876     INT in_usereg = -1;
7877     in_usereg = FLD (in_rn);
7878     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7879   }
7880   {
7881     int referenced = 0;
7882     unsigned long long insn_referenced = abuf->written;
7883     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
7884   }
7885   {
7886     int referenced = 0;
7887     unsigned long long insn_referenced = abuf->written;
7888     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7889   }
7890   {
7891     int referenced = 0;
7892     unsigned long long insn_referenced = abuf->written;
7893     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
7894   }
7895   {
7896     int referenced = 0;
7897     unsigned long long insn_referenced = abuf->written;
7898     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
7899   }
7900   return cycles;
7901 #undef FLD
7902 }
7903
7904 UINT
7905 sh4a_sh4a_model::model_rts_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7906 {
7907 #define FLD(f) abuf->fields.fmt_empty.f
7908   const sh4a_scache* abuf = sem;
7909   const sh4a_idesc* idesc = abuf->idesc;
7910   int cycles = 0;
7911   {
7912     cycles += model_u_jmp_before (current_cpu, idesc, 0);
7913   }
7914   return cycles;
7915 #undef FLD
7916 }
7917
7918 UINT
7919 sh4a_sh4a_model::model_rts_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7920 {
7921 #define FLD(f) abuf->fields.fmt_empty.f
7922   const sh4a_scache* abuf = sem;
7923   const sh4a_idesc* idesc = abuf->idesc;
7924   int cycles = 0;
7925   {
7926     int referenced = 0;
7927     unsigned long long insn_referenced = abuf->written;
7928     referenced |= 1 << 0;
7929     cycles += model_u_jmp_after (current_cpu, idesc, 0, referenced);
7930   }
7931   return cycles;
7932 #undef FLD
7933 }
7934
7935 UINT
7936 sh4a_sh4a_model::model_sets_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7937 {
7938 #define FLD(f) abuf->fields.fmt_empty.f
7939   const sh4a_scache* abuf = sem;
7940   const sh4a_idesc* idesc = abuf->idesc;
7941   int cycles = 0;
7942   {
7943     cycles += model_u_exec_before (current_cpu, idesc, 0);
7944   }
7945   {
7946     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 1);
7947   }
7948   return cycles;
7949 #undef FLD
7950 }
7951
7952 UINT
7953 sh4a_sh4a_model::model_sets_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7954 {
7955 #define FLD(f) abuf->fields.fmt_empty.f
7956   const sh4a_scache* abuf = sem;
7957   const sh4a_idesc* idesc = abuf->idesc;
7958   int cycles = 0;
7959   {
7960     int referenced = 0;
7961     unsigned long long insn_referenced = abuf->written;
7962     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
7963   }
7964   {
7965     int referenced = 0;
7966     unsigned long long insn_referenced = abuf->written;
7967     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 1, referenced);
7968   }
7969   return cycles;
7970 #undef FLD
7971 }
7972
7973 UINT
7974 sh4a_sh4a_model::model_sett_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
7975 {
7976 #define FLD(f) abuf->fields.fmt_empty.f
7977   const sh4a_scache* abuf = sem;
7978   const sh4a_idesc* idesc = abuf->idesc;
7979   int cycles = 0;
7980   {
7981     cycles += model_u_exec_before (current_cpu, idesc, 0);
7982   }
7983   {
7984     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
7985   }
7986   {
7987     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 2);
7988   }
7989   return cycles;
7990 #undef FLD
7991 }
7992
7993 UINT
7994 sh4a_sh4a_model::model_sett_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
7995 {
7996 #define FLD(f) abuf->fields.fmt_empty.f
7997   const sh4a_scache* abuf = sem;
7998   const sh4a_idesc* idesc = abuf->idesc;
7999   int cycles = 0;
8000   {
8001     int referenced = 0;
8002     unsigned long long insn_referenced = abuf->written;
8003     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
8004   }
8005   {
8006     int referenced = 0;
8007     unsigned long long insn_referenced = abuf->written;
8008     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
8009   }
8010   {
8011     int referenced = 0;
8012     unsigned long long insn_referenced = abuf->written;
8013     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 2, referenced);
8014   }
8015   return cycles;
8016 #undef FLD
8017 }
8018
8019 UINT
8020 sh4a_sh4a_model::model_shad_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8021 {
8022 #define FLD(f) abuf->fields.sfmt_macl_compact.f
8023   const sh4a_scache* abuf = sem;
8024   const sh4a_idesc* idesc = abuf->idesc;
8025   int cycles = 0;
8026   {
8027     INT in_usereg = -1;
8028     in_usereg = FLD (in_rn);
8029     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8030   }
8031   {
8032     INT in_usereg = -1;
8033     in_usereg = FLD (in_rm);
8034     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
8035   }
8036   {
8037     cycles += model_u_exec_before (current_cpu, idesc, 2);
8038   }
8039   {
8040     cycles += model_u_shift_before (current_cpu, idesc, 3);
8041   }
8042   return cycles;
8043 #undef FLD
8044 }
8045
8046 UINT
8047 sh4a_sh4a_model::model_shad_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8048 {
8049 #define FLD(f) abuf->fields.sfmt_macl_compact.f
8050   const sh4a_scache* abuf = sem;
8051   const sh4a_idesc* idesc = abuf->idesc;
8052   int cycles = 0;
8053   {
8054     int referenced = 0;
8055     unsigned long long insn_referenced = abuf->written;
8056     INT in_usereg = -1;
8057     in_usereg = FLD (in_rn);
8058     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8059   }
8060   {
8061     int referenced = 0;
8062     unsigned long long insn_referenced = abuf->written;
8063     INT in_usereg = -1;
8064     in_usereg = FLD (in_rm);
8065     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
8066   }
8067   {
8068     int referenced = 0;
8069     unsigned long long insn_referenced = abuf->written;
8070     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
8071   }
8072   {
8073     int referenced = 0;
8074     unsigned long long insn_referenced = abuf->written;
8075     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
8076   }
8077   return cycles;
8078 #undef FLD
8079 }
8080
8081 UINT
8082 sh4a_sh4a_model::model_shal_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8083 {
8084 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8085   const sh4a_scache* abuf = sem;
8086   const sh4a_idesc* idesc = abuf->idesc;
8087   int cycles = 0;
8088   {
8089     INT in_usereg = -1;
8090     in_usereg = FLD (in_rn);
8091     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8092   }
8093   {
8094     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
8095   }
8096   {
8097     cycles += model_u_exec_before (current_cpu, idesc, 2);
8098   }
8099   {
8100     cycles += model_u_shift_before (current_cpu, idesc, 3);
8101   }
8102   {
8103     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
8104   }
8105   return cycles;
8106 #undef FLD
8107 }
8108
8109 UINT
8110 sh4a_sh4a_model::model_shal_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8111 {
8112 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8113   const sh4a_scache* abuf = sem;
8114   const sh4a_idesc* idesc = abuf->idesc;
8115   int cycles = 0;
8116   {
8117     int referenced = 0;
8118     unsigned long long insn_referenced = abuf->written;
8119     INT in_usereg = -1;
8120     in_usereg = FLD (in_rn);
8121     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8122   }
8123   {
8124     int referenced = 0;
8125     unsigned long long insn_referenced = abuf->written;
8126     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
8127   }
8128   {
8129     int referenced = 0;
8130     unsigned long long insn_referenced = abuf->written;
8131     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
8132   }
8133   {
8134     int referenced = 0;
8135     unsigned long long insn_referenced = abuf->written;
8136     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
8137   }
8138   {
8139     int referenced = 0;
8140     unsigned long long insn_referenced = abuf->written;
8141     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
8142   }
8143   return cycles;
8144 #undef FLD
8145 }
8146
8147 UINT
8148 sh4a_sh4a_model::model_shar_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8149 {
8150 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8151   const sh4a_scache* abuf = sem;
8152   const sh4a_idesc* idesc = abuf->idesc;
8153   int cycles = 0;
8154   {
8155     INT in_usereg = -1;
8156     in_usereg = FLD (in_rn);
8157     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8158   }
8159   {
8160     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
8161   }
8162   {
8163     cycles += model_u_exec_before (current_cpu, idesc, 2);
8164   }
8165   {
8166     cycles += model_u_shift_before (current_cpu, idesc, 3);
8167   }
8168   {
8169     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
8170   }
8171   return cycles;
8172 #undef FLD
8173 }
8174
8175 UINT
8176 sh4a_sh4a_model::model_shar_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8177 {
8178 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8179   const sh4a_scache* abuf = sem;
8180   const sh4a_idesc* idesc = abuf->idesc;
8181   int cycles = 0;
8182   {
8183     int referenced = 0;
8184     unsigned long long insn_referenced = abuf->written;
8185     INT in_usereg = -1;
8186     in_usereg = FLD (in_rn);
8187     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8188   }
8189   {
8190     int referenced = 0;
8191     unsigned long long insn_referenced = abuf->written;
8192     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
8193   }
8194   {
8195     int referenced = 0;
8196     unsigned long long insn_referenced = abuf->written;
8197     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
8198   }
8199   {
8200     int referenced = 0;
8201     unsigned long long insn_referenced = abuf->written;
8202     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
8203   }
8204   {
8205     int referenced = 0;
8206     unsigned long long insn_referenced = abuf->written;
8207     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
8208   }
8209   return cycles;
8210 #undef FLD
8211 }
8212
8213 UINT
8214 sh4a_sh4a_model::model_shld_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8215 {
8216 #define FLD(f) abuf->fields.sfmt_macl_compact.f
8217   const sh4a_scache* abuf = sem;
8218   const sh4a_idesc* idesc = abuf->idesc;
8219   int cycles = 0;
8220   {
8221     INT in_usereg = -1;
8222     in_usereg = FLD (in_rn);
8223     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8224   }
8225   {
8226     cycles += model_u_exec_before (current_cpu, idesc, 1);
8227   }
8228   {
8229     cycles += model_u_shift_before (current_cpu, idesc, 2);
8230   }
8231   return cycles;
8232 #undef FLD
8233 }
8234
8235 UINT
8236 sh4a_sh4a_model::model_shld_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8237 {
8238 #define FLD(f) abuf->fields.sfmt_macl_compact.f
8239   const sh4a_scache* abuf = sem;
8240   const sh4a_idesc* idesc = abuf->idesc;
8241   int cycles = 0;
8242   {
8243     int referenced = 0;
8244     unsigned long long insn_referenced = abuf->written;
8245     INT in_usereg = -1;
8246     in_usereg = FLD (in_rn);
8247     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8248   }
8249   {
8250     int referenced = 0;
8251     unsigned long long insn_referenced = abuf->written;
8252     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
8253   }
8254   {
8255     int referenced = 0;
8256     unsigned long long insn_referenced = abuf->written;
8257     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
8258   }
8259   return cycles;
8260 #undef FLD
8261 }
8262
8263 UINT
8264 sh4a_sh4a_model::model_shll_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8265 {
8266 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8267   const sh4a_scache* abuf = sem;
8268   const sh4a_idesc* idesc = abuf->idesc;
8269   int cycles = 0;
8270   {
8271     INT in_usereg = -1;
8272     in_usereg = FLD (in_rn);
8273     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8274   }
8275   {
8276     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
8277   }
8278   {
8279     cycles += model_u_exec_before (current_cpu, idesc, 2);
8280   }
8281   {
8282     cycles += model_u_shift_before (current_cpu, idesc, 3);
8283   }
8284   {
8285     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
8286   }
8287   return cycles;
8288 #undef FLD
8289 }
8290
8291 UINT
8292 sh4a_sh4a_model::model_shll_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8293 {
8294 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8295   const sh4a_scache* abuf = sem;
8296   const sh4a_idesc* idesc = abuf->idesc;
8297   int cycles = 0;
8298   {
8299     int referenced = 0;
8300     unsigned long long insn_referenced = abuf->written;
8301     INT in_usereg = -1;
8302     in_usereg = FLD (in_rn);
8303     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8304   }
8305   {
8306     int referenced = 0;
8307     unsigned long long insn_referenced = abuf->written;
8308     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
8309   }
8310   {
8311     int referenced = 0;
8312     unsigned long long insn_referenced = abuf->written;
8313     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
8314   }
8315   {
8316     int referenced = 0;
8317     unsigned long long insn_referenced = abuf->written;
8318     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
8319   }
8320   {
8321     int referenced = 0;
8322     unsigned long long insn_referenced = abuf->written;
8323     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
8324   }
8325   return cycles;
8326 #undef FLD
8327 }
8328
8329 UINT
8330 sh4a_sh4a_model::model_shll2_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8331 {
8332 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8333   const sh4a_scache* abuf = sem;
8334   const sh4a_idesc* idesc = abuf->idesc;
8335   int cycles = 0;
8336   {
8337     INT in_usereg = -1;
8338     in_usereg = FLD (in_rn);
8339     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8340   }
8341   {
8342     cycles += model_u_exec_before (current_cpu, idesc, 1);
8343   }
8344   {
8345     cycles += model_u_shift_before (current_cpu, idesc, 2);
8346   }
8347   return cycles;
8348 #undef FLD
8349 }
8350
8351 UINT
8352 sh4a_sh4a_model::model_shll2_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8353 {
8354 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8355   const sh4a_scache* abuf = sem;
8356   const sh4a_idesc* idesc = abuf->idesc;
8357   int cycles = 0;
8358   {
8359     int referenced = 0;
8360     unsigned long long insn_referenced = abuf->written;
8361     INT in_usereg = -1;
8362     in_usereg = FLD (in_rn);
8363     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8364   }
8365   {
8366     int referenced = 0;
8367     unsigned long long insn_referenced = abuf->written;
8368     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
8369   }
8370   {
8371     int referenced = 0;
8372     unsigned long long insn_referenced = abuf->written;
8373     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
8374   }
8375   return cycles;
8376 #undef FLD
8377 }
8378
8379 UINT
8380 sh4a_sh4a_model::model_shll8_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8381 {
8382 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8383   const sh4a_scache* abuf = sem;
8384   const sh4a_idesc* idesc = abuf->idesc;
8385   int cycles = 0;
8386   {
8387     INT in_usereg = -1;
8388     in_usereg = FLD (in_rn);
8389     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8390   }
8391   {
8392     cycles += model_u_exec_before (current_cpu, idesc, 1);
8393   }
8394   {
8395     cycles += model_u_shift_before (current_cpu, idesc, 2);
8396   }
8397   return cycles;
8398 #undef FLD
8399 }
8400
8401 UINT
8402 sh4a_sh4a_model::model_shll8_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8403 {
8404 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8405   const sh4a_scache* abuf = sem;
8406   const sh4a_idesc* idesc = abuf->idesc;
8407   int cycles = 0;
8408   {
8409     int referenced = 0;
8410     unsigned long long insn_referenced = abuf->written;
8411     INT in_usereg = -1;
8412     in_usereg = FLD (in_rn);
8413     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8414   }
8415   {
8416     int referenced = 0;
8417     unsigned long long insn_referenced = abuf->written;
8418     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
8419   }
8420   {
8421     int referenced = 0;
8422     unsigned long long insn_referenced = abuf->written;
8423     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
8424   }
8425   return cycles;
8426 #undef FLD
8427 }
8428
8429 UINT
8430 sh4a_sh4a_model::model_shll16_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8431 {
8432 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8433   const sh4a_scache* abuf = sem;
8434   const sh4a_idesc* idesc = abuf->idesc;
8435   int cycles = 0;
8436   {
8437     INT in_usereg = -1;
8438     in_usereg = FLD (in_rn);
8439     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8440   }
8441   {
8442     cycles += model_u_exec_before (current_cpu, idesc, 1);
8443   }
8444   {
8445     cycles += model_u_shift_before (current_cpu, idesc, 2);
8446   }
8447   return cycles;
8448 #undef FLD
8449 }
8450
8451 UINT
8452 sh4a_sh4a_model::model_shll16_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8453 {
8454 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8455   const sh4a_scache* abuf = sem;
8456   const sh4a_idesc* idesc = abuf->idesc;
8457   int cycles = 0;
8458   {
8459     int referenced = 0;
8460     unsigned long long insn_referenced = abuf->written;
8461     INT in_usereg = -1;
8462     in_usereg = FLD (in_rn);
8463     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8464   }
8465   {
8466     int referenced = 0;
8467     unsigned long long insn_referenced = abuf->written;
8468     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
8469   }
8470   {
8471     int referenced = 0;
8472     unsigned long long insn_referenced = abuf->written;
8473     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
8474   }
8475   return cycles;
8476 #undef FLD
8477 }
8478
8479 UINT
8480 sh4a_sh4a_model::model_shlr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8481 {
8482 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8483   const sh4a_scache* abuf = sem;
8484   const sh4a_idesc* idesc = abuf->idesc;
8485   int cycles = 0;
8486   {
8487     INT in_usereg = -1;
8488     in_usereg = FLD (in_rn);
8489     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8490   }
8491   {
8492     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
8493   }
8494   {
8495     cycles += model_u_exec_before (current_cpu, idesc, 2);
8496   }
8497   {
8498     cycles += model_u_shift_before (current_cpu, idesc, 3);
8499   }
8500   {
8501     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
8502   }
8503   return cycles;
8504 #undef FLD
8505 }
8506
8507 UINT
8508 sh4a_sh4a_model::model_shlr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8509 {
8510 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8511   const sh4a_scache* abuf = sem;
8512   const sh4a_idesc* idesc = abuf->idesc;
8513   int cycles = 0;
8514   {
8515     int referenced = 0;
8516     unsigned long long insn_referenced = abuf->written;
8517     INT in_usereg = -1;
8518     in_usereg = FLD (in_rn);
8519     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8520   }
8521   {
8522     int referenced = 0;
8523     unsigned long long insn_referenced = abuf->written;
8524     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
8525   }
8526   {
8527     int referenced = 0;
8528     unsigned long long insn_referenced = abuf->written;
8529     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
8530   }
8531   {
8532     int referenced = 0;
8533     unsigned long long insn_referenced = abuf->written;
8534     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
8535   }
8536   {
8537     int referenced = 0;
8538     unsigned long long insn_referenced = abuf->written;
8539     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
8540   }
8541   return cycles;
8542 #undef FLD
8543 }
8544
8545 UINT
8546 sh4a_sh4a_model::model_shlr2_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8547 {
8548 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8549   const sh4a_scache* abuf = sem;
8550   const sh4a_idesc* idesc = abuf->idesc;
8551   int cycles = 0;
8552   {
8553     INT in_usereg = -1;
8554     in_usereg = FLD (in_rn);
8555     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8556   }
8557   {
8558     cycles += model_u_exec_before (current_cpu, idesc, 1);
8559   }
8560   {
8561     cycles += model_u_shift_before (current_cpu, idesc, 2);
8562   }
8563   return cycles;
8564 #undef FLD
8565 }
8566
8567 UINT
8568 sh4a_sh4a_model::model_shlr2_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8569 {
8570 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8571   const sh4a_scache* abuf = sem;
8572   const sh4a_idesc* idesc = abuf->idesc;
8573   int cycles = 0;
8574   {
8575     int referenced = 0;
8576     unsigned long long insn_referenced = abuf->written;
8577     INT in_usereg = -1;
8578     in_usereg = FLD (in_rn);
8579     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8580   }
8581   {
8582     int referenced = 0;
8583     unsigned long long insn_referenced = abuf->written;
8584     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
8585   }
8586   {
8587     int referenced = 0;
8588     unsigned long long insn_referenced = abuf->written;
8589     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
8590   }
8591   return cycles;
8592 #undef FLD
8593 }
8594
8595 UINT
8596 sh4a_sh4a_model::model_shlr8_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8597 {
8598 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8599   const sh4a_scache* abuf = sem;
8600   const sh4a_idesc* idesc = abuf->idesc;
8601   int cycles = 0;
8602   {
8603     INT in_usereg = -1;
8604     in_usereg = FLD (in_rn);
8605     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8606   }
8607   {
8608     cycles += model_u_exec_before (current_cpu, idesc, 1);
8609   }
8610   {
8611     cycles += model_u_shift_before (current_cpu, idesc, 2);
8612   }
8613   return cycles;
8614 #undef FLD
8615 }
8616
8617 UINT
8618 sh4a_sh4a_model::model_shlr8_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8619 {
8620 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8621   const sh4a_scache* abuf = sem;
8622   const sh4a_idesc* idesc = abuf->idesc;
8623   int cycles = 0;
8624   {
8625     int referenced = 0;
8626     unsigned long long insn_referenced = abuf->written;
8627     INT in_usereg = -1;
8628     in_usereg = FLD (in_rn);
8629     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8630   }
8631   {
8632     int referenced = 0;
8633     unsigned long long insn_referenced = abuf->written;
8634     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
8635   }
8636   {
8637     int referenced = 0;
8638     unsigned long long insn_referenced = abuf->written;
8639     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
8640   }
8641   return cycles;
8642 #undef FLD
8643 }
8644
8645 UINT
8646 sh4a_sh4a_model::model_shlr16_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8647 {
8648 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8649   const sh4a_scache* abuf = sem;
8650   const sh4a_idesc* idesc = abuf->idesc;
8651   int cycles = 0;
8652   {
8653     INT in_usereg = -1;
8654     in_usereg = FLD (in_rn);
8655     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8656   }
8657   {
8658     cycles += model_u_exec_before (current_cpu, idesc, 1);
8659   }
8660   {
8661     cycles += model_u_shift_before (current_cpu, idesc, 2);
8662   }
8663   return cycles;
8664 #undef FLD
8665 }
8666
8667 UINT
8668 sh4a_sh4a_model::model_shlr16_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8669 {
8670 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8671   const sh4a_scache* abuf = sem;
8672   const sh4a_idesc* idesc = abuf->idesc;
8673   int cycles = 0;
8674   {
8675     int referenced = 0;
8676     unsigned long long insn_referenced = abuf->written;
8677     INT in_usereg = -1;
8678     in_usereg = FLD (in_rn);
8679     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8680   }
8681   {
8682     int referenced = 0;
8683     unsigned long long insn_referenced = abuf->written;
8684     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
8685   }
8686   {
8687     int referenced = 0;
8688     unsigned long long insn_referenced = abuf->written;
8689     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
8690   }
8691   return cycles;
8692 #undef FLD
8693 }
8694
8695 UINT
8696 sh4a_sh4a_model::model_stc_gbr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8697 {
8698 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
8699   const sh4a_scache* abuf = sem;
8700   const sh4a_idesc* idesc = abuf->idesc;
8701   int cycles = 0;
8702   {
8703     cycles += model_u_exec_before (current_cpu, idesc, 0);
8704   }
8705   return cycles;
8706 #undef FLD
8707 }
8708
8709 UINT
8710 sh4a_sh4a_model::model_stc_gbr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8711 {
8712 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
8713   const sh4a_scache* abuf = sem;
8714   const sh4a_idesc* idesc = abuf->idesc;
8715   int cycles = 0;
8716   {
8717     int referenced = 0;
8718     unsigned long long insn_referenced = abuf->written;
8719     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
8720   }
8721   return cycles;
8722 #undef FLD
8723 }
8724
8725 UINT
8726 sh4a_sh4a_model::model_stc_vbr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8727 {
8728 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
8729   const sh4a_scache* abuf = sem;
8730   const sh4a_idesc* idesc = abuf->idesc;
8731   int cycles = 0;
8732   {
8733     cycles += model_u_stc_vbr_before (current_cpu, idesc, 0);
8734   }
8735   return cycles;
8736 #undef FLD
8737 }
8738
8739 UINT
8740 sh4a_sh4a_model::model_stc_vbr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8741 {
8742 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
8743   const sh4a_scache* abuf = sem;
8744   const sh4a_idesc* idesc = abuf->idesc;
8745   int cycles = 0;
8746   {
8747     int referenced = 0;
8748     unsigned long long insn_referenced = abuf->written;
8749     cycles += model_u_stc_vbr_after (current_cpu, idesc, 0, referenced);
8750   }
8751   return cycles;
8752 #undef FLD
8753 }
8754
8755 UINT
8756 sh4a_sh4a_model::model_stcl_gbr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8757 {
8758 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8759   const sh4a_scache* abuf = sem;
8760   const sh4a_idesc* idesc = abuf->idesc;
8761   int cycles = 0;
8762   {
8763     INT in_usereg = -1;
8764     in_usereg = FLD (in_rn);
8765     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8766   }
8767   {
8768     cycles += model_u_ldcl_before (current_cpu, idesc, 1);
8769   }
8770   {
8771     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
8772   }
8773   return cycles;
8774 #undef FLD
8775 }
8776
8777 UINT
8778 sh4a_sh4a_model::model_stcl_gbr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8779 {
8780 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8781   const sh4a_scache* abuf = sem;
8782   const sh4a_idesc* idesc = abuf->idesc;
8783   int cycles = 0;
8784   {
8785     int referenced = 0;
8786     unsigned long long insn_referenced = abuf->written;
8787     INT in_usereg = -1;
8788     in_usereg = FLD (in_rn);
8789     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8790   }
8791   {
8792     int referenced = 0;
8793     unsigned long long insn_referenced = abuf->written;
8794     cycles += model_u_ldcl_after (current_cpu, idesc, 1, referenced);
8795   }
8796   {
8797     int referenced = 0;
8798     unsigned long long insn_referenced = abuf->written;
8799     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
8800   }
8801   return cycles;
8802 #undef FLD
8803 }
8804
8805 UINT
8806 sh4a_sh4a_model::model_stcl_vbr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8807 {
8808 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8809   const sh4a_scache* abuf = sem;
8810   const sh4a_idesc* idesc = abuf->idesc;
8811   int cycles = 0;
8812   {
8813     INT in_usereg = -1;
8814     in_usereg = FLD (in_rn);
8815     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8816   }
8817   {
8818     cycles += model_u_ldcl_before (current_cpu, idesc, 1);
8819   }
8820   {
8821     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
8822   }
8823   return cycles;
8824 #undef FLD
8825 }
8826
8827 UINT
8828 sh4a_sh4a_model::model_stcl_vbr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8829 {
8830 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8831   const sh4a_scache* abuf = sem;
8832   const sh4a_idesc* idesc = abuf->idesc;
8833   int cycles = 0;
8834   {
8835     int referenced = 0;
8836     unsigned long long insn_referenced = abuf->written;
8837     INT in_usereg = -1;
8838     in_usereg = FLD (in_rn);
8839     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8840   }
8841   {
8842     int referenced = 0;
8843     unsigned long long insn_referenced = abuf->written;
8844     cycles += model_u_ldcl_after (current_cpu, idesc, 1, referenced);
8845   }
8846   {
8847     int referenced = 0;
8848     unsigned long long insn_referenced = abuf->written;
8849     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
8850   }
8851   return cycles;
8852 #undef FLD
8853 }
8854
8855 UINT
8856 sh4a_sh4a_model::model_sts_fpscr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8857 {
8858 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
8859   const sh4a_scache* abuf = sem;
8860   const sh4a_idesc* idesc = abuf->idesc;
8861   int cycles = 0;
8862   {
8863     cycles += model_u_use_fpscr_before (current_cpu, idesc, 0);
8864   }
8865   {
8866     cycles += model_u_exec_before (current_cpu, idesc, 1);
8867   }
8868   {
8869     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 2);
8870   }
8871   {
8872     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 3);
8873   }
8874   {
8875     INT out_loadreg = -1;
8876     out_loadreg = FLD (out_rn);
8877     cycles += model_u_fpu_load_gr_before (current_cpu, idesc, 4, out_loadreg);
8878   }
8879   return cycles;
8880 #undef FLD
8881 }
8882
8883 UINT
8884 sh4a_sh4a_model::model_sts_fpscr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8885 {
8886 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
8887   const sh4a_scache* abuf = sem;
8888   const sh4a_idesc* idesc = abuf->idesc;
8889   int cycles = 0;
8890   {
8891     int referenced = 0;
8892     unsigned long long insn_referenced = abuf->written;
8893     cycles += model_u_use_fpscr_after (current_cpu, idesc, 0, referenced);
8894   }
8895   {
8896     int referenced = 0;
8897     unsigned long long insn_referenced = abuf->written;
8898     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
8899   }
8900   {
8901     int referenced = 0;
8902     unsigned long long insn_referenced = abuf->written;
8903     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 2, referenced);
8904   }
8905   {
8906     int referenced = 0;
8907     unsigned long long insn_referenced = abuf->written;
8908     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 3, referenced);
8909   }
8910   {
8911     int referenced = 0;
8912     unsigned long long insn_referenced = abuf->written;
8913     INT out_loadreg = -1;
8914     out_loadreg = FLD (out_rn);
8915     cycles += model_u_fpu_load_gr_after (current_cpu, idesc, 4, referenced, out_loadreg);
8916   }
8917   return cycles;
8918 #undef FLD
8919 }
8920
8921 UINT
8922 sh4a_sh4a_model::model_stsl_fpscr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8923 {
8924 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8925   const sh4a_scache* abuf = sem;
8926   const sh4a_idesc* idesc = abuf->idesc;
8927   int cycles = 0;
8928   {
8929     INT in_usereg = -1;
8930     in_usereg = FLD (in_rn);
8931     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
8932   }
8933   {
8934     cycles += model_u_use_fpscr_before (current_cpu, idesc, 1);
8935   }
8936   {
8937     cycles += model_u_exec_before (current_cpu, idesc, 2);
8938   }
8939   {
8940     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 3);
8941   }
8942   {
8943     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 4);
8944   }
8945   return cycles;
8946 #undef FLD
8947 }
8948
8949 UINT
8950 sh4a_sh4a_model::model_stsl_fpscr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
8951 {
8952 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8953   const sh4a_scache* abuf = sem;
8954   const sh4a_idesc* idesc = abuf->idesc;
8955   int cycles = 0;
8956   {
8957     int referenced = 0;
8958     unsigned long long insn_referenced = abuf->written;
8959     INT in_usereg = -1;
8960     in_usereg = FLD (in_rn);
8961     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
8962   }
8963   {
8964     int referenced = 0;
8965     unsigned long long insn_referenced = abuf->written;
8966     cycles += model_u_use_fpscr_after (current_cpu, idesc, 1, referenced);
8967   }
8968   {
8969     int referenced = 0;
8970     unsigned long long insn_referenced = abuf->written;
8971     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
8972   }
8973   {
8974     int referenced = 0;
8975     unsigned long long insn_referenced = abuf->written;
8976     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 3, referenced);
8977   }
8978   {
8979     int referenced = 0;
8980     unsigned long long insn_referenced = abuf->written;
8981     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 4, referenced);
8982   }
8983   return cycles;
8984 #undef FLD
8985 }
8986
8987 UINT
8988 sh4a_sh4a_model::model_sts_fpul_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
8989 {
8990 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
8991   const sh4a_scache* abuf = sem;
8992   const sh4a_idesc* idesc = abuf->idesc;
8993   int cycles = 0;
8994   {
8995     cycles += model_u_use_fpul_before (current_cpu, idesc, 0);
8996   }
8997   {
8998     cycles += model_u_exec_before (current_cpu, idesc, 1);
8999   }
9000   {
9001     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 2);
9002   }
9003   {
9004     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 3);
9005   }
9006   {
9007     INT out_loadreg = -1;
9008     out_loadreg = FLD (out_rn);
9009     cycles += model_u_fpu_load_gr_before (current_cpu, idesc, 4, out_loadreg);
9010   }
9011   return cycles;
9012 #undef FLD
9013 }
9014
9015 UINT
9016 sh4a_sh4a_model::model_sts_fpul_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9017 {
9018 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9019   const sh4a_scache* abuf = sem;
9020   const sh4a_idesc* idesc = abuf->idesc;
9021   int cycles = 0;
9022   {
9023     int referenced = 0;
9024     unsigned long long insn_referenced = abuf->written;
9025     cycles += model_u_use_fpul_after (current_cpu, idesc, 0, referenced);
9026   }
9027   {
9028     int referenced = 0;
9029     unsigned long long insn_referenced = abuf->written;
9030     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
9031   }
9032   {
9033     int referenced = 0;
9034     unsigned long long insn_referenced = abuf->written;
9035     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 2, referenced);
9036   }
9037   {
9038     int referenced = 0;
9039     unsigned long long insn_referenced = abuf->written;
9040     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 3, referenced);
9041   }
9042   {
9043     int referenced = 0;
9044     unsigned long long insn_referenced = abuf->written;
9045     INT out_loadreg = -1;
9046     out_loadreg = FLD (out_rn);
9047     cycles += model_u_fpu_load_gr_after (current_cpu, idesc, 4, referenced, out_loadreg);
9048   }
9049   return cycles;
9050 #undef FLD
9051 }
9052
9053 UINT
9054 sh4a_sh4a_model::model_stsl_fpul_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9055 {
9056 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9057   const sh4a_scache* abuf = sem;
9058   const sh4a_idesc* idesc = abuf->idesc;
9059   int cycles = 0;
9060   {
9061     cycles += model_u_use_fpul_before (current_cpu, idesc, 0);
9062   }
9063   {
9064     INT in_usereg = -1;
9065     in_usereg = FLD (in_rn);
9066     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
9067   }
9068   {
9069     cycles += model_u_exec_before (current_cpu, idesc, 2);
9070   }
9071   {
9072     cycles += model_u_maybe_fpu_before (current_cpu, idesc, 3);
9073   }
9074   {
9075     cycles += model_u_fpu_memory_access_before (current_cpu, idesc, 4);
9076   }
9077   return cycles;
9078 #undef FLD
9079 }
9080
9081 UINT
9082 sh4a_sh4a_model::model_stsl_fpul_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9083 {
9084 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9085   const sh4a_scache* abuf = sem;
9086   const sh4a_idesc* idesc = abuf->idesc;
9087   int cycles = 0;
9088   {
9089     int referenced = 0;
9090     unsigned long long insn_referenced = abuf->written;
9091     cycles += model_u_use_fpul_after (current_cpu, idesc, 0, referenced);
9092   }
9093   {
9094     int referenced = 0;
9095     unsigned long long insn_referenced = abuf->written;
9096     INT in_usereg = -1;
9097     in_usereg = FLD (in_rn);
9098     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
9099   }
9100   {
9101     int referenced = 0;
9102     unsigned long long insn_referenced = abuf->written;
9103     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
9104   }
9105   {
9106     int referenced = 0;
9107     unsigned long long insn_referenced = abuf->written;
9108     cycles += model_u_maybe_fpu_after (current_cpu, idesc, 3, referenced);
9109   }
9110   {
9111     int referenced = 0;
9112     unsigned long long insn_referenced = abuf->written;
9113     cycles += model_u_fpu_memory_access_after (current_cpu, idesc, 4, referenced);
9114   }
9115   return cycles;
9116 #undef FLD
9117 }
9118
9119 UINT
9120 sh4a_sh4a_model::model_sts_mach_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9121 {
9122 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
9123   const sh4a_scache* abuf = sem;
9124   const sh4a_idesc* idesc = abuf->idesc;
9125   int cycles = 0;
9126   {
9127     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 0);
9128   }
9129   {
9130     cycles += model_u_write_back_before (current_cpu, idesc, 1);
9131   }
9132   {
9133     cycles += model_u_exec_before (current_cpu, idesc, 2);
9134   }
9135   {
9136     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
9137   }
9138   return cycles;
9139 #undef FLD
9140 }
9141
9142 UINT
9143 sh4a_sh4a_model::model_sts_mach_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9144 {
9145 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
9146   const sh4a_scache* abuf = sem;
9147   const sh4a_idesc* idesc = abuf->idesc;
9148   int cycles = 0;
9149   {
9150     int referenced = 0;
9151     unsigned long long insn_referenced = abuf->written;
9152     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 0, referenced);
9153   }
9154   {
9155     int referenced = 0;
9156     unsigned long long insn_referenced = abuf->written;
9157     cycles += model_u_write_back_after (current_cpu, idesc, 1, referenced);
9158   }
9159   {
9160     int referenced = 0;
9161     unsigned long long insn_referenced = abuf->written;
9162     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
9163   }
9164   {
9165     int referenced = 0;
9166     unsigned long long insn_referenced = abuf->written;
9167     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
9168   }
9169   return cycles;
9170 #undef FLD
9171 }
9172
9173 UINT
9174 sh4a_sh4a_model::model_stsl_mach_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9175 {
9176 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9177   const sh4a_scache* abuf = sem;
9178   const sh4a_idesc* idesc = abuf->idesc;
9179   int cycles = 0;
9180   {
9181     INT in_usereg = -1;
9182     in_usereg = FLD (in_rn);
9183     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9184   }
9185   {
9186     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
9187   }
9188   {
9189     cycles += model_u_write_back_before (current_cpu, idesc, 2);
9190   }
9191   {
9192     cycles += model_u_exec_before (current_cpu, idesc, 3);
9193   }
9194   {
9195     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
9196   }
9197   return cycles;
9198 #undef FLD
9199 }
9200
9201 UINT
9202 sh4a_sh4a_model::model_stsl_mach_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9203 {
9204 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9205   const sh4a_scache* abuf = sem;
9206   const sh4a_idesc* idesc = abuf->idesc;
9207   int cycles = 0;
9208   {
9209     int referenced = 0;
9210     unsigned long long insn_referenced = abuf->written;
9211     INT in_usereg = -1;
9212     in_usereg = FLD (in_rn);
9213     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9214   }
9215   {
9216     int referenced = 0;
9217     unsigned long long insn_referenced = abuf->written;
9218     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
9219   }
9220   {
9221     int referenced = 0;
9222     unsigned long long insn_referenced = abuf->written;
9223     cycles += model_u_write_back_after (current_cpu, idesc, 2, referenced);
9224   }
9225   {
9226     int referenced = 0;
9227     unsigned long long insn_referenced = abuf->written;
9228     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
9229   }
9230   {
9231     int referenced = 0;
9232     unsigned long long insn_referenced = abuf->written;
9233     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
9234   }
9235   return cycles;
9236 #undef FLD
9237 }
9238
9239 UINT
9240 sh4a_sh4a_model::model_sts_macl_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9241 {
9242 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
9243   const sh4a_scache* abuf = sem;
9244   const sh4a_idesc* idesc = abuf->idesc;
9245   int cycles = 0;
9246   {
9247     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 0);
9248   }
9249   {
9250     cycles += model_u_write_back_before (current_cpu, idesc, 1);
9251   }
9252   {
9253     cycles += model_u_exec_before (current_cpu, idesc, 2);
9254   }
9255   {
9256     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
9257   }
9258   return cycles;
9259 #undef FLD
9260 }
9261
9262 UINT
9263 sh4a_sh4a_model::model_sts_macl_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9264 {
9265 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
9266   const sh4a_scache* abuf = sem;
9267   const sh4a_idesc* idesc = abuf->idesc;
9268   int cycles = 0;
9269   {
9270     int referenced = 0;
9271     unsigned long long insn_referenced = abuf->written;
9272     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 0, referenced);
9273   }
9274   {
9275     int referenced = 0;
9276     unsigned long long insn_referenced = abuf->written;
9277     cycles += model_u_write_back_after (current_cpu, idesc, 1, referenced);
9278   }
9279   {
9280     int referenced = 0;
9281     unsigned long long insn_referenced = abuf->written;
9282     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
9283   }
9284   {
9285     int referenced = 0;
9286     unsigned long long insn_referenced = abuf->written;
9287     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
9288   }
9289   return cycles;
9290 #undef FLD
9291 }
9292
9293 UINT
9294 sh4a_sh4a_model::model_stsl_macl_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9295 {
9296 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9297   const sh4a_scache* abuf = sem;
9298   const sh4a_idesc* idesc = abuf->idesc;
9299   int cycles = 0;
9300   {
9301     INT in_usereg = -1;
9302     in_usereg = FLD (in_rn);
9303     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9304   }
9305   {
9306     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
9307   }
9308   {
9309     cycles += model_u_write_back_before (current_cpu, idesc, 2);
9310   }
9311   {
9312     cycles += model_u_exec_before (current_cpu, idesc, 3);
9313   }
9314   {
9315     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
9316   }
9317   return cycles;
9318 #undef FLD
9319 }
9320
9321 UINT
9322 sh4a_sh4a_model::model_stsl_macl_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9323 {
9324 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9325   const sh4a_scache* abuf = sem;
9326   const sh4a_idesc* idesc = abuf->idesc;
9327   int cycles = 0;
9328   {
9329     int referenced = 0;
9330     unsigned long long insn_referenced = abuf->written;
9331     INT in_usereg = -1;
9332     in_usereg = FLD (in_rn);
9333     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9334   }
9335   {
9336     int referenced = 0;
9337     unsigned long long insn_referenced = abuf->written;
9338     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
9339   }
9340   {
9341     int referenced = 0;
9342     unsigned long long insn_referenced = abuf->written;
9343     cycles += model_u_write_back_after (current_cpu, idesc, 2, referenced);
9344   }
9345   {
9346     int referenced = 0;
9347     unsigned long long insn_referenced = abuf->written;
9348     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
9349   }
9350   {
9351     int referenced = 0;
9352     unsigned long long insn_referenced = abuf->written;
9353     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
9354   }
9355   return cycles;
9356 #undef FLD
9357 }
9358
9359 UINT
9360 sh4a_sh4a_model::model_sts_pr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9361 {
9362 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
9363   const sh4a_scache* abuf = sem;
9364   const sh4a_idesc* idesc = abuf->idesc;
9365   int cycles = 0;
9366   {
9367     cycles += model_u_use_pr_before (current_cpu, idesc, 0);
9368   }
9369   {
9370     cycles += model_u_sts_pr_before (current_cpu, idesc, 1);
9371   }
9372   return cycles;
9373 #undef FLD
9374 }
9375
9376 UINT
9377 sh4a_sh4a_model::model_sts_pr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9378 {
9379 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
9380   const sh4a_scache* abuf = sem;
9381   const sh4a_idesc* idesc = abuf->idesc;
9382   int cycles = 0;
9383   {
9384     int referenced = 0;
9385     unsigned long long insn_referenced = abuf->written;
9386     cycles += model_u_use_pr_after (current_cpu, idesc, 0, referenced);
9387   }
9388   {
9389     int referenced = 0;
9390     unsigned long long insn_referenced = abuf->written;
9391     cycles += model_u_sts_pr_after (current_cpu, idesc, 1, referenced);
9392   }
9393   return cycles;
9394 #undef FLD
9395 }
9396
9397 UINT
9398 sh4a_sh4a_model::model_stsl_pr_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9399 {
9400 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9401   const sh4a_scache* abuf = sem;
9402   const sh4a_idesc* idesc = abuf->idesc;
9403   int cycles = 0;
9404   {
9405     INT in_usereg = -1;
9406     in_usereg = FLD (in_rn);
9407     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9408   }
9409   {
9410     cycles += model_u_use_pr_before (current_cpu, idesc, 1);
9411   }
9412   {
9413     cycles += model_u_sts_pr_before (current_cpu, idesc, 2);
9414   }
9415   {
9416     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
9417   }
9418   return cycles;
9419 #undef FLD
9420 }
9421
9422 UINT
9423 sh4a_sh4a_model::model_stsl_pr_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9424 {
9425 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9426   const sh4a_scache* abuf = sem;
9427   const sh4a_idesc* idesc = abuf->idesc;
9428   int cycles = 0;
9429   {
9430     int referenced = 0;
9431     unsigned long long insn_referenced = abuf->written;
9432     INT in_usereg = -1;
9433     in_usereg = FLD (in_rn);
9434     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9435   }
9436   {
9437     int referenced = 0;
9438     unsigned long long insn_referenced = abuf->written;
9439     cycles += model_u_use_pr_after (current_cpu, idesc, 1, referenced);
9440   }
9441   {
9442     int referenced = 0;
9443     unsigned long long insn_referenced = abuf->written;
9444     cycles += model_u_sts_pr_after (current_cpu, idesc, 2, referenced);
9445   }
9446   {
9447     int referenced = 0;
9448     unsigned long long insn_referenced = abuf->written;
9449     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
9450   }
9451   return cycles;
9452 #undef FLD
9453 }
9454
9455 UINT
9456 sh4a_sh4a_model::model_sub_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9457 {
9458 #define FLD(f) abuf->fields.sfmt_macl_compact.f
9459   const sh4a_scache* abuf = sem;
9460   const sh4a_idesc* idesc = abuf->idesc;
9461   int cycles = 0;
9462   {
9463     INT in_usereg = -1;
9464     in_usereg = FLD (in_rn);
9465     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9466   }
9467   {
9468     INT in_usereg = -1;
9469     in_usereg = FLD (in_rm);
9470     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
9471   }
9472   {
9473     cycles += model_u_exec_before (current_cpu, idesc, 2);
9474   }
9475   return cycles;
9476 #undef FLD
9477 }
9478
9479 UINT
9480 sh4a_sh4a_model::model_sub_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9481 {
9482 #define FLD(f) abuf->fields.sfmt_macl_compact.f
9483   const sh4a_scache* abuf = sem;
9484   const sh4a_idesc* idesc = abuf->idesc;
9485   int cycles = 0;
9486   {
9487     int referenced = 0;
9488     unsigned long long insn_referenced = abuf->written;
9489     INT in_usereg = -1;
9490     in_usereg = FLD (in_rn);
9491     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9492   }
9493   {
9494     int referenced = 0;
9495     unsigned long long insn_referenced = abuf->written;
9496     INT in_usereg = -1;
9497     in_usereg = FLD (in_rm);
9498     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
9499   }
9500   {
9501     int referenced = 0;
9502     unsigned long long insn_referenced = abuf->written;
9503     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
9504   }
9505   return cycles;
9506 #undef FLD
9507 }
9508
9509 UINT
9510 sh4a_sh4a_model::model_subc_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9511 {
9512 #define FLD(f) abuf->fields.sfmt_macl_compact.f
9513   const sh4a_scache* abuf = sem;
9514   const sh4a_idesc* idesc = abuf->idesc;
9515   int cycles = 0;
9516   {
9517     INT in_usereg = -1;
9518     in_usereg = FLD (in_rn);
9519     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9520   }
9521   {
9522     INT in_usereg = -1;
9523     in_usereg = FLD (in_rm);
9524     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
9525   }
9526   {
9527     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
9528   }
9529   {
9530     cycles += model_u_exec_before (current_cpu, idesc, 3);
9531   }
9532   return cycles;
9533 #undef FLD
9534 }
9535
9536 UINT
9537 sh4a_sh4a_model::model_subc_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9538 {
9539 #define FLD(f) abuf->fields.sfmt_macl_compact.f
9540   const sh4a_scache* abuf = sem;
9541   const sh4a_idesc* idesc = abuf->idesc;
9542   int cycles = 0;
9543   {
9544     int referenced = 0;
9545     unsigned long long insn_referenced = abuf->written;
9546     INT in_usereg = -1;
9547     in_usereg = FLD (in_rn);
9548     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9549   }
9550   {
9551     int referenced = 0;
9552     unsigned long long insn_referenced = abuf->written;
9553     INT in_usereg = -1;
9554     in_usereg = FLD (in_rm);
9555     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
9556   }
9557   {
9558     int referenced = 0;
9559     unsigned long long insn_referenced = abuf->written;
9560     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
9561   }
9562   {
9563     int referenced = 0;
9564     unsigned long long insn_referenced = abuf->written;
9565     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
9566   }
9567   return cycles;
9568 #undef FLD
9569 }
9570
9571 UINT
9572 sh4a_sh4a_model::model_subv_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9573 {
9574 #define FLD(f) abuf->fields.sfmt_macl_compact.f
9575   const sh4a_scache* abuf = sem;
9576   const sh4a_idesc* idesc = abuf->idesc;
9577   int cycles = 0;
9578   {
9579     INT in_usereg = -1;
9580     in_usereg = FLD (in_rn);
9581     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9582   }
9583   {
9584     INT in_usereg = -1;
9585     in_usereg = FLD (in_rm);
9586     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
9587   }
9588   {
9589     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
9590   }
9591   {
9592     cycles += model_u_exec_before (current_cpu, idesc, 3);
9593   }
9594   {
9595     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
9596   }
9597   return cycles;
9598 #undef FLD
9599 }
9600
9601 UINT
9602 sh4a_sh4a_model::model_subv_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9603 {
9604 #define FLD(f) abuf->fields.sfmt_macl_compact.f
9605   const sh4a_scache* abuf = sem;
9606   const sh4a_idesc* idesc = abuf->idesc;
9607   int cycles = 0;
9608   {
9609     int referenced = 0;
9610     unsigned long long insn_referenced = abuf->written;
9611     INT in_usereg = -1;
9612     in_usereg = FLD (in_rn);
9613     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9614   }
9615   {
9616     int referenced = 0;
9617     unsigned long long insn_referenced = abuf->written;
9618     INT in_usereg = -1;
9619     in_usereg = FLD (in_rm);
9620     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
9621   }
9622   {
9623     int referenced = 0;
9624     unsigned long long insn_referenced = abuf->written;
9625     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
9626   }
9627   {
9628     int referenced = 0;
9629     unsigned long long insn_referenced = abuf->written;
9630     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
9631   }
9632   {
9633     int referenced = 0;
9634     unsigned long long insn_referenced = abuf->written;
9635     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
9636   }
9637   return cycles;
9638 #undef FLD
9639 }
9640
9641 UINT
9642 sh4a_sh4a_model::model_swapb_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9643 {
9644 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
9645   const sh4a_scache* abuf = sem;
9646   const sh4a_idesc* idesc = abuf->idesc;
9647   int cycles = 0;
9648   {
9649     INT in_usereg = -1;
9650     in_usereg = FLD (in_rm);
9651     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9652   }
9653   {
9654     cycles += model_u_exec_before (current_cpu, idesc, 1);
9655   }
9656   {
9657     cycles += model_u_shift_before (current_cpu, idesc, 2);
9658   }
9659   return cycles;
9660 #undef FLD
9661 }
9662
9663 UINT
9664 sh4a_sh4a_model::model_swapb_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9665 {
9666 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
9667   const sh4a_scache* abuf = sem;
9668   const sh4a_idesc* idesc = abuf->idesc;
9669   int cycles = 0;
9670   {
9671     int referenced = 0;
9672     unsigned long long insn_referenced = abuf->written;
9673     INT in_usereg = -1;
9674     in_usereg = FLD (in_rm);
9675     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9676   }
9677   {
9678     int referenced = 0;
9679     unsigned long long insn_referenced = abuf->written;
9680     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
9681   }
9682   {
9683     int referenced = 0;
9684     unsigned long long insn_referenced = abuf->written;
9685     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
9686   }
9687   return cycles;
9688 #undef FLD
9689 }
9690
9691 UINT
9692 sh4a_sh4a_model::model_swapw_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9693 {
9694 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
9695   const sh4a_scache* abuf = sem;
9696   const sh4a_idesc* idesc = abuf->idesc;
9697   int cycles = 0;
9698   {
9699     INT in_usereg = -1;
9700     in_usereg = FLD (in_rm);
9701     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9702   }
9703   {
9704     cycles += model_u_exec_before (current_cpu, idesc, 1);
9705   }
9706   {
9707     cycles += model_u_shift_before (current_cpu, idesc, 2);
9708   }
9709   return cycles;
9710 #undef FLD
9711 }
9712
9713 UINT
9714 sh4a_sh4a_model::model_swapw_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9715 {
9716 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
9717   const sh4a_scache* abuf = sem;
9718   const sh4a_idesc* idesc = abuf->idesc;
9719   int cycles = 0;
9720   {
9721     int referenced = 0;
9722     unsigned long long insn_referenced = abuf->written;
9723     INT in_usereg = -1;
9724     in_usereg = FLD (in_rm);
9725     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9726   }
9727   {
9728     int referenced = 0;
9729     unsigned long long insn_referenced = abuf->written;
9730     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
9731   }
9732   {
9733     int referenced = 0;
9734     unsigned long long insn_referenced = abuf->written;
9735     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
9736   }
9737   return cycles;
9738 #undef FLD
9739 }
9740
9741 UINT
9742 sh4a_sh4a_model::model_tasb_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9743 {
9744 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9745   const sh4a_scache* abuf = sem;
9746   const sh4a_idesc* idesc = abuf->idesc;
9747   int cycles = 0;
9748   {
9749     INT in_usereg = -1;
9750     in_usereg = FLD (in_rn);
9751     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9752   }
9753   {
9754     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
9755   }
9756   {
9757     cycles += model_u_tas_before (current_cpu, idesc, 2);
9758   }
9759   {
9760     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
9761   }
9762   {
9763     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
9764   }
9765   return cycles;
9766 #undef FLD
9767 }
9768
9769 UINT
9770 sh4a_sh4a_model::model_tasb_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9771 {
9772 #define FLD(f) abuf->fields.sfmt_stsl_fpul_compact.f
9773   const sh4a_scache* abuf = sem;
9774   const sh4a_idesc* idesc = abuf->idesc;
9775   int cycles = 0;
9776   {
9777     int referenced = 0;
9778     unsigned long long insn_referenced = abuf->written;
9779     INT in_usereg = -1;
9780     in_usereg = FLD (in_rn);
9781     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9782   }
9783   {
9784     int referenced = 0;
9785     unsigned long long insn_referenced = abuf->written;
9786     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
9787   }
9788   {
9789     int referenced = 0;
9790     unsigned long long insn_referenced = abuf->written;
9791     cycles += model_u_tas_after (current_cpu, idesc, 2, referenced);
9792   }
9793   {
9794     int referenced = 0;
9795     unsigned long long insn_referenced = abuf->written;
9796     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
9797   }
9798   {
9799     int referenced = 0;
9800     unsigned long long insn_referenced = abuf->written;
9801     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
9802   }
9803   return cycles;
9804 #undef FLD
9805 }
9806
9807 UINT
9808 sh4a_sh4a_model::model_trapa_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9809 {
9810 #define FLD(f) abuf->fields.sfmt_andi_compact.f
9811   const sh4a_scache* abuf = sem;
9812   const sh4a_idesc* idesc = abuf->idesc;
9813   int cycles = 0;
9814   {
9815     cycles += model_u_trap_before (current_cpu, idesc, 0);
9816   }
9817   return cycles;
9818 #undef FLD
9819 }
9820
9821 UINT
9822 sh4a_sh4a_model::model_trapa_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9823 {
9824 #define FLD(f) abuf->fields.sfmt_andi_compact.f
9825   const sh4a_scache* abuf = sem;
9826   const sh4a_idesc* idesc = abuf->idesc;
9827   int cycles = 0;
9828   {
9829     int referenced = 0;
9830     unsigned long long insn_referenced = abuf->written;
9831     cycles += model_u_trap_after (current_cpu, idesc, 0, referenced);
9832   }
9833   return cycles;
9834 #undef FLD
9835 }
9836
9837 UINT
9838 sh4a_sh4a_model::model_tst_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9839 {
9840 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
9841   const sh4a_scache* abuf = sem;
9842   const sh4a_idesc* idesc = abuf->idesc;
9843   int cycles = 0;
9844   {
9845     INT in_usereg = -1;
9846     in_usereg = FLD (in_rn);
9847     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9848   }
9849   {
9850     INT in_usereg = -1;
9851     in_usereg = FLD (in_rm);
9852     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
9853   }
9854   {
9855     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
9856   }
9857   {
9858     cycles += model_u_exec_before (current_cpu, idesc, 3);
9859   }
9860   {
9861     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
9862   }
9863   return cycles;
9864 #undef FLD
9865 }
9866
9867 UINT
9868 sh4a_sh4a_model::model_tst_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9869 {
9870 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
9871   const sh4a_scache* abuf = sem;
9872   const sh4a_idesc* idesc = abuf->idesc;
9873   int cycles = 0;
9874   {
9875     int referenced = 0;
9876     unsigned long long insn_referenced = abuf->written;
9877     INT in_usereg = -1;
9878     in_usereg = FLD (in_rn);
9879     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9880   }
9881   {
9882     int referenced = 0;
9883     unsigned long long insn_referenced = abuf->written;
9884     INT in_usereg = -1;
9885     in_usereg = FLD (in_rm);
9886     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
9887   }
9888   {
9889     int referenced = 0;
9890     unsigned long long insn_referenced = abuf->written;
9891     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
9892   }
9893   {
9894     int referenced = 0;
9895     unsigned long long insn_referenced = abuf->written;
9896     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
9897   }
9898   {
9899     int referenced = 0;
9900     unsigned long long insn_referenced = abuf->written;
9901     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
9902   }
9903   return cycles;
9904 #undef FLD
9905 }
9906
9907 UINT
9908 sh4a_sh4a_model::model_tsti_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9909 {
9910 #define FLD(f) abuf->fields.sfmt_andi_compact.f
9911   const sh4a_scache* abuf = sem;
9912   const sh4a_idesc* idesc = abuf->idesc;
9913   int cycles = 0;
9914   {
9915     INT in_usereg = -1;
9916     in_usereg = FLD (in_r0);
9917     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9918   }
9919   {
9920     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
9921   }
9922   {
9923     cycles += model_u_exec_before (current_cpu, idesc, 2);
9924   }
9925   {
9926     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
9927   }
9928   return cycles;
9929 #undef FLD
9930 }
9931
9932 UINT
9933 sh4a_sh4a_model::model_tsti_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9934 {
9935 #define FLD(f) abuf->fields.sfmt_andi_compact.f
9936   const sh4a_scache* abuf = sem;
9937   const sh4a_idesc* idesc = abuf->idesc;
9938   int cycles = 0;
9939   {
9940     int referenced = 0;
9941     unsigned long long insn_referenced = abuf->written;
9942     INT in_usereg = -1;
9943     in_usereg = FLD (in_r0);
9944     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
9945   }
9946   {
9947     int referenced = 0;
9948     unsigned long long insn_referenced = abuf->written;
9949     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
9950   }
9951   {
9952     int referenced = 0;
9953     unsigned long long insn_referenced = abuf->written;
9954     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
9955   }
9956   {
9957     int referenced = 0;
9958     unsigned long long insn_referenced = abuf->written;
9959     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
9960   }
9961   return cycles;
9962 #undef FLD
9963 }
9964
9965 UINT
9966 sh4a_sh4a_model::model_tstb_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
9967 {
9968 #define FLD(f) abuf->fields.sfmt_andi_compact.f
9969   const sh4a_scache* abuf = sem;
9970   const sh4a_idesc* idesc = abuf->idesc;
9971   int cycles = 0;
9972   {
9973     INT in_usereg = -1;
9974     in_usereg = FLD (in_r0);
9975     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
9976   }
9977   {
9978     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
9979   }
9980   {
9981     cycles += model_u_exec_before (current_cpu, idesc, 2);
9982   }
9983   {
9984     cycles += model_u_sx_before (current_cpu, idesc, 3);
9985   }
9986   {
9987     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
9988   }
9989   {
9990     cycles += model_u_memory_access_before (current_cpu, idesc, 5);
9991   }
9992   return cycles;
9993 #undef FLD
9994 }
9995
9996 UINT
9997 sh4a_sh4a_model::model_tstb_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
9998 {
9999 #define FLD(f) abuf->fields.sfmt_andi_compact.f
10000   const sh4a_scache* abuf = sem;
10001   const sh4a_idesc* idesc = abuf->idesc;
10002   int cycles = 0;
10003   {
10004     int referenced = 0;
10005     unsigned long long insn_referenced = abuf->written;
10006     INT in_usereg = -1;
10007     in_usereg = FLD (in_r0);
10008     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
10009   }
10010   {
10011     int referenced = 0;
10012     unsigned long long insn_referenced = abuf->written;
10013     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
10014   }
10015   {
10016     int referenced = 0;
10017     unsigned long long insn_referenced = abuf->written;
10018     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
10019   }
10020   {
10021     int referenced = 0;
10022     unsigned long long insn_referenced = abuf->written;
10023     cycles += model_u_sx_after (current_cpu, idesc, 3, referenced);
10024   }
10025   {
10026     int referenced = 0;
10027     unsigned long long insn_referenced = abuf->written;
10028     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
10029   }
10030   {
10031     int referenced = 0;
10032     unsigned long long insn_referenced = abuf->written;
10033     cycles += model_u_memory_access_after (current_cpu, idesc, 5, referenced);
10034   }
10035   return cycles;
10036 #undef FLD
10037 }
10038
10039 UINT
10040 sh4a_sh4a_model::model_xor_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
10041 {
10042 #define FLD(f) abuf->fields.sfmt_and_compact.f
10043   const sh4a_scache* abuf = sem;
10044   const sh4a_idesc* idesc = abuf->idesc;
10045   int cycles = 0;
10046   {
10047     INT in_usereg = -1;
10048     in_usereg = FLD (in_rn64);
10049     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
10050   }
10051   {
10052     INT in_usereg = -1;
10053     in_usereg = FLD (in_rm64);
10054     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
10055   }
10056   {
10057     cycles += model_u_exec_before (current_cpu, idesc, 2);
10058   }
10059   return cycles;
10060 #undef FLD
10061 }
10062
10063 UINT
10064 sh4a_sh4a_model::model_xor_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
10065 {
10066 #define FLD(f) abuf->fields.sfmt_and_compact.f
10067   const sh4a_scache* abuf = sem;
10068   const sh4a_idesc* idesc = abuf->idesc;
10069   int cycles = 0;
10070   {
10071     int referenced = 0;
10072     unsigned long long insn_referenced = abuf->written;
10073     INT in_usereg = -1;
10074     in_usereg = FLD (in_rn64);
10075     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
10076   }
10077   {
10078     int referenced = 0;
10079     unsigned long long insn_referenced = abuf->written;
10080     INT in_usereg = -1;
10081     in_usereg = FLD (in_rm64);
10082     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
10083   }
10084   {
10085     int referenced = 0;
10086     unsigned long long insn_referenced = abuf->written;
10087     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
10088   }
10089   return cycles;
10090 #undef FLD
10091 }
10092
10093 UINT
10094 sh4a_sh4a_model::model_xori_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
10095 {
10096 #define FLD(f) abuf->fields.sfmt_andi_compact.f
10097   const sh4a_scache* abuf = sem;
10098   const sh4a_idesc* idesc = abuf->idesc;
10099   int cycles = 0;
10100   {
10101     INT in_usereg = -1;
10102     in_usereg = FLD (in_r0);
10103     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
10104   }
10105   {
10106     cycles += model_u_exec_before (current_cpu, idesc, 1);
10107   }
10108   return cycles;
10109 #undef FLD
10110 }
10111
10112 UINT
10113 sh4a_sh4a_model::model_xori_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
10114 {
10115 #define FLD(f) abuf->fields.sfmt_andi_compact.f
10116   const sh4a_scache* abuf = sem;
10117   const sh4a_idesc* idesc = abuf->idesc;
10118   int cycles = 0;
10119   {
10120     int referenced = 0;
10121     unsigned long long insn_referenced = abuf->written;
10122     INT in_usereg = -1;
10123     in_usereg = FLD (in_r0);
10124     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
10125   }
10126   {
10127     int referenced = 0;
10128     unsigned long long insn_referenced = abuf->written;
10129     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
10130   }
10131   return cycles;
10132 #undef FLD
10133 }
10134
10135 UINT
10136 sh4a_sh4a_model::model_xorb_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
10137 {
10138 #define FLD(f) abuf->fields.sfmt_andi_compact.f
10139   const sh4a_scache* abuf = sem;
10140   const sh4a_idesc* idesc = abuf->idesc;
10141   int cycles = 0;
10142   {
10143     INT in_usereg = -1;
10144     in_usereg = FLD (in_r0);
10145     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
10146   }
10147   {
10148     cycles += model_u_logic_b_before (current_cpu, idesc, 1);
10149   }
10150   {
10151     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
10152   }
10153   return cycles;
10154 #undef FLD
10155 }
10156
10157 UINT
10158 sh4a_sh4a_model::model_xorb_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
10159 {
10160 #define FLD(f) abuf->fields.sfmt_andi_compact.f
10161   const sh4a_scache* abuf = sem;
10162   const sh4a_idesc* idesc = abuf->idesc;
10163   int cycles = 0;
10164   {
10165     int referenced = 0;
10166     unsigned long long insn_referenced = abuf->written;
10167     INT in_usereg = -1;
10168     in_usereg = FLD (in_r0);
10169     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
10170   }
10171   {
10172     int referenced = 0;
10173     unsigned long long insn_referenced = abuf->written;
10174     cycles += model_u_logic_b_after (current_cpu, idesc, 1, referenced);
10175   }
10176   {
10177     int referenced = 0;
10178     unsigned long long insn_referenced = abuf->written;
10179     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
10180   }
10181   return cycles;
10182 #undef FLD
10183 }
10184
10185 UINT
10186 sh4a_sh4a_model::model_xtrct_compact_before (sh4a_cpu *current_cpu, sh4a_scache *sem)
10187 {
10188 #define FLD(f) abuf->fields.sfmt_macl_compact.f
10189   const sh4a_scache* abuf = sem;
10190   const sh4a_idesc* idesc = abuf->idesc;
10191   int cycles = 0;
10192   {
10193     INT in_usereg = -1;
10194     in_usereg = FLD (in_rn);
10195     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
10196   }
10197   {
10198     INT in_usereg = -1;
10199     in_usereg = FLD (in_rm);
10200     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
10201   }
10202   {
10203     cycles += model_u_exec_before (current_cpu, idesc, 2);
10204   }
10205   {
10206     cycles += model_u_shift_before (current_cpu, idesc, 3);
10207   }
10208   return cycles;
10209 #undef FLD
10210 }
10211
10212 UINT
10213 sh4a_sh4a_model::model_xtrct_compact_after (sh4a_cpu *current_cpu, sh4a_scache *sem)
10214 {
10215 #define FLD(f) abuf->fields.sfmt_macl_compact.f
10216   const sh4a_scache* abuf = sem;
10217   const sh4a_idesc* idesc = abuf->idesc;
10218   int cycles = 0;
10219   {
10220     int referenced = 0;
10221     unsigned long long insn_referenced = abuf->written;
10222     INT in_usereg = -1;
10223     in_usereg = FLD (in_rn);
10224     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
10225   }
10226   {
10227     int referenced = 0;
10228     unsigned long long insn_referenced = abuf->written;
10229     INT in_usereg = -1;
10230     in_usereg = FLD (in_rm);
10231     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
10232   }
10233   {
10234     int referenced = 0;
10235     unsigned long long insn_referenced = abuf->written;
10236     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
10237   }
10238   {
10239     int referenced = 0;
10240     unsigned long long insn_referenced = abuf->written;
10241     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
10242   }
10243   return cycles;
10244 #undef FLD
10245 }
10246
10247 /* We assume UNIT_NONE == 0 because the tables don't always terminate
10248    entries with it.  */
10249
10250 /* Model timing data for `sh4a'.  */
10251
10252 const sh4a_sh4a_model::insn_timing sh4a_sh4a_model::timing[] = {
10253   { SH4A_INSN_X_INVALID, 0, 0, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10254   { SH4A_INSN_ADD_COMPACT, & sh4a_sh4a_model::model_add_compact_before, & sh4a_sh4a_model::model_add_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10255   { SH4A_INSN_ADDI_COMPACT, & sh4a_sh4a_model::model_addi_compact_before, & sh4a_sh4a_model::model_addi_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10256   { SH4A_INSN_ADDC_COMPACT, & sh4a_sh4a_model::model_addc_compact_before, & sh4a_sh4a_model::model_addc_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10257   { SH4A_INSN_ADDV_COMPACT, & sh4a_sh4a_model::model_addv_compact_before, & sh4a_sh4a_model::model_addv_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10258   { SH4A_INSN_AND_COMPACT, & sh4a_sh4a_model::model_and_compact_before, & sh4a_sh4a_model::model_and_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10259   { SH4A_INSN_ANDI_COMPACT, & sh4a_sh4a_model::model_andi_compact_before, & sh4a_sh4a_model::model_andi_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10260   { SH4A_INSN_ANDB_COMPACT, & sh4a_sh4a_model::model_andb_compact_before, & sh4a_sh4a_model::model_andb_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOGIC_B, 0, 3 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10261   { SH4A_INSN_BF_COMPACT, & sh4a_sh4a_model::model_bf_compact_before, & sh4a_sh4a_model::model_bf_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_BRANCH, 0, 3 } } },
10262   { SH4A_INSN_BFS_COMPACT, & sh4a_sh4a_model::model_bfs_compact_before, & sh4a_sh4a_model::model_bfs_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_BRANCH, 0, 2 } } },
10263   { SH4A_INSN_BRA_COMPACT, & sh4a_sh4a_model::model_bra_compact_before, & sh4a_sh4a_model::model_bra_compact_after, { { sh4a_sh4a_model::UNIT_U_BRANCH, 0, 2 } } },
10264   { SH4A_INSN_BRAF_COMPACT, & sh4a_sh4a_model::model_braf_compact_before, & sh4a_sh4a_model::model_braf_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_JMP, 0, 2 } } },
10265   { SH4A_INSN_BSR_COMPACT, & sh4a_sh4a_model::model_bsr_compact_before, & sh4a_sh4a_model::model_bsr_compact_after, { { sh4a_sh4a_model::UNIT_U_BRANCH, 0, 2 } } },
10266   { SH4A_INSN_BSRF_COMPACT, & sh4a_sh4a_model::model_bsrf_compact_before, & sh4a_sh4a_model::model_bsrf_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_JSR, 0, 2 } } },
10267   { SH4A_INSN_BT_COMPACT, & sh4a_sh4a_model::model_bt_compact_before, & sh4a_sh4a_model::model_bt_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_BRANCH, 0, 3 } } },
10268   { SH4A_INSN_BTS_COMPACT, & sh4a_sh4a_model::model_bts_compact_before, & sh4a_sh4a_model::model_bts_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_BRANCH, 0, 2 } } },
10269   { SH4A_INSN_CLRMAC_COMPACT, & sh4a_sh4a_model::model_clrmac_compact_before, & sh4a_sh4a_model::model_clrmac_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_MAC, 0, 0 } } },
10270   { SH4A_INSN_CLRS_COMPACT, & sh4a_sh4a_model::model_clrs_compact_before, & sh4a_sh4a_model::model_clrs_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10271   { SH4A_INSN_CLRT_COMPACT, & sh4a_sh4a_model::model_clrt_compact_before, & sh4a_sh4a_model::model_clrt_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10272   { SH4A_INSN_CMPEQ_COMPACT, & sh4a_sh4a_model::model_cmpeq_compact_before, & sh4a_sh4a_model::model_cmpeq_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10273   { SH4A_INSN_CMPEQI_COMPACT, & sh4a_sh4a_model::model_cmpeqi_compact_before, & sh4a_sh4a_model::model_cmpeqi_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10274   { SH4A_INSN_CMPGE_COMPACT, & sh4a_sh4a_model::model_cmpge_compact_before, & sh4a_sh4a_model::model_cmpge_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10275   { SH4A_INSN_CMPGT_COMPACT, & sh4a_sh4a_model::model_cmpgt_compact_before, & sh4a_sh4a_model::model_cmpgt_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10276   { SH4A_INSN_CMPHI_COMPACT, & sh4a_sh4a_model::model_cmphi_compact_before, & sh4a_sh4a_model::model_cmphi_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10277   { SH4A_INSN_CMPHS_COMPACT, & sh4a_sh4a_model::model_cmphs_compact_before, & sh4a_sh4a_model::model_cmphs_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10278   { SH4A_INSN_CMPPL_COMPACT, & sh4a_sh4a_model::model_cmppl_compact_before, & sh4a_sh4a_model::model_cmppl_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10279   { SH4A_INSN_CMPPZ_COMPACT, & sh4a_sh4a_model::model_cmppz_compact_before, & sh4a_sh4a_model::model_cmppz_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10280   { SH4A_INSN_CMPSTR_COMPACT, & sh4a_sh4a_model::model_cmpstr_compact_before, & sh4a_sh4a_model::model_cmpstr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10281   { SH4A_INSN_DIV0S_COMPACT, & sh4a_sh4a_model::model_div0s_compact_before, & sh4a_sh4a_model::model_div0s_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10282   { SH4A_INSN_DIV0U_COMPACT, & sh4a_sh4a_model::model_div0u_compact_before, & sh4a_sh4a_model::model_div0u_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10283   { SH4A_INSN_DIV1_COMPACT, & sh4a_sh4a_model::model_div1_compact_before, & sh4a_sh4a_model::model_div1_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10284   { SH4A_INSN_DMULSL_COMPACT, & sh4a_sh4a_model::model_dmulsl_compact_before, & sh4a_sh4a_model::model_dmulsl_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_DMUL, 1, 2 } } },
10285   { SH4A_INSN_DMULUL_COMPACT, & sh4a_sh4a_model::model_dmulul_compact_before, & sh4a_sh4a_model::model_dmulul_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_DMUL, 1, 2 } } },
10286   { SH4A_INSN_DT_COMPACT, & sh4a_sh4a_model::model_dt_compact_before, & sh4a_sh4a_model::model_dt_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10287   { SH4A_INSN_EXTSB_COMPACT, & sh4a_sh4a_model::model_extsb_compact_before, & sh4a_sh4a_model::model_extsb_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10288   { SH4A_INSN_EXTSW_COMPACT, & sh4a_sh4a_model::model_extsw_compact_before, & sh4a_sh4a_model::model_extsw_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10289   { SH4A_INSN_EXTUB_COMPACT, & sh4a_sh4a_model::model_extub_compact_before, & sh4a_sh4a_model::model_extub_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10290   { SH4A_INSN_EXTUW_COMPACT, & sh4a_sh4a_model::model_extuw_compact_before, & sh4a_sh4a_model::model_extuw_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10291   { SH4A_INSN_FABS_COMPACT, & sh4a_sh4a_model::model_fabs_compact_before, & sh4a_sh4a_model::model_fabs_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR_0, 0, 0 } } },
10292   { SH4A_INSN_FADD_COMPACT, & sh4a_sh4a_model::model_fadd_compact_before, & sh4a_sh4a_model::model_fadd_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR, 0, 0 } } },
10293   { SH4A_INSN_FCMPEQ_COMPACT, & sh4a_sh4a_model::model_fcmpeq_compact_before, & sh4a_sh4a_model::model_fcmpeq_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FCMP, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU, 0, 0 } } },
10294   { SH4A_INSN_FCMPGT_COMPACT, & sh4a_sh4a_model::model_fcmpgt_compact_before, & sh4a_sh4a_model::model_fcmpgt_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FCMP, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU, 0, 0 } } },
10295   { SH4A_INSN_FDIV_COMPACT, & sh4a_sh4a_model::model_fdiv_compact_before, & sh4a_sh4a_model::model_fdiv_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FDIV, 0, 0 } } },
10296   { SH4A_INSN_FIPR_COMPACT, & sh4a_sh4a_model::model_fipr_compact_before, & sh4a_sh4a_model::model_fipr_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FIPR, 0, 0 } } },
10297   { SH4A_INSN_FLDS_COMPACT, & sh4a_sh4a_model::model_flds_compact_before, & sh4a_sh4a_model::model_flds_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FLDS_FPUL, 0, 0 } } },
10298   { SH4A_INSN_FLDI0_COMPACT, & sh4a_sh4a_model::model_fldi0_compact_before, & sh4a_sh4a_model::model_fldi0_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR_0, 0, 0 } } },
10299   { SH4A_INSN_FLDI1_COMPACT, & sh4a_sh4a_model::model_fldi1_compact_before, & sh4a_sh4a_model::model_fldi1_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR_0, 0, 0 } } },
10300   { SH4A_INSN_FLOAT_COMPACT, & sh4a_sh4a_model::model_float_compact_before, & sh4a_sh4a_model::model_float_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FPUL, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR, 0, 0 } } },
10301   { SH4A_INSN_FMAC_COMPACT, & sh4a_sh4a_model::model_fmac_compact_before, & sh4a_sh4a_model::model_fmac_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR, 0, 0 } } },
10302   { SH4A_INSN_FMOV1_COMPACT, & sh4a_sh4a_model::model_fmov1_compact_before, & sh4a_sh4a_model::model_fmov1_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR_0, 0, 0 } } },
10303   { SH4A_INSN_FMOV2_COMPACT, & sh4a_sh4a_model::model_fmov2_compact_before, & sh4a_sh4a_model::model_fmov2_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_FR, 0, 0 } } },
10304   { SH4A_INSN_FMOV3_COMPACT, & sh4a_sh4a_model::model_fmov3_compact_before, & sh4a_sh4a_model::model_fmov3_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_FR, 0, 0 } } },
10305   { SH4A_INSN_FMOV4_COMPACT, & sh4a_sh4a_model::model_fmov4_compact_before, & sh4a_sh4a_model::model_fmov4_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_FR, 0, 0 } } },
10306   { SH4A_INSN_FMOV5_COMPACT, & sh4a_sh4a_model::model_fmov5_compact_before, & sh4a_sh4a_model::model_fmov5_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 } } },
10307   { SH4A_INSN_FMOV6_COMPACT, & sh4a_sh4a_model::model_fmov6_compact_before, & sh4a_sh4a_model::model_fmov6_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 } } },
10308   { SH4A_INSN_FMOV7_COMPACT, & sh4a_sh4a_model::model_fmov7_compact_before, & sh4a_sh4a_model::model_fmov7_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 } } },
10309   { SH4A_INSN_FMUL_COMPACT, & sh4a_sh4a_model::model_fmul_compact_before, & sh4a_sh4a_model::model_fmul_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR, 0, 0 } } },
10310   { SH4A_INSN_FNEG_COMPACT, & sh4a_sh4a_model::model_fneg_compact_before, & sh4a_sh4a_model::model_fneg_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR_0, 0, 0 } } },
10311   { SH4A_INSN_FRCHG_COMPACT, & sh4a_sh4a_model::model_frchg_compact_before, & sh4a_sh4a_model::model_frchg_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10312   { SH4A_INSN_FSCHG_COMPACT, & sh4a_sh4a_model::model_fschg_compact_before, & sh4a_sh4a_model::model_fschg_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10313   { SH4A_INSN_FSQRT_COMPACT, & sh4a_sh4a_model::model_fsqrt_compact_before, & sh4a_sh4a_model::model_fsqrt_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FSQRT, 0, 0 } } },
10314   { SH4A_INSN_FSTS_COMPACT, & sh4a_sh4a_model::model_fsts_compact_before, & sh4a_sh4a_model::model_fsts_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FPUL, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR_0, 0, 0 } } },
10315   { SH4A_INSN_FSUB_COMPACT, & sh4a_sh4a_model::model_fsub_compact_before, & sh4a_sh4a_model::model_fsub_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FR, 0, 0 } } },
10316   { SH4A_INSN_FTRC_COMPACT, & sh4a_sh4a_model::model_ftrc_compact_before, & sh4a_sh4a_model::model_ftrc_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_FPUL, 0, 0 } } },
10317   { SH4A_INSN_FTRV_COMPACT, & sh4a_sh4a_model::model_ftrv_compact_before, & sh4a_sh4a_model::model_ftrv_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_FTRV, 0, 0 } } },
10318   { SH4A_INSN_JMP_COMPACT, & sh4a_sh4a_model::model_jmp_compact_before, & sh4a_sh4a_model::model_jmp_compact_after, { { sh4a_sh4a_model::UNIT_U_JMP, 0, 2 } } },
10319   { SH4A_INSN_JSR_COMPACT, & sh4a_sh4a_model::model_jsr_compact_before, & sh4a_sh4a_model::model_jsr_compact_after, { { sh4a_sh4a_model::UNIT_U_JSR, 0, 2 } } },
10320   { SH4A_INSN_LDC_GBR_COMPACT, & sh4a_sh4a_model::model_ldc_gbr_compact_before, & sh4a_sh4a_model::model_ldc_gbr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDC_GBR, 0, 1 } } },
10321   { SH4A_INSN_LDC_VBR_COMPACT, & sh4a_sh4a_model::model_ldc_vbr_compact_before, & sh4a_sh4a_model::model_ldc_vbr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10322   { SH4A_INSN_LDC_SR_COMPACT, & sh4a_sh4a_model::model_ldc_sr_compact_before, & sh4a_sh4a_model::model_ldc_sr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDC_SR, 0, 1 } } },
10323   { SH4A_INSN_LDCL_GBR_COMPACT, & sh4a_sh4a_model::model_ldcl_gbr_compact_before, & sh4a_sh4a_model::model_ldcl_gbr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDCL, 0, 3 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GBR, 0, 0 } } },
10324   { SH4A_INSN_LDCL_VBR_COMPACT, & sh4a_sh4a_model::model_ldcl_vbr_compact_before, & sh4a_sh4a_model::model_ldcl_vbr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDCL_VBR, 0, 3 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_VBR, 0, 0 } } },
10325   { SH4A_INSN_LDS_FPSCR_COMPACT, & sh4a_sh4a_model::model_lds_fpscr_compact_before, & sh4a_sh4a_model::model_lds_fpscr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDS_FPSCR, 0, 3 } } },
10326   { SH4A_INSN_LDSL_FPSCR_COMPACT, & sh4a_sh4a_model::model_ldsl_fpscr_compact_before, & sh4a_sh4a_model::model_ldsl_fpscr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDS_FPSCR, 0, 3 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDSL_FPSCR, 0, 0 } } },
10327   { SH4A_INSN_LDS_FPUL_COMPACT, & sh4a_sh4a_model::model_lds_fpul_compact_before, & sh4a_sh4a_model::model_lds_fpul_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_FPUL, 0, 0 } } },
10328   { SH4A_INSN_LDSL_FPUL_COMPACT, & sh4a_sh4a_model::model_ldsl_fpul_compact_before, & sh4a_sh4a_model::model_ldsl_fpul_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_FPUL, 0, 0 } } },
10329   { SH4A_INSN_LDS_MACH_COMPACT, & sh4a_sh4a_model::model_lds_mach_compact_before, & sh4a_sh4a_model::model_lds_mach_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_MAC, 0, 0 } } },
10330   { SH4A_INSN_LDSL_MACH_COMPACT, & sh4a_sh4a_model::model_ldsl_mach_compact_before, & sh4a_sh4a_model::model_ldsl_mach_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_MAC, 0, 0 } } },
10331   { SH4A_INSN_LDS_MACL_COMPACT, & sh4a_sh4a_model::model_lds_macl_compact_before, & sh4a_sh4a_model::model_lds_macl_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_MAC, 0, 0 } } },
10332   { SH4A_INSN_LDSL_MACL_COMPACT, & sh4a_sh4a_model::model_ldsl_macl_compact_before, & sh4a_sh4a_model::model_ldsl_macl_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_MAC, 0, 0 } } },
10333   { SH4A_INSN_LDS_PR_COMPACT, & sh4a_sh4a_model::model_lds_pr_compact_before, & sh4a_sh4a_model::model_lds_pr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDS_PR, 0, 1 } } },
10334   { SH4A_INSN_LDSL_PR_COMPACT, & sh4a_sh4a_model::model_ldsl_pr_compact_before, & sh4a_sh4a_model::model_ldsl_pr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDS_PR, 0, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_PR, 0, 0 } } },
10335   { SH4A_INSN_MACL_COMPACT, & sh4a_sh4a_model::model_macl_compact_before, & sh4a_sh4a_model::model_macl_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_MACL, 1, 2 } } },
10336   { SH4A_INSN_MACW_COMPACT, & sh4a_sh4a_model::model_macw_compact_before, & sh4a_sh4a_model::model_macw_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_MACW, 1, 2 } } },
10337   { SH4A_INSN_MOV_COMPACT, & sh4a_sh4a_model::model_mov_compact_before, & sh4a_sh4a_model::model_mov_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10338   { SH4A_INSN_MOVI_COMPACT, & sh4a_sh4a_model::model_movi_compact_before, & sh4a_sh4a_model::model_movi_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10339   { SH4A_INSN_MOVB1_COMPACT, & sh4a_sh4a_model::model_movb1_compact_before, & sh4a_sh4a_model::model_movb1_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10340   { SH4A_INSN_MOVB2_COMPACT, & sh4a_sh4a_model::model_movb2_compact_before, & sh4a_sh4a_model::model_movb2_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10341   { SH4A_INSN_MOVB3_COMPACT, & sh4a_sh4a_model::model_movb3_compact_before, & sh4a_sh4a_model::model_movb3_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10342   { SH4A_INSN_MOVB4_COMPACT, & sh4a_sh4a_model::model_movb4_compact_before, & sh4a_sh4a_model::model_movb4_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SX, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10343   { SH4A_INSN_MOVB5_COMPACT, & sh4a_sh4a_model::model_movb5_compact_before, & sh4a_sh4a_model::model_movb5_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10344   { SH4A_INSN_MOVB6_COMPACT, & sh4a_sh4a_model::model_movb6_compact_before, & sh4a_sh4a_model::model_movb6_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10345   { SH4A_INSN_MOVB7_COMPACT, & sh4a_sh4a_model::model_movb7_compact_before, & sh4a_sh4a_model::model_movb7_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10346   { SH4A_INSN_MOVB8_COMPACT, & sh4a_sh4a_model::model_movb8_compact_before, & sh4a_sh4a_model::model_movb8_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10347   { SH4A_INSN_MOVB9_COMPACT, & sh4a_sh4a_model::model_movb9_compact_before, & sh4a_sh4a_model::model_movb9_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10348   { SH4A_INSN_MOVB10_COMPACT, & sh4a_sh4a_model::model_movb10_compact_before, & sh4a_sh4a_model::model_movb10_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10349   { SH4A_INSN_MOVL1_COMPACT, & sh4a_sh4a_model::model_movl1_compact_before, & sh4a_sh4a_model::model_movl1_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10350   { SH4A_INSN_MOVL2_COMPACT, & sh4a_sh4a_model::model_movl2_compact_before, & sh4a_sh4a_model::model_movl2_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10351   { SH4A_INSN_MOVL3_COMPACT, & sh4a_sh4a_model::model_movl3_compact_before, & sh4a_sh4a_model::model_movl3_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10352   { SH4A_INSN_MOVL4_COMPACT, & sh4a_sh4a_model::model_movl4_compact_before, & sh4a_sh4a_model::model_movl4_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SX, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10353   { SH4A_INSN_MOVL5_COMPACT, & sh4a_sh4a_model::model_movl5_compact_before, & sh4a_sh4a_model::model_movl5_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10354   { SH4A_INSN_MOVL6_COMPACT, & sh4a_sh4a_model::model_movl6_compact_before, & sh4a_sh4a_model::model_movl6_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10355   { SH4A_INSN_MOVL7_COMPACT, & sh4a_sh4a_model::model_movl7_compact_before, & sh4a_sh4a_model::model_movl7_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10356   { SH4A_INSN_MOVL8_COMPACT, & sh4a_sh4a_model::model_movl8_compact_before, & sh4a_sh4a_model::model_movl8_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10357   { SH4A_INSN_MOVL9_COMPACT, & sh4a_sh4a_model::model_movl9_compact_before, & sh4a_sh4a_model::model_movl9_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10358   { SH4A_INSN_MOVL10_COMPACT, & sh4a_sh4a_model::model_movl10_compact_before, & sh4a_sh4a_model::model_movl10_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10359   { SH4A_INSN_MOVL11_COMPACT, & sh4a_sh4a_model::model_movl11_compact_before, & sh4a_sh4a_model::model_movl11_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10360   { SH4A_INSN_MOVW1_COMPACT, & sh4a_sh4a_model::model_movw1_compact_before, & sh4a_sh4a_model::model_movw1_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10361   { SH4A_INSN_MOVW2_COMPACT, & sh4a_sh4a_model::model_movw2_compact_before, & sh4a_sh4a_model::model_movw2_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10362   { SH4A_INSN_MOVW3_COMPACT, & sh4a_sh4a_model::model_movw3_compact_before, & sh4a_sh4a_model::model_movw3_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10363   { SH4A_INSN_MOVW4_COMPACT, & sh4a_sh4a_model::model_movw4_compact_before, & sh4a_sh4a_model::model_movw4_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SX, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10364   { SH4A_INSN_MOVW5_COMPACT, & sh4a_sh4a_model::model_movw5_compact_before, & sh4a_sh4a_model::model_movw5_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10365   { SH4A_INSN_MOVW6_COMPACT, & sh4a_sh4a_model::model_movw6_compact_before, & sh4a_sh4a_model::model_movw6_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10366   { SH4A_INSN_MOVW7_COMPACT, & sh4a_sh4a_model::model_movw7_compact_before, & sh4a_sh4a_model::model_movw7_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10367   { SH4A_INSN_MOVW8_COMPACT, & sh4a_sh4a_model::model_movw8_compact_before, & sh4a_sh4a_model::model_movw8_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10368   { SH4A_INSN_MOVW9_COMPACT, & sh4a_sh4a_model::model_movw9_compact_before, & sh4a_sh4a_model::model_movw9_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10369   { SH4A_INSN_MOVW10_COMPACT, & sh4a_sh4a_model::model_movw10_compact_before, & sh4a_sh4a_model::model_movw10_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10370   { SH4A_INSN_MOVW11_COMPACT, & sh4a_sh4a_model::model_movw11_compact_before, & sh4a_sh4a_model::model_movw11_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10371   { SH4A_INSN_MOVA_COMPACT, & sh4a_sh4a_model::model_mova_compact_before, & sh4a_sh4a_model::model_mova_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10372   { SH4A_INSN_MOVCAL_COMPACT, & sh4a_sh4a_model::model_movcal_compact_before, & sh4a_sh4a_model::model_movcal_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_OCB, 0, 6 } } },
10373   { SH4A_INSN_MOVCOL_COMPACT, & sh4a_sh4a_model::model_movcol_compact_before, & sh4a_sh4a_model::model_movcol_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10374   { SH4A_INSN_MOVT_COMPACT, & sh4a_sh4a_model::model_movt_compact_before, & sh4a_sh4a_model::model_movt_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10375   { SH4A_INSN_MOVUAL_COMPACT, & sh4a_sh4a_model::model_movual_compact_before, & sh4a_sh4a_model::model_movual_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 1 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10376   { SH4A_INSN_MOVUAL2_COMPACT, & sh4a_sh4a_model::model_movual2_compact_before, & sh4a_sh4a_model::model_movual2_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 1 }, { sh4a_sh4a_model::UNIT_U_LOAD_GR, 0, 0 } } },
10377   { SH4A_INSN_MULL_COMPACT, & sh4a_sh4a_model::model_mull_compact_before, & sh4a_sh4a_model::model_mull_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_MULL, 1, 2 } } },
10378   { SH4A_INSN_MULSW_COMPACT, & sh4a_sh4a_model::model_mulsw_compact_before, & sh4a_sh4a_model::model_mulsw_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_MULSW, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MULTIPLY, 1, 2 } } },
10379   { SH4A_INSN_MULUW_COMPACT, & sh4a_sh4a_model::model_muluw_compact_before, & sh4a_sh4a_model::model_muluw_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_MULSW, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MULTIPLY, 1, 2 } } },
10380   { SH4A_INSN_NEG_COMPACT, & sh4a_sh4a_model::model_neg_compact_before, & sh4a_sh4a_model::model_neg_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10381   { SH4A_INSN_NEGC_COMPACT, & sh4a_sh4a_model::model_negc_compact_before, & sh4a_sh4a_model::model_negc_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10382   { SH4A_INSN_NOP_COMPACT, & sh4a_sh4a_model::model_nop_compact_before, & sh4a_sh4a_model::model_nop_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10383   { SH4A_INSN_NOT_COMPACT, & sh4a_sh4a_model::model_not_compact_before, & sh4a_sh4a_model::model_not_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10384   { SH4A_INSN_OCBI_COMPACT, & sh4a_sh4a_model::model_ocbi_compact_before, & sh4a_sh4a_model::model_ocbi_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_OCB, 0, 1 } } },
10385   { SH4A_INSN_OCBP_COMPACT, & sh4a_sh4a_model::model_ocbp_compact_before, & sh4a_sh4a_model::model_ocbp_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_OCB, 0, 4 } } },
10386   { SH4A_INSN_OCBWB_COMPACT, & sh4a_sh4a_model::model_ocbwb_compact_before, & sh4a_sh4a_model::model_ocbwb_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_OCB, 0, 4 } } },
10387   { SH4A_INSN_OR_COMPACT, & sh4a_sh4a_model::model_or_compact_before, & sh4a_sh4a_model::model_or_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10388   { SH4A_INSN_ORI_COMPACT, & sh4a_sh4a_model::model_ori_compact_before, & sh4a_sh4a_model::model_ori_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10389   { SH4A_INSN_ORB_COMPACT, & sh4a_sh4a_model::model_orb_compact_before, & sh4a_sh4a_model::model_orb_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOGIC_B, 0, 3 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10390   { SH4A_INSN_PREF_COMPACT, & sh4a_sh4a_model::model_pref_compact_before, & sh4a_sh4a_model::model_pref_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10391   { SH4A_INSN_ROTCL_COMPACT, & sh4a_sh4a_model::model_rotcl_compact_before, & sh4a_sh4a_model::model_rotcl_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10392   { SH4A_INSN_ROTCR_COMPACT, & sh4a_sh4a_model::model_rotcr_compact_before, & sh4a_sh4a_model::model_rotcr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10393   { SH4A_INSN_ROTL_COMPACT, & sh4a_sh4a_model::model_rotl_compact_before, & sh4a_sh4a_model::model_rotl_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10394   { SH4A_INSN_ROTR_COMPACT, & sh4a_sh4a_model::model_rotr_compact_before, & sh4a_sh4a_model::model_rotr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10395   { SH4A_INSN_RTS_COMPACT, & sh4a_sh4a_model::model_rts_compact_before, & sh4a_sh4a_model::model_rts_compact_after, { { sh4a_sh4a_model::UNIT_U_JMP, 0, 2 } } },
10396   { SH4A_INSN_SETS_COMPACT, & sh4a_sh4a_model::model_sets_compact_before, & sh4a_sh4a_model::model_sets_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10397   { SH4A_INSN_SETT_COMPACT, & sh4a_sh4a_model::model_sett_compact_before, & sh4a_sh4a_model::model_sett_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10398   { SH4A_INSN_SHAD_COMPACT, & sh4a_sh4a_model::model_shad_compact_before, & sh4a_sh4a_model::model_shad_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10399   { SH4A_INSN_SHAL_COMPACT, & sh4a_sh4a_model::model_shal_compact_before, & sh4a_sh4a_model::model_shal_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10400   { SH4A_INSN_SHAR_COMPACT, & sh4a_sh4a_model::model_shar_compact_before, & sh4a_sh4a_model::model_shar_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10401   { SH4A_INSN_SHLD_COMPACT, & sh4a_sh4a_model::model_shld_compact_before, & sh4a_sh4a_model::model_shld_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10402   { SH4A_INSN_SHLL_COMPACT, & sh4a_sh4a_model::model_shll_compact_before, & sh4a_sh4a_model::model_shll_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10403   { SH4A_INSN_SHLL2_COMPACT, & sh4a_sh4a_model::model_shll2_compact_before, & sh4a_sh4a_model::model_shll2_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10404   { SH4A_INSN_SHLL8_COMPACT, & sh4a_sh4a_model::model_shll8_compact_before, & sh4a_sh4a_model::model_shll8_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10405   { SH4A_INSN_SHLL16_COMPACT, & sh4a_sh4a_model::model_shll16_compact_before, & sh4a_sh4a_model::model_shll16_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10406   { SH4A_INSN_SHLR_COMPACT, & sh4a_sh4a_model::model_shlr_compact_before, & sh4a_sh4a_model::model_shlr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10407   { SH4A_INSN_SHLR2_COMPACT, & sh4a_sh4a_model::model_shlr2_compact_before, & sh4a_sh4a_model::model_shlr2_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10408   { SH4A_INSN_SHLR8_COMPACT, & sh4a_sh4a_model::model_shlr8_compact_before, & sh4a_sh4a_model::model_shlr8_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10409   { SH4A_INSN_SHLR16_COMPACT, & sh4a_sh4a_model::model_shlr16_compact_before, & sh4a_sh4a_model::model_shlr16_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10410   { SH4A_INSN_STC_GBR_COMPACT, & sh4a_sh4a_model::model_stc_gbr_compact_before, & sh4a_sh4a_model::model_stc_gbr_compact_after, { { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10411   { SH4A_INSN_STC_VBR_COMPACT, & sh4a_sh4a_model::model_stc_vbr_compact_before, & sh4a_sh4a_model::model_stc_vbr_compact_after, { { sh4a_sh4a_model::UNIT_U_STC_VBR, 0, 1 } } },
10412   { SH4A_INSN_STCL_GBR_COMPACT, & sh4a_sh4a_model::model_stcl_gbr_compact_before, & sh4a_sh4a_model::model_stcl_gbr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDCL, 0, 2 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10413   { SH4A_INSN_STCL_VBR_COMPACT, & sh4a_sh4a_model::model_stcl_vbr_compact_before, & sh4a_sh4a_model::model_stcl_vbr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LDCL, 0, 2 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10414   { SH4A_INSN_STS_FPSCR_COMPACT, & sh4a_sh4a_model::model_sts_fpscr_compact_before, & sh4a_sh4a_model::model_sts_fpscr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FPSCR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_LOAD_GR, 0, 0 } } },
10415   { SH4A_INSN_STSL_FPSCR_COMPACT, & sh4a_sh4a_model::model_stsl_fpscr_compact_before, & sh4a_sh4a_model::model_stsl_fpscr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_FPSCR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 } } },
10416   { SH4A_INSN_STS_FPUL_COMPACT, & sh4a_sh4a_model::model_sts_fpul_compact_before, & sh4a_sh4a_model::model_sts_fpul_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FPUL, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_LOAD_GR, 0, 0 } } },
10417   { SH4A_INSN_STSL_FPUL_COMPACT, & sh4a_sh4a_model::model_stsl_fpul_compact_before, & sh4a_sh4a_model::model_stsl_fpul_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_FPUL, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MAYBE_FPU, 0, 0 }, { sh4a_sh4a_model::UNIT_U_FPU_MEMORY_ACCESS, 0, 0 } } },
10418   { SH4A_INSN_STS_MACH_COMPACT, & sh4a_sh4a_model::model_sts_mach_compact_before, & sh4a_sh4a_model::model_sts_mach_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_WRITE_BACK, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10419   { SH4A_INSN_STSL_MACH_COMPACT, & sh4a_sh4a_model::model_stsl_mach_compact_before, & sh4a_sh4a_model::model_stsl_mach_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_WRITE_BACK, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10420   { SH4A_INSN_STS_MACL_COMPACT, & sh4a_sh4a_model::model_sts_macl_compact_before, & sh4a_sh4a_model::model_sts_macl_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_WRITE_BACK, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10421   { SH4A_INSN_STSL_MACL_COMPACT, & sh4a_sh4a_model::model_stsl_macl_compact_before, & sh4a_sh4a_model::model_stsl_macl_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_WRITE_BACK, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10422   { SH4A_INSN_STS_PR_COMPACT, & sh4a_sh4a_model::model_sts_pr_compact_before, & sh4a_sh4a_model::model_sts_pr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_PR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_STS_PR, 0, 1 } } },
10423   { SH4A_INSN_STSL_PR_COMPACT, & sh4a_sh4a_model::model_stsl_pr_compact_before, & sh4a_sh4a_model::model_stsl_pr_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_PR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_STS_PR, 0, 1 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10424   { SH4A_INSN_SUB_COMPACT, & sh4a_sh4a_model::model_sub_compact_before, & sh4a_sh4a_model::model_sub_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10425   { SH4A_INSN_SUBC_COMPACT, & sh4a_sh4a_model::model_subc_compact_before, & sh4a_sh4a_model::model_subc_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10426   { SH4A_INSN_SUBV_COMPACT, & sh4a_sh4a_model::model_subv_compact_before, & sh4a_sh4a_model::model_subv_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10427   { SH4A_INSN_SWAPB_COMPACT, & sh4a_sh4a_model::model_swapb_compact_before, & sh4a_sh4a_model::model_swapb_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10428   { SH4A_INSN_SWAPW_COMPACT, & sh4a_sh4a_model::model_swapw_compact_before, & sh4a_sh4a_model::model_swapw_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10429   { SH4A_INSN_TASB_COMPACT, & sh4a_sh4a_model::model_tasb_compact_before, & sh4a_sh4a_model::model_tasb_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_TAS, 1, 4 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10430   { SH4A_INSN_TRAPA_COMPACT, & sh4a_sh4a_model::model_trapa_compact_before, & sh4a_sh4a_model::model_trapa_compact_after, { { sh4a_sh4a_model::UNIT_U_TRAP, 0, 8 } } },
10431   { SH4A_INSN_TST_COMPACT, & sh4a_sh4a_model::model_tst_compact_before, & sh4a_sh4a_model::model_tst_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10432   { SH4A_INSN_TSTI_COMPACT, & sh4a_sh4a_model::model_tsti_compact_before, & sh4a_sh4a_model::model_tsti_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
10433   { SH4A_INSN_TSTB_COMPACT, & sh4a_sh4a_model::model_tstb_compact_before, & sh4a_sh4a_model::model_tstb_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_TBIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 3 }, { sh4a_sh4a_model::UNIT_U_SX, 1, 3 }, { sh4a_sh4a_model::UNIT_U_SET_SR_BIT, 0, 0 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10434   { SH4A_INSN_XOR_COMPACT, & sh4a_sh4a_model::model_xor_compact_before, & sh4a_sh4a_model::model_xor_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10435   { SH4A_INSN_XORI_COMPACT, & sh4a_sh4a_model::model_xori_compact_before, & sh4a_sh4a_model::model_xori_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 } } },
10436   { SH4A_INSN_XORB_COMPACT, & sh4a_sh4a_model::model_xorb_compact_before, & sh4a_sh4a_model::model_xorb_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_LOGIC_B, 0, 3 }, { sh4a_sh4a_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
10437   { SH4A_INSN_XTRCT_COMPACT, & sh4a_sh4a_model::model_xtrct_compact_before, & sh4a_sh4a_model::model_xtrct_compact_after, { { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_USE_GR, 0, 0 }, { sh4a_sh4a_model::UNIT_U_EXEC, 1, 1 }, { sh4a_sh4a_model::UNIT_U_SHIFT, 0, 0 } } },
10438 };
10439