OSDN Git Service

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