OSDN Git Service

403dd2b400a108cf60beb278a20c58c64e359d1d
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / cgen-cpu / sh / sh2-model.cxx
1 /* Simulator model support for sh2.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright (C) 2000-2009 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 "sh2.h"
17
18 using namespace sh2; // 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 sh2_sh2_model::sh2_sh2_model (sh2_cpu *cpu)
26   : cgen_model (cpu)
27 {
28 }
29
30 UINT
31 sh2_sh2_model::model_add_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
32 {
33 #define FLD(f) abuf->fields.sfmt_macl_compact.f
34   const sh2_scache* abuf = sem;
35   const sh2_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 sh2_sh2_model::model_add_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
56 {
57 #define FLD(f) abuf->fields.sfmt_macl_compact.f
58   const sh2_scache* abuf = sem;
59   const sh2_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 sh2_sh2_model::model_addi_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
86 {
87 #define FLD(f) abuf->fields.sfmt_addi_compact.f
88   const sh2_scache* abuf = sem;
89   const sh2_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 sh2_sh2_model::model_addi_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
105 {
106 #define FLD(f) abuf->fields.sfmt_addi_compact.f
107   const sh2_scache* abuf = sem;
108   const sh2_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 sh2_sh2_model::model_addc_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
128 {
129 #define FLD(f) abuf->fields.sfmt_macl_compact.f
130   const sh2_scache* abuf = sem;
131   const sh2_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 sh2_sh2_model::model_addc_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
158 {
159 #define FLD(f) abuf->fields.sfmt_macl_compact.f
160   const sh2_scache* abuf = sem;
161   const sh2_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 sh2_sh2_model::model_addv_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
198 {
199 #define FLD(f) abuf->fields.sfmt_macl_compact.f
200   const sh2_scache* abuf = sem;
201   const sh2_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 sh2_sh2_model::model_addv_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
228 {
229 #define FLD(f) abuf->fields.sfmt_macl_compact.f
230   const sh2_scache* abuf = sem;
231   const sh2_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 sh2_sh2_model::model_and_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
268 {
269 #define FLD(f) abuf->fields.sfmt_and_compact.f
270   const sh2_scache* abuf = sem;
271   const sh2_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 sh2_sh2_model::model_and_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
292 {
293 #define FLD(f) abuf->fields.sfmt_and_compact.f
294   const sh2_scache* abuf = sem;
295   const sh2_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 sh2_sh2_model::model_andi_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
322 {
323 #define FLD(f) abuf->fields.sfmt_andi_compact.f
324   const sh2_scache* abuf = sem;
325   const sh2_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 sh2_sh2_model::model_andi_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
341 {
342 #define FLD(f) abuf->fields.sfmt_andi_compact.f
343   const sh2_scache* abuf = sem;
344   const sh2_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 sh2_sh2_model::model_andb_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
364 {
365 #define FLD(f) abuf->fields.sfmt_andi_compact.f
366   const sh2_scache* abuf = sem;
367   const sh2_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 sh2_sh2_model::model_andb_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
386 {
387 #define FLD(f) abuf->fields.sfmt_andi_compact.f
388   const sh2_scache* abuf = sem;
389   const sh2_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 sh2_sh2_model::model_bf_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
414 {
415 #define FLD(f) abuf->fields.sfmt_bf_compact.f
416   const sh2_scache* abuf = sem;
417   const sh2_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 sh2_sh2_model::model_bf_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
431 {
432 #define FLD(f) abuf->fields.sfmt_bf_compact.f
433   const sh2_scache* abuf = sem;
434   const sh2_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 sh2_sh2_model::model_bfs_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
453 {
454 #define FLD(f) abuf->fields.sfmt_bf_compact.f
455   const sh2_scache* abuf = sem;
456   const sh2_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 sh2_sh2_model::model_bfs_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
470 {
471 #define FLD(f) abuf->fields.sfmt_bf_compact.f
472   const sh2_scache* abuf = sem;
473   const sh2_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 sh2_sh2_model::model_bra_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
492 {
493 #define FLD(f) abuf->fields.sfmt_bra_compact.f
494   const sh2_scache* abuf = sem;
495   const sh2_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 sh2_sh2_model::model_bra_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
506 {
507 #define FLD(f) abuf->fields.sfmt_bra_compact.f
508   const sh2_scache* abuf = sem;
509   const sh2_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 sh2_sh2_model::model_braf_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
523 {
524 #define FLD(f) abuf->fields.sfmt_addi_compact.f
525   const sh2_scache* abuf = sem;
526   const sh2_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 sh2_sh2_model::model_braf_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
542 {
543 #define FLD(f) abuf->fields.sfmt_addi_compact.f
544   const sh2_scache* abuf = sem;
545   const sh2_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 sh2_sh2_model::model_bsr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
566 {
567 #define FLD(f) abuf->fields.sfmt_bra_compact.f
568   const sh2_scache* abuf = sem;
569   const sh2_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 sh2_sh2_model::model_bsr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
580 {
581 #define FLD(f) abuf->fields.sfmt_bra_compact.f
582   const sh2_scache* abuf = sem;
583   const sh2_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 sh2_sh2_model::model_bsrf_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
597 {
598 #define FLD(f) abuf->fields.sfmt_addi_compact.f
599   const sh2_scache* abuf = sem;
600   const sh2_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 sh2_sh2_model::model_bsrf_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
616 {
617 #define FLD(f) abuf->fields.sfmt_addi_compact.f
618   const sh2_scache* abuf = sem;
619   const sh2_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 sh2_sh2_model::model_bt_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
640 {
641 #define FLD(f) abuf->fields.sfmt_bf_compact.f
642   const sh2_scache* abuf = sem;
643   const sh2_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 sh2_sh2_model::model_bt_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
657 {
658 #define FLD(f) abuf->fields.sfmt_bf_compact.f
659   const sh2_scache* abuf = sem;
660   const sh2_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 sh2_sh2_model::model_bts_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
679 {
680 #define FLD(f) abuf->fields.sfmt_bf_compact.f
681   const sh2_scache* abuf = sem;
682   const sh2_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 sh2_sh2_model::model_bts_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
696 {
697 #define FLD(f) abuf->fields.sfmt_bf_compact.f
698   const sh2_scache* abuf = sem;
699   const sh2_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 sh2_sh2_model::model_clrmac_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
718 {
719 #define FLD(f) abuf->fields.fmt_empty.f
720   const sh2_scache* abuf = sem;
721   const sh2_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 sh2_sh2_model::model_clrmac_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
738 {
739 #define FLD(f) abuf->fields.fmt_empty.f
740   const sh2_scache* abuf = sem;
741   const sh2_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 sh2_sh2_model::model_clrt_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
764 {
765 #define FLD(f) abuf->fields.fmt_empty.f
766   const sh2_scache* abuf = sem;
767   const sh2_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_use_tbit_before (current_cpu, idesc, 1);
774   }
775   {
776     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 2);
777   }
778   return cycles;
779 #undef FLD
780 }
781
782 UINT
783 sh2_sh2_model::model_clrt_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
784 {
785 #define FLD(f) abuf->fields.fmt_empty.f
786   const sh2_scache* abuf = sem;
787   const sh2_idesc* idesc = abuf->idesc;
788   int cycles = 0;
789   {
790     int referenced = 0;
791     unsigned long long insn_referenced = abuf->written;
792     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
793   }
794   {
795     int referenced = 0;
796     unsigned long long insn_referenced = abuf->written;
797     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
798   }
799   {
800     int referenced = 0;
801     unsigned long long insn_referenced = abuf->written;
802     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 2, referenced);
803   }
804   return cycles;
805 #undef FLD
806 }
807
808 UINT
809 sh2_sh2_model::model_cmpeq_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
810 {
811 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
812   const sh2_scache* abuf = sem;
813   const sh2_idesc* idesc = abuf->idesc;
814   int cycles = 0;
815   {
816     INT in_usereg = -1;
817     in_usereg = FLD (in_rn);
818     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
819   }
820   {
821     INT in_usereg = -1;
822     in_usereg = FLD (in_rm);
823     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
824   }
825   {
826     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
827   }
828   {
829     cycles += model_u_exec_before (current_cpu, idesc, 3);
830   }
831   {
832     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
833   }
834   return cycles;
835 #undef FLD
836 }
837
838 UINT
839 sh2_sh2_model::model_cmpeq_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
840 {
841 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
842   const sh2_scache* abuf = sem;
843   const sh2_idesc* idesc = abuf->idesc;
844   int cycles = 0;
845   {
846     int referenced = 0;
847     unsigned long long insn_referenced = abuf->written;
848     INT in_usereg = -1;
849     in_usereg = FLD (in_rn);
850     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
851   }
852   {
853     int referenced = 0;
854     unsigned long long insn_referenced = abuf->written;
855     INT in_usereg = -1;
856     in_usereg = FLD (in_rm);
857     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
858   }
859   {
860     int referenced = 0;
861     unsigned long long insn_referenced = abuf->written;
862     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
863   }
864   {
865     int referenced = 0;
866     unsigned long long insn_referenced = abuf->written;
867     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
868   }
869   {
870     int referenced = 0;
871     unsigned long long insn_referenced = abuf->written;
872     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
873   }
874   return cycles;
875 #undef FLD
876 }
877
878 UINT
879 sh2_sh2_model::model_cmpeqi_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
880 {
881 #define FLD(f) abuf->fields.sfmt_andi_compact.f
882   const sh2_scache* abuf = sem;
883   const sh2_idesc* idesc = abuf->idesc;
884   int cycles = 0;
885   {
886     INT in_usereg = -1;
887     in_usereg = FLD (in_r0);
888     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
889   }
890   {
891     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
892   }
893   {
894     cycles += model_u_exec_before (current_cpu, idesc, 2);
895   }
896   {
897     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
898   }
899   return cycles;
900 #undef FLD
901 }
902
903 UINT
904 sh2_sh2_model::model_cmpeqi_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
905 {
906 #define FLD(f) abuf->fields.sfmt_andi_compact.f
907   const sh2_scache* abuf = sem;
908   const sh2_idesc* idesc = abuf->idesc;
909   int cycles = 0;
910   {
911     int referenced = 0;
912     unsigned long long insn_referenced = abuf->written;
913     INT in_usereg = -1;
914     in_usereg = FLD (in_r0);
915     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
916   }
917   {
918     int referenced = 0;
919     unsigned long long insn_referenced = abuf->written;
920     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
921   }
922   {
923     int referenced = 0;
924     unsigned long long insn_referenced = abuf->written;
925     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
926   }
927   {
928     int referenced = 0;
929     unsigned long long insn_referenced = abuf->written;
930     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
931   }
932   return cycles;
933 #undef FLD
934 }
935
936 UINT
937 sh2_sh2_model::model_cmpge_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
938 {
939 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
940   const sh2_scache* abuf = sem;
941   const sh2_idesc* idesc = abuf->idesc;
942   int cycles = 0;
943   {
944     INT in_usereg = -1;
945     in_usereg = FLD (in_rn);
946     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
947   }
948   {
949     INT in_usereg = -1;
950     in_usereg = FLD (in_rm);
951     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
952   }
953   {
954     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
955   }
956   {
957     cycles += model_u_exec_before (current_cpu, idesc, 3);
958   }
959   {
960     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
961   }
962   return cycles;
963 #undef FLD
964 }
965
966 UINT
967 sh2_sh2_model::model_cmpge_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
968 {
969 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
970   const sh2_scache* abuf = sem;
971   const sh2_idesc* idesc = abuf->idesc;
972   int cycles = 0;
973   {
974     int referenced = 0;
975     unsigned long long insn_referenced = abuf->written;
976     INT in_usereg = -1;
977     in_usereg = FLD (in_rn);
978     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
979   }
980   {
981     int referenced = 0;
982     unsigned long long insn_referenced = abuf->written;
983     INT in_usereg = -1;
984     in_usereg = FLD (in_rm);
985     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
986   }
987   {
988     int referenced = 0;
989     unsigned long long insn_referenced = abuf->written;
990     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
991   }
992   {
993     int referenced = 0;
994     unsigned long long insn_referenced = abuf->written;
995     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
996   }
997   {
998     int referenced = 0;
999     unsigned long long insn_referenced = abuf->written;
1000     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1001   }
1002   return cycles;
1003 #undef FLD
1004 }
1005
1006 UINT
1007 sh2_sh2_model::model_cmpgt_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1008 {
1009 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1010   const sh2_scache* abuf = sem;
1011   const sh2_idesc* idesc = abuf->idesc;
1012   int cycles = 0;
1013   {
1014     INT in_usereg = -1;
1015     in_usereg = FLD (in_rn);
1016     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1017   }
1018   {
1019     INT in_usereg = -1;
1020     in_usereg = FLD (in_rm);
1021     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1022   }
1023   {
1024     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1025   }
1026   {
1027     cycles += model_u_exec_before (current_cpu, idesc, 3);
1028   }
1029   {
1030     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1031   }
1032   return cycles;
1033 #undef FLD
1034 }
1035
1036 UINT
1037 sh2_sh2_model::model_cmpgt_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1038 {
1039 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1040   const sh2_scache* abuf = sem;
1041   const sh2_idesc* idesc = abuf->idesc;
1042   int cycles = 0;
1043   {
1044     int referenced = 0;
1045     unsigned long long insn_referenced = abuf->written;
1046     INT in_usereg = -1;
1047     in_usereg = FLD (in_rn);
1048     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1049   }
1050   {
1051     int referenced = 0;
1052     unsigned long long insn_referenced = abuf->written;
1053     INT in_usereg = -1;
1054     in_usereg = FLD (in_rm);
1055     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1056   }
1057   {
1058     int referenced = 0;
1059     unsigned long long insn_referenced = abuf->written;
1060     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1061   }
1062   {
1063     int referenced = 0;
1064     unsigned long long insn_referenced = abuf->written;
1065     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1066   }
1067   {
1068     int referenced = 0;
1069     unsigned long long insn_referenced = abuf->written;
1070     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1071   }
1072   return cycles;
1073 #undef FLD
1074 }
1075
1076 UINT
1077 sh2_sh2_model::model_cmphi_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1078 {
1079 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1080   const sh2_scache* abuf = sem;
1081   const sh2_idesc* idesc = abuf->idesc;
1082   int cycles = 0;
1083   {
1084     INT in_usereg = -1;
1085     in_usereg = FLD (in_rn);
1086     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1087   }
1088   {
1089     INT in_usereg = -1;
1090     in_usereg = FLD (in_rm);
1091     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1092   }
1093   {
1094     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1095   }
1096   {
1097     cycles += model_u_exec_before (current_cpu, idesc, 3);
1098   }
1099   {
1100     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1101   }
1102   return cycles;
1103 #undef FLD
1104 }
1105
1106 UINT
1107 sh2_sh2_model::model_cmphi_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1108 {
1109 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1110   const sh2_scache* abuf = sem;
1111   const sh2_idesc* idesc = abuf->idesc;
1112   int cycles = 0;
1113   {
1114     int referenced = 0;
1115     unsigned long long insn_referenced = abuf->written;
1116     INT in_usereg = -1;
1117     in_usereg = FLD (in_rn);
1118     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1119   }
1120   {
1121     int referenced = 0;
1122     unsigned long long insn_referenced = abuf->written;
1123     INT in_usereg = -1;
1124     in_usereg = FLD (in_rm);
1125     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1126   }
1127   {
1128     int referenced = 0;
1129     unsigned long long insn_referenced = abuf->written;
1130     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1131   }
1132   {
1133     int referenced = 0;
1134     unsigned long long insn_referenced = abuf->written;
1135     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1136   }
1137   {
1138     int referenced = 0;
1139     unsigned long long insn_referenced = abuf->written;
1140     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1141   }
1142   return cycles;
1143 #undef FLD
1144 }
1145
1146 UINT
1147 sh2_sh2_model::model_cmphs_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1148 {
1149 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1150   const sh2_scache* abuf = sem;
1151   const sh2_idesc* idesc = abuf->idesc;
1152   int cycles = 0;
1153   {
1154     INT in_usereg = -1;
1155     in_usereg = FLD (in_rn);
1156     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1157   }
1158   {
1159     INT in_usereg = -1;
1160     in_usereg = FLD (in_rm);
1161     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1162   }
1163   {
1164     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1165   }
1166   {
1167     cycles += model_u_exec_before (current_cpu, idesc, 3);
1168   }
1169   {
1170     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1171   }
1172   return cycles;
1173 #undef FLD
1174 }
1175
1176 UINT
1177 sh2_sh2_model::model_cmphs_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1178 {
1179 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1180   const sh2_scache* abuf = sem;
1181   const sh2_idesc* idesc = abuf->idesc;
1182   int cycles = 0;
1183   {
1184     int referenced = 0;
1185     unsigned long long insn_referenced = abuf->written;
1186     INT in_usereg = -1;
1187     in_usereg = FLD (in_rn);
1188     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1189   }
1190   {
1191     int referenced = 0;
1192     unsigned long long insn_referenced = abuf->written;
1193     INT in_usereg = -1;
1194     in_usereg = FLD (in_rm);
1195     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1196   }
1197   {
1198     int referenced = 0;
1199     unsigned long long insn_referenced = abuf->written;
1200     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1201   }
1202   {
1203     int referenced = 0;
1204     unsigned long long insn_referenced = abuf->written;
1205     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1206   }
1207   {
1208     int referenced = 0;
1209     unsigned long long insn_referenced = abuf->written;
1210     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1211   }
1212   return cycles;
1213 #undef FLD
1214 }
1215
1216 UINT
1217 sh2_sh2_model::model_cmppl_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1218 {
1219 #define FLD(f) abuf->fields.sfmt_addi_compact.f
1220   const sh2_scache* abuf = sem;
1221   const sh2_idesc* idesc = abuf->idesc;
1222   int cycles = 0;
1223   {
1224     INT in_usereg = -1;
1225     in_usereg = FLD (in_rn);
1226     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1227   }
1228   {
1229     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
1230   }
1231   {
1232     cycles += model_u_exec_before (current_cpu, idesc, 2);
1233   }
1234   {
1235     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
1236   }
1237   return cycles;
1238 #undef FLD
1239 }
1240
1241 UINT
1242 sh2_sh2_model::model_cmppl_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1243 {
1244 #define FLD(f) abuf->fields.sfmt_addi_compact.f
1245   const sh2_scache* abuf = sem;
1246   const sh2_idesc* idesc = abuf->idesc;
1247   int cycles = 0;
1248   {
1249     int referenced = 0;
1250     unsigned long long insn_referenced = abuf->written;
1251     INT in_usereg = -1;
1252     in_usereg = FLD (in_rn);
1253     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1254   }
1255   {
1256     int referenced = 0;
1257     unsigned long long insn_referenced = abuf->written;
1258     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
1259   }
1260   {
1261     int referenced = 0;
1262     unsigned long long insn_referenced = abuf->written;
1263     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
1264   }
1265   {
1266     int referenced = 0;
1267     unsigned long long insn_referenced = abuf->written;
1268     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
1269   }
1270   return cycles;
1271 #undef FLD
1272 }
1273
1274 UINT
1275 sh2_sh2_model::model_cmppz_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1276 {
1277 #define FLD(f) abuf->fields.sfmt_addi_compact.f
1278   const sh2_scache* abuf = sem;
1279   const sh2_idesc* idesc = abuf->idesc;
1280   int cycles = 0;
1281   {
1282     INT in_usereg = -1;
1283     in_usereg = FLD (in_rn);
1284     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1285   }
1286   {
1287     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
1288   }
1289   {
1290     cycles += model_u_exec_before (current_cpu, idesc, 2);
1291   }
1292   {
1293     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
1294   }
1295   return cycles;
1296 #undef FLD
1297 }
1298
1299 UINT
1300 sh2_sh2_model::model_cmppz_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1301 {
1302 #define FLD(f) abuf->fields.sfmt_addi_compact.f
1303   const sh2_scache* abuf = sem;
1304   const sh2_idesc* idesc = abuf->idesc;
1305   int cycles = 0;
1306   {
1307     int referenced = 0;
1308     unsigned long long insn_referenced = abuf->written;
1309     INT in_usereg = -1;
1310     in_usereg = FLD (in_rn);
1311     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1312   }
1313   {
1314     int referenced = 0;
1315     unsigned long long insn_referenced = abuf->written;
1316     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
1317   }
1318   {
1319     int referenced = 0;
1320     unsigned long long insn_referenced = abuf->written;
1321     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
1322   }
1323   {
1324     int referenced = 0;
1325     unsigned long long insn_referenced = abuf->written;
1326     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
1327   }
1328   return cycles;
1329 #undef FLD
1330 }
1331
1332 UINT
1333 sh2_sh2_model::model_cmpstr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1334 {
1335 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1336   const sh2_scache* abuf = sem;
1337   const sh2_idesc* idesc = abuf->idesc;
1338   int cycles = 0;
1339   {
1340     INT in_usereg = -1;
1341     in_usereg = FLD (in_rn);
1342     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1343   }
1344   {
1345     INT in_usereg = -1;
1346     in_usereg = FLD (in_rm);
1347     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1348   }
1349   {
1350     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1351   }
1352   {
1353     cycles += model_u_exec_before (current_cpu, idesc, 3);
1354   }
1355   {
1356     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1357   }
1358   return cycles;
1359 #undef FLD
1360 }
1361
1362 UINT
1363 sh2_sh2_model::model_cmpstr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1364 {
1365 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1366   const sh2_scache* abuf = sem;
1367   const sh2_idesc* idesc = abuf->idesc;
1368   int cycles = 0;
1369   {
1370     int referenced = 0;
1371     unsigned long long insn_referenced = abuf->written;
1372     INT in_usereg = -1;
1373     in_usereg = FLD (in_rn);
1374     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1375   }
1376   {
1377     int referenced = 0;
1378     unsigned long long insn_referenced = abuf->written;
1379     INT in_usereg = -1;
1380     in_usereg = FLD (in_rm);
1381     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1382   }
1383   {
1384     int referenced = 0;
1385     unsigned long long insn_referenced = abuf->written;
1386     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1387   }
1388   {
1389     int referenced = 0;
1390     unsigned long long insn_referenced = abuf->written;
1391     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1392   }
1393   {
1394     int referenced = 0;
1395     unsigned long long insn_referenced = abuf->written;
1396     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1397   }
1398   return cycles;
1399 #undef FLD
1400 }
1401
1402 UINT
1403 sh2_sh2_model::model_div0s_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1404 {
1405 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1406   const sh2_scache* abuf = sem;
1407   const sh2_idesc* idesc = abuf->idesc;
1408   int cycles = 0;
1409   {
1410     INT in_usereg = -1;
1411     in_usereg = FLD (in_rn);
1412     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1413   }
1414   {
1415     INT in_usereg = -1;
1416     in_usereg = FLD (in_rm);
1417     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1418   }
1419   {
1420     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1421   }
1422   {
1423     cycles += model_u_exec_before (current_cpu, idesc, 3);
1424   }
1425   {
1426     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1427   }
1428   return cycles;
1429 #undef FLD
1430 }
1431
1432 UINT
1433 sh2_sh2_model::model_div0s_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1434 {
1435 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1436   const sh2_scache* abuf = sem;
1437   const sh2_idesc* idesc = abuf->idesc;
1438   int cycles = 0;
1439   {
1440     int referenced = 0;
1441     unsigned long long insn_referenced = abuf->written;
1442     INT in_usereg = -1;
1443     in_usereg = FLD (in_rn);
1444     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1445   }
1446   {
1447     int referenced = 0;
1448     unsigned long long insn_referenced = abuf->written;
1449     INT in_usereg = -1;
1450     in_usereg = FLD (in_rm);
1451     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1452   }
1453   {
1454     int referenced = 0;
1455     unsigned long long insn_referenced = abuf->written;
1456     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1457   }
1458   {
1459     int referenced = 0;
1460     unsigned long long insn_referenced = abuf->written;
1461     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1462   }
1463   {
1464     int referenced = 0;
1465     unsigned long long insn_referenced = abuf->written;
1466     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1467   }
1468   return cycles;
1469 #undef FLD
1470 }
1471
1472 UINT
1473 sh2_sh2_model::model_div0u_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1474 {
1475 #define FLD(f) abuf->fields.fmt_empty.f
1476   const sh2_scache* abuf = sem;
1477   const sh2_idesc* idesc = abuf->idesc;
1478   int cycles = 0;
1479   {
1480     cycles += model_u_use_tbit_before (current_cpu, idesc, 0);
1481   }
1482   {
1483     cycles += model_u_exec_before (current_cpu, idesc, 1);
1484   }
1485   {
1486     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 2);
1487   }
1488   return cycles;
1489 #undef FLD
1490 }
1491
1492 UINT
1493 sh2_sh2_model::model_div0u_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1494 {
1495 #define FLD(f) abuf->fields.fmt_empty.f
1496   const sh2_scache* abuf = sem;
1497   const sh2_idesc* idesc = abuf->idesc;
1498   int cycles = 0;
1499   {
1500     int referenced = 0;
1501     unsigned long long insn_referenced = abuf->written;
1502     cycles += model_u_use_tbit_after (current_cpu, idesc, 0, referenced);
1503   }
1504   {
1505     int referenced = 0;
1506     unsigned long long insn_referenced = abuf->written;
1507     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1508   }
1509   {
1510     int referenced = 0;
1511     unsigned long long insn_referenced = abuf->written;
1512     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 2, referenced);
1513   }
1514   return cycles;
1515 #undef FLD
1516 }
1517
1518 UINT
1519 sh2_sh2_model::model_div1_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1520 {
1521 #define FLD(f) abuf->fields.sfmt_macl_compact.f
1522   const sh2_scache* abuf = sem;
1523   const sh2_idesc* idesc = abuf->idesc;
1524   int cycles = 0;
1525   {
1526     INT in_usereg = -1;
1527     in_usereg = FLD (in_rn);
1528     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1529   }
1530   {
1531     INT in_usereg = -1;
1532     in_usereg = FLD (in_rm);
1533     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1534   }
1535   {
1536     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
1537   }
1538   {
1539     cycles += model_u_exec_before (current_cpu, idesc, 3);
1540   }
1541   {
1542     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
1543   }
1544   return cycles;
1545 #undef FLD
1546 }
1547
1548 UINT
1549 sh2_sh2_model::model_div1_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1550 {
1551 #define FLD(f) abuf->fields.sfmt_macl_compact.f
1552   const sh2_scache* abuf = sem;
1553   const sh2_idesc* idesc = abuf->idesc;
1554   int cycles = 0;
1555   {
1556     int referenced = 0;
1557     unsigned long long insn_referenced = abuf->written;
1558     INT in_usereg = -1;
1559     in_usereg = FLD (in_rn);
1560     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1561   }
1562   {
1563     int referenced = 0;
1564     unsigned long long insn_referenced = abuf->written;
1565     INT in_usereg = -1;
1566     in_usereg = FLD (in_rm);
1567     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1568   }
1569   {
1570     int referenced = 0;
1571     unsigned long long insn_referenced = abuf->written;
1572     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
1573   }
1574   {
1575     int referenced = 0;
1576     unsigned long long insn_referenced = abuf->written;
1577     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
1578   }
1579   {
1580     int referenced = 0;
1581     unsigned long long insn_referenced = abuf->written;
1582     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
1583   }
1584   return cycles;
1585 #undef FLD
1586 }
1587
1588 UINT
1589 sh2_sh2_model::model_dmulsl_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1590 {
1591 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1592   const sh2_scache* abuf = sem;
1593   const sh2_idesc* idesc = abuf->idesc;
1594   int cycles = 0;
1595   {
1596     INT in_usereg = -1;
1597     in_usereg = FLD (in_rn);
1598     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1599   }
1600   {
1601     INT in_usereg = -1;
1602     in_usereg = FLD (in_rm);
1603     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1604   }
1605   {
1606     cycles += model_u_dmul_before (current_cpu, idesc, 2);
1607   }
1608   return cycles;
1609 #undef FLD
1610 }
1611
1612 UINT
1613 sh2_sh2_model::model_dmulsl_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1614 {
1615 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1616   const sh2_scache* abuf = sem;
1617   const sh2_idesc* idesc = abuf->idesc;
1618   int cycles = 0;
1619   {
1620     int referenced = 0;
1621     unsigned long long insn_referenced = abuf->written;
1622     INT in_usereg = -1;
1623     in_usereg = FLD (in_rn);
1624     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1625   }
1626   {
1627     int referenced = 0;
1628     unsigned long long insn_referenced = abuf->written;
1629     INT in_usereg = -1;
1630     in_usereg = FLD (in_rm);
1631     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1632   }
1633   {
1634     int referenced = 0;
1635     unsigned long long insn_referenced = abuf->written;
1636     cycles += model_u_dmul_after (current_cpu, idesc, 2, referenced);
1637   }
1638   return cycles;
1639 #undef FLD
1640 }
1641
1642 UINT
1643 sh2_sh2_model::model_dmulul_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1644 {
1645 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1646   const sh2_scache* abuf = sem;
1647   const sh2_idesc* idesc = abuf->idesc;
1648   int cycles = 0;
1649   {
1650     INT in_usereg = -1;
1651     in_usereg = FLD (in_rn);
1652     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1653   }
1654   {
1655     INT in_usereg = -1;
1656     in_usereg = FLD (in_rm);
1657     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
1658   }
1659   {
1660     cycles += model_u_dmul_before (current_cpu, idesc, 2);
1661   }
1662   return cycles;
1663 #undef FLD
1664 }
1665
1666 UINT
1667 sh2_sh2_model::model_dmulul_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1668 {
1669 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
1670   const sh2_scache* abuf = sem;
1671   const sh2_idesc* idesc = abuf->idesc;
1672   int cycles = 0;
1673   {
1674     int referenced = 0;
1675     unsigned long long insn_referenced = abuf->written;
1676     INT in_usereg = -1;
1677     in_usereg = FLD (in_rn);
1678     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1679   }
1680   {
1681     int referenced = 0;
1682     unsigned long long insn_referenced = abuf->written;
1683     INT in_usereg = -1;
1684     in_usereg = FLD (in_rm);
1685     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
1686   }
1687   {
1688     int referenced = 0;
1689     unsigned long long insn_referenced = abuf->written;
1690     cycles += model_u_dmul_after (current_cpu, idesc, 2, referenced);
1691   }
1692   return cycles;
1693 #undef FLD
1694 }
1695
1696 UINT
1697 sh2_sh2_model::model_dt_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1698 {
1699 #define FLD(f) abuf->fields.sfmt_addi_compact.f
1700   const sh2_scache* abuf = sem;
1701   const sh2_idesc* idesc = abuf->idesc;
1702   int cycles = 0;
1703   {
1704     INT in_usereg = -1;
1705     in_usereg = FLD (in_rn);
1706     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1707   }
1708   {
1709     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
1710   }
1711   {
1712     cycles += model_u_exec_before (current_cpu, idesc, 2);
1713   }
1714   {
1715     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
1716   }
1717   return cycles;
1718 #undef FLD
1719 }
1720
1721 UINT
1722 sh2_sh2_model::model_dt_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1723 {
1724 #define FLD(f) abuf->fields.sfmt_addi_compact.f
1725   const sh2_scache* abuf = sem;
1726   const sh2_idesc* idesc = abuf->idesc;
1727   int cycles = 0;
1728   {
1729     int referenced = 0;
1730     unsigned long long insn_referenced = abuf->written;
1731     INT in_usereg = -1;
1732     in_usereg = FLD (in_rn);
1733     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1734   }
1735   {
1736     int referenced = 0;
1737     unsigned long long insn_referenced = abuf->written;
1738     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
1739   }
1740   {
1741     int referenced = 0;
1742     unsigned long long insn_referenced = abuf->written;
1743     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
1744   }
1745   {
1746     int referenced = 0;
1747     unsigned long long insn_referenced = abuf->written;
1748     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
1749   }
1750   return cycles;
1751 #undef FLD
1752 }
1753
1754 UINT
1755 sh2_sh2_model::model_extsb_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1756 {
1757 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1758   const sh2_scache* abuf = sem;
1759   const sh2_idesc* idesc = abuf->idesc;
1760   int cycles = 0;
1761   {
1762     INT in_usereg = -1;
1763     in_usereg = FLD (in_rm);
1764     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1765   }
1766   {
1767     cycles += model_u_exec_before (current_cpu, idesc, 1);
1768   }
1769   {
1770     cycles += model_u_shift_before (current_cpu, idesc, 2);
1771   }
1772   return cycles;
1773 #undef FLD
1774 }
1775
1776 UINT
1777 sh2_sh2_model::model_extsb_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1778 {
1779 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1780   const sh2_scache* abuf = sem;
1781   const sh2_idesc* idesc = abuf->idesc;
1782   int cycles = 0;
1783   {
1784     int referenced = 0;
1785     unsigned long long insn_referenced = abuf->written;
1786     INT in_usereg = -1;
1787     in_usereg = FLD (in_rm);
1788     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1789   }
1790   {
1791     int referenced = 0;
1792     unsigned long long insn_referenced = abuf->written;
1793     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1794   }
1795   {
1796     int referenced = 0;
1797     unsigned long long insn_referenced = abuf->written;
1798     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
1799   }
1800   return cycles;
1801 #undef FLD
1802 }
1803
1804 UINT
1805 sh2_sh2_model::model_extsw_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1806 {
1807 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1808   const sh2_scache* abuf = sem;
1809   const sh2_idesc* idesc = abuf->idesc;
1810   int cycles = 0;
1811   {
1812     INT in_usereg = -1;
1813     in_usereg = FLD (in_rm);
1814     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1815   }
1816   {
1817     cycles += model_u_exec_before (current_cpu, idesc, 1);
1818   }
1819   {
1820     cycles += model_u_shift_before (current_cpu, idesc, 2);
1821   }
1822   return cycles;
1823 #undef FLD
1824 }
1825
1826 UINT
1827 sh2_sh2_model::model_extsw_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1828 {
1829 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1830   const sh2_scache* abuf = sem;
1831   const sh2_idesc* idesc = abuf->idesc;
1832   int cycles = 0;
1833   {
1834     int referenced = 0;
1835     unsigned long long insn_referenced = abuf->written;
1836     INT in_usereg = -1;
1837     in_usereg = FLD (in_rm);
1838     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1839   }
1840   {
1841     int referenced = 0;
1842     unsigned long long insn_referenced = abuf->written;
1843     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1844   }
1845   {
1846     int referenced = 0;
1847     unsigned long long insn_referenced = abuf->written;
1848     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
1849   }
1850   return cycles;
1851 #undef FLD
1852 }
1853
1854 UINT
1855 sh2_sh2_model::model_extub_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1856 {
1857 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1858   const sh2_scache* abuf = sem;
1859   const sh2_idesc* idesc = abuf->idesc;
1860   int cycles = 0;
1861   {
1862     INT in_usereg = -1;
1863     in_usereg = FLD (in_rm);
1864     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1865   }
1866   {
1867     cycles += model_u_exec_before (current_cpu, idesc, 1);
1868   }
1869   {
1870     cycles += model_u_shift_before (current_cpu, idesc, 2);
1871   }
1872   return cycles;
1873 #undef FLD
1874 }
1875
1876 UINT
1877 sh2_sh2_model::model_extub_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1878 {
1879 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1880   const sh2_scache* abuf = sem;
1881   const sh2_idesc* idesc = abuf->idesc;
1882   int cycles = 0;
1883   {
1884     int referenced = 0;
1885     unsigned long long insn_referenced = abuf->written;
1886     INT in_usereg = -1;
1887     in_usereg = FLD (in_rm);
1888     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1889   }
1890   {
1891     int referenced = 0;
1892     unsigned long long insn_referenced = abuf->written;
1893     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1894   }
1895   {
1896     int referenced = 0;
1897     unsigned long long insn_referenced = abuf->written;
1898     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
1899   }
1900   return cycles;
1901 #undef FLD
1902 }
1903
1904 UINT
1905 sh2_sh2_model::model_extuw_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1906 {
1907 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1908   const sh2_scache* abuf = sem;
1909   const sh2_idesc* idesc = abuf->idesc;
1910   int cycles = 0;
1911   {
1912     INT in_usereg = -1;
1913     in_usereg = FLD (in_rm);
1914     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
1915   }
1916   {
1917     cycles += model_u_exec_before (current_cpu, idesc, 1);
1918   }
1919   {
1920     cycles += model_u_shift_before (current_cpu, idesc, 2);
1921   }
1922   return cycles;
1923 #undef FLD
1924 }
1925
1926 UINT
1927 sh2_sh2_model::model_extuw_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1928 {
1929 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
1930   const sh2_scache* abuf = sem;
1931   const sh2_idesc* idesc = abuf->idesc;
1932   int cycles = 0;
1933   {
1934     int referenced = 0;
1935     unsigned long long insn_referenced = abuf->written;
1936     INT in_usereg = -1;
1937     in_usereg = FLD (in_rm);
1938     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
1939   }
1940   {
1941     int referenced = 0;
1942     unsigned long long insn_referenced = abuf->written;
1943     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
1944   }
1945   {
1946     int referenced = 0;
1947     unsigned long long insn_referenced = abuf->written;
1948     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
1949   }
1950   return cycles;
1951 #undef FLD
1952 }
1953
1954 UINT
1955 sh2_sh2_model::model_frchg_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1956 {
1957 #define FLD(f) abuf->fields.fmt_empty.f
1958   const sh2_scache* abuf = sem;
1959   const sh2_idesc* idesc = abuf->idesc;
1960   int cycles = 0;
1961   {
1962     cycles += model_u_exec_before (current_cpu, idesc, 0);
1963   }
1964   return cycles;
1965 #undef FLD
1966 }
1967
1968 UINT
1969 sh2_sh2_model::model_frchg_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
1970 {
1971 #define FLD(f) abuf->fields.fmt_empty.f
1972   const sh2_scache* abuf = sem;
1973   const sh2_idesc* idesc = abuf->idesc;
1974   int cycles = 0;
1975   {
1976     int referenced = 0;
1977     unsigned long long insn_referenced = abuf->written;
1978     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
1979   }
1980   return cycles;
1981 #undef FLD
1982 }
1983
1984 UINT
1985 sh2_sh2_model::model_fschg_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
1986 {
1987 #define FLD(f) abuf->fields.fmt_empty.f
1988   const sh2_scache* abuf = sem;
1989   const sh2_idesc* idesc = abuf->idesc;
1990   int cycles = 0;
1991   {
1992     cycles += model_u_exec_before (current_cpu, idesc, 0);
1993   }
1994   return cycles;
1995 #undef FLD
1996 }
1997
1998 UINT
1999 sh2_sh2_model::model_fschg_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2000 {
2001 #define FLD(f) abuf->fields.fmt_empty.f
2002   const sh2_scache* abuf = sem;
2003   const sh2_idesc* idesc = abuf->idesc;
2004   int cycles = 0;
2005   {
2006     int referenced = 0;
2007     unsigned long long insn_referenced = abuf->written;
2008     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
2009   }
2010   return cycles;
2011 #undef FLD
2012 }
2013
2014 UINT
2015 sh2_sh2_model::model_jmp_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2016 {
2017 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2018   const sh2_scache* abuf = sem;
2019   const sh2_idesc* idesc = abuf->idesc;
2020   int cycles = 0;
2021   {
2022     cycles += model_u_jmp_before (current_cpu, idesc, 0);
2023   }
2024   return cycles;
2025 #undef FLD
2026 }
2027
2028 UINT
2029 sh2_sh2_model::model_jmp_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2030 {
2031 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2032   const sh2_scache* abuf = sem;
2033   const sh2_idesc* idesc = abuf->idesc;
2034   int cycles = 0;
2035   {
2036     int referenced = 0;
2037     unsigned long long insn_referenced = abuf->written;
2038     referenced |= 1 << 0;
2039     cycles += model_u_jmp_after (current_cpu, idesc, 0, referenced);
2040   }
2041   return cycles;
2042 #undef FLD
2043 }
2044
2045 UINT
2046 sh2_sh2_model::model_jsr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2047 {
2048 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2049   const sh2_scache* abuf = sem;
2050   const sh2_idesc* idesc = abuf->idesc;
2051   int cycles = 0;
2052   {
2053     cycles += model_u_jsr_before (current_cpu, idesc, 0);
2054   }
2055   return cycles;
2056 #undef FLD
2057 }
2058
2059 UINT
2060 sh2_sh2_model::model_jsr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2061 {
2062 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2063   const sh2_scache* abuf = sem;
2064   const sh2_idesc* idesc = abuf->idesc;
2065   int cycles = 0;
2066   {
2067     int referenced = 0;
2068     unsigned long long insn_referenced = abuf->written;
2069     referenced |= 1 << 0;
2070     cycles += model_u_jsr_after (current_cpu, idesc, 0, referenced);
2071   }
2072   return cycles;
2073 #undef FLD
2074 }
2075
2076 UINT
2077 sh2_sh2_model::model_ldc_gbr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2078 {
2079 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2080   const sh2_scache* abuf = sem;
2081   const sh2_idesc* idesc = abuf->idesc;
2082   int cycles = 0;
2083   {
2084     INT in_usereg = -1;
2085     in_usereg = FLD (in_rn);
2086     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2087   }
2088   {
2089     cycles += model_u_ldc_gbr_before (current_cpu, idesc, 1);
2090   }
2091   return cycles;
2092 #undef FLD
2093 }
2094
2095 UINT
2096 sh2_sh2_model::model_ldc_gbr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2097 {
2098 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2099   const sh2_scache* abuf = sem;
2100   const sh2_idesc* idesc = abuf->idesc;
2101   int cycles = 0;
2102   {
2103     int referenced = 0;
2104     unsigned long long insn_referenced = abuf->written;
2105     INT in_usereg = -1;
2106     in_usereg = FLD (in_rn);
2107     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2108   }
2109   {
2110     int referenced = 0;
2111     unsigned long long insn_referenced = abuf->written;
2112     cycles += model_u_ldc_gbr_after (current_cpu, idesc, 1, referenced);
2113   }
2114   return cycles;
2115 #undef FLD
2116 }
2117
2118 UINT
2119 sh2_sh2_model::model_ldc_vbr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2120 {
2121 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2122   const sh2_scache* abuf = sem;
2123   const sh2_idesc* idesc = abuf->idesc;
2124   int cycles = 0;
2125   {
2126     INT in_usereg = -1;
2127     in_usereg = FLD (in_rn);
2128     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2129   }
2130   {
2131     cycles += model_u_exec_before (current_cpu, idesc, 1);
2132   }
2133   return cycles;
2134 #undef FLD
2135 }
2136
2137 UINT
2138 sh2_sh2_model::model_ldc_vbr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2139 {
2140 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2141   const sh2_scache* abuf = sem;
2142   const sh2_idesc* idesc = abuf->idesc;
2143   int cycles = 0;
2144   {
2145     int referenced = 0;
2146     unsigned long long insn_referenced = abuf->written;
2147     INT in_usereg = -1;
2148     in_usereg = FLD (in_rn);
2149     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2150   }
2151   {
2152     int referenced = 0;
2153     unsigned long long insn_referenced = abuf->written;
2154     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
2155   }
2156   return cycles;
2157 #undef FLD
2158 }
2159
2160 UINT
2161 sh2_sh2_model::model_ldc_sr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2162 {
2163 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2164   const sh2_scache* abuf = sem;
2165   const sh2_idesc* idesc = abuf->idesc;
2166   int cycles = 0;
2167   {
2168     INT in_usereg = -1;
2169     in_usereg = FLD (in_rn);
2170     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2171   }
2172   {
2173     cycles += model_u_ldc_sr_before (current_cpu, idesc, 1);
2174   }
2175   return cycles;
2176 #undef FLD
2177 }
2178
2179 UINT
2180 sh2_sh2_model::model_ldc_sr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2181 {
2182 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2183   const sh2_scache* abuf = sem;
2184   const sh2_idesc* idesc = abuf->idesc;
2185   int cycles = 0;
2186   {
2187     int referenced = 0;
2188     unsigned long long insn_referenced = abuf->written;
2189     INT in_usereg = -1;
2190     in_usereg = FLD (in_rn);
2191     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2192   }
2193   {
2194     int referenced = 0;
2195     unsigned long long insn_referenced = abuf->written;
2196     cycles += model_u_ldc_sr_after (current_cpu, idesc, 1, referenced);
2197   }
2198   return cycles;
2199 #undef FLD
2200 }
2201
2202 UINT
2203 sh2_sh2_model::model_ldcl_gbr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2204 {
2205 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2206   const sh2_scache* abuf = sem;
2207   const sh2_idesc* idesc = abuf->idesc;
2208   int cycles = 0;
2209   {
2210     INT in_usereg = -1;
2211     in_usereg = FLD (in_rn);
2212     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2213   }
2214   {
2215     cycles += model_u_ldcl_before (current_cpu, idesc, 1);
2216   }
2217   {
2218     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
2219   }
2220   {
2221     cycles += model_u_load_gbr_before (current_cpu, idesc, 3);
2222   }
2223   return cycles;
2224 #undef FLD
2225 }
2226
2227 UINT
2228 sh2_sh2_model::model_ldcl_gbr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2229 {
2230 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2231   const sh2_scache* abuf = sem;
2232   const sh2_idesc* idesc = abuf->idesc;
2233   int cycles = 0;
2234   {
2235     int referenced = 0;
2236     unsigned long long insn_referenced = abuf->written;
2237     INT in_usereg = -1;
2238     in_usereg = FLD (in_rn);
2239     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2240   }
2241   {
2242     int referenced = 0;
2243     unsigned long long insn_referenced = abuf->written;
2244     cycles += model_u_ldcl_after (current_cpu, idesc, 1, referenced);
2245   }
2246   {
2247     int referenced = 0;
2248     unsigned long long insn_referenced = abuf->written;
2249     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
2250   }
2251   {
2252     int referenced = 0;
2253     unsigned long long insn_referenced = abuf->written;
2254     cycles += model_u_load_gbr_after (current_cpu, idesc, 3, referenced);
2255   }
2256   return cycles;
2257 #undef FLD
2258 }
2259
2260 UINT
2261 sh2_sh2_model::model_ldcl_vbr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2262 {
2263 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2264   const sh2_scache* abuf = sem;
2265   const sh2_idesc* idesc = abuf->idesc;
2266   int cycles = 0;
2267   {
2268     INT in_usereg = -1;
2269     in_usereg = FLD (in_rn);
2270     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2271   }
2272   {
2273     cycles += model_u_ldcl_vbr_before (current_cpu, idesc, 1);
2274   }
2275   {
2276     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
2277   }
2278   {
2279     cycles += model_u_load_vbr_before (current_cpu, idesc, 3);
2280   }
2281   return cycles;
2282 #undef FLD
2283 }
2284
2285 UINT
2286 sh2_sh2_model::model_ldcl_vbr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2287 {
2288 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2289   const sh2_scache* abuf = sem;
2290   const sh2_idesc* idesc = abuf->idesc;
2291   int cycles = 0;
2292   {
2293     int referenced = 0;
2294     unsigned long long insn_referenced = abuf->written;
2295     INT in_usereg = -1;
2296     in_usereg = FLD (in_rn);
2297     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2298   }
2299   {
2300     int referenced = 0;
2301     unsigned long long insn_referenced = abuf->written;
2302     cycles += model_u_ldcl_vbr_after (current_cpu, idesc, 1, referenced);
2303   }
2304   {
2305     int referenced = 0;
2306     unsigned long long insn_referenced = abuf->written;
2307     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
2308   }
2309   {
2310     int referenced = 0;
2311     unsigned long long insn_referenced = abuf->written;
2312     cycles += model_u_load_vbr_after (current_cpu, idesc, 3, referenced);
2313   }
2314   return cycles;
2315 #undef FLD
2316 }
2317
2318 UINT
2319 sh2_sh2_model::model_lds_mach_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2320 {
2321 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2322   const sh2_scache* abuf = sem;
2323   const sh2_idesc* idesc = abuf->idesc;
2324   int cycles = 0;
2325   {
2326     INT in_usereg = -1;
2327     in_usereg = FLD (in_rn);
2328     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2329   }
2330   {
2331     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
2332   }
2333   {
2334     cycles += model_u_exec_before (current_cpu, idesc, 2);
2335   }
2336   {
2337     cycles += model_u_set_mac_before (current_cpu, idesc, 3);
2338   }
2339   return cycles;
2340 #undef FLD
2341 }
2342
2343 UINT
2344 sh2_sh2_model::model_lds_mach_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2345 {
2346 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2347   const sh2_scache* abuf = sem;
2348   const sh2_idesc* idesc = abuf->idesc;
2349   int cycles = 0;
2350   {
2351     int referenced = 0;
2352     unsigned long long insn_referenced = abuf->written;
2353     INT in_usereg = -1;
2354     in_usereg = FLD (in_rn);
2355     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2356   }
2357   {
2358     int referenced = 0;
2359     unsigned long long insn_referenced = abuf->written;
2360     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
2361   }
2362   {
2363     int referenced = 0;
2364     unsigned long long insn_referenced = abuf->written;
2365     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2366   }
2367   {
2368     int referenced = 0;
2369     unsigned long long insn_referenced = abuf->written;
2370     cycles += model_u_set_mac_after (current_cpu, idesc, 3, referenced);
2371   }
2372   return cycles;
2373 #undef FLD
2374 }
2375
2376 UINT
2377 sh2_sh2_model::model_ldsl_mach_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2378 {
2379 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2380   const sh2_scache* abuf = sem;
2381   const sh2_idesc* idesc = abuf->idesc;
2382   int cycles = 0;
2383   {
2384     INT in_usereg = -1;
2385     in_usereg = FLD (in_rn);
2386     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2387   }
2388   {
2389     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
2390   }
2391   {
2392     cycles += model_u_exec_before (current_cpu, idesc, 2);
2393   }
2394   {
2395     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
2396   }
2397   {
2398     cycles += model_u_load_mac_before (current_cpu, idesc, 4);
2399   }
2400   return cycles;
2401 #undef FLD
2402 }
2403
2404 UINT
2405 sh2_sh2_model::model_ldsl_mach_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2406 {
2407 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2408   const sh2_scache* abuf = sem;
2409   const sh2_idesc* idesc = abuf->idesc;
2410   int cycles = 0;
2411   {
2412     int referenced = 0;
2413     unsigned long long insn_referenced = abuf->written;
2414     INT in_usereg = -1;
2415     in_usereg = FLD (in_rn);
2416     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2417   }
2418   {
2419     int referenced = 0;
2420     unsigned long long insn_referenced = abuf->written;
2421     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
2422   }
2423   {
2424     int referenced = 0;
2425     unsigned long long insn_referenced = abuf->written;
2426     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2427   }
2428   {
2429     int referenced = 0;
2430     unsigned long long insn_referenced = abuf->written;
2431     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
2432   }
2433   {
2434     int referenced = 0;
2435     unsigned long long insn_referenced = abuf->written;
2436     cycles += model_u_load_mac_after (current_cpu, idesc, 4, referenced);
2437   }
2438   return cycles;
2439 #undef FLD
2440 }
2441
2442 UINT
2443 sh2_sh2_model::model_lds_macl_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2444 {
2445 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2446   const sh2_scache* abuf = sem;
2447   const sh2_idesc* idesc = abuf->idesc;
2448   int cycles = 0;
2449   {
2450     INT in_usereg = -1;
2451     in_usereg = FLD (in_rn);
2452     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2453   }
2454   {
2455     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
2456   }
2457   {
2458     cycles += model_u_exec_before (current_cpu, idesc, 2);
2459   }
2460   {
2461     cycles += model_u_set_mac_before (current_cpu, idesc, 3);
2462   }
2463   return cycles;
2464 #undef FLD
2465 }
2466
2467 UINT
2468 sh2_sh2_model::model_lds_macl_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2469 {
2470 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2471   const sh2_scache* abuf = sem;
2472   const sh2_idesc* idesc = abuf->idesc;
2473   int cycles = 0;
2474   {
2475     int referenced = 0;
2476     unsigned long long insn_referenced = abuf->written;
2477     INT in_usereg = -1;
2478     in_usereg = FLD (in_rn);
2479     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2480   }
2481   {
2482     int referenced = 0;
2483     unsigned long long insn_referenced = abuf->written;
2484     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
2485   }
2486   {
2487     int referenced = 0;
2488     unsigned long long insn_referenced = abuf->written;
2489     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2490   }
2491   {
2492     int referenced = 0;
2493     unsigned long long insn_referenced = abuf->written;
2494     cycles += model_u_set_mac_after (current_cpu, idesc, 3, referenced);
2495   }
2496   return cycles;
2497 #undef FLD
2498 }
2499
2500 UINT
2501 sh2_sh2_model::model_ldsl_macl_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2502 {
2503 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2504   const sh2_scache* abuf = sem;
2505   const sh2_idesc* idesc = abuf->idesc;
2506   int cycles = 0;
2507   {
2508     INT in_usereg = -1;
2509     in_usereg = FLD (in_rn);
2510     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2511   }
2512   {
2513     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
2514   }
2515   {
2516     cycles += model_u_exec_before (current_cpu, idesc, 2);
2517   }
2518   {
2519     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
2520   }
2521   {
2522     cycles += model_u_load_mac_before (current_cpu, idesc, 4);
2523   }
2524   return cycles;
2525 #undef FLD
2526 }
2527
2528 UINT
2529 sh2_sh2_model::model_ldsl_macl_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2530 {
2531 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2532   const sh2_scache* abuf = sem;
2533   const sh2_idesc* idesc = abuf->idesc;
2534   int cycles = 0;
2535   {
2536     int referenced = 0;
2537     unsigned long long insn_referenced = abuf->written;
2538     INT in_usereg = -1;
2539     in_usereg = FLD (in_rn);
2540     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2541   }
2542   {
2543     int referenced = 0;
2544     unsigned long long insn_referenced = abuf->written;
2545     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
2546   }
2547   {
2548     int referenced = 0;
2549     unsigned long long insn_referenced = abuf->written;
2550     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2551   }
2552   {
2553     int referenced = 0;
2554     unsigned long long insn_referenced = abuf->written;
2555     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
2556   }
2557   {
2558     int referenced = 0;
2559     unsigned long long insn_referenced = abuf->written;
2560     cycles += model_u_load_mac_after (current_cpu, idesc, 4, referenced);
2561   }
2562   return cycles;
2563 #undef FLD
2564 }
2565
2566 UINT
2567 sh2_sh2_model::model_lds_pr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2568 {
2569 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2570   const sh2_scache* abuf = sem;
2571   const sh2_idesc* idesc = abuf->idesc;
2572   int cycles = 0;
2573   {
2574     INT in_usereg = -1;
2575     in_usereg = FLD (in_rn);
2576     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2577   }
2578   {
2579     cycles += model_u_lds_pr_before (current_cpu, idesc, 1);
2580   }
2581   return cycles;
2582 #undef FLD
2583 }
2584
2585 UINT
2586 sh2_sh2_model::model_lds_pr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2587 {
2588 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2589   const sh2_scache* abuf = sem;
2590   const sh2_idesc* idesc = abuf->idesc;
2591   int cycles = 0;
2592   {
2593     int referenced = 0;
2594     unsigned long long insn_referenced = abuf->written;
2595     INT in_usereg = -1;
2596     in_usereg = FLD (in_rn);
2597     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2598   }
2599   {
2600     int referenced = 0;
2601     unsigned long long insn_referenced = abuf->written;
2602     cycles += model_u_lds_pr_after (current_cpu, idesc, 1, referenced);
2603   }
2604   return cycles;
2605 #undef FLD
2606 }
2607
2608 UINT
2609 sh2_sh2_model::model_ldsl_pr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2610 {
2611 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2612   const sh2_scache* abuf = sem;
2613   const sh2_idesc* idesc = abuf->idesc;
2614   int cycles = 0;
2615   {
2616     INT in_usereg = -1;
2617     in_usereg = FLD (in_rn);
2618     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2619   }
2620   {
2621     cycles += model_u_lds_pr_before (current_cpu, idesc, 1);
2622   }
2623   {
2624     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
2625   }
2626   {
2627     cycles += model_u_load_pr_before (current_cpu, idesc, 3);
2628   }
2629   return cycles;
2630 #undef FLD
2631 }
2632
2633 UINT
2634 sh2_sh2_model::model_ldsl_pr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2635 {
2636 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2637   const sh2_scache* abuf = sem;
2638   const sh2_idesc* idesc = abuf->idesc;
2639   int cycles = 0;
2640   {
2641     int referenced = 0;
2642     unsigned long long insn_referenced = abuf->written;
2643     INT in_usereg = -1;
2644     in_usereg = FLD (in_rn);
2645     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2646   }
2647   {
2648     int referenced = 0;
2649     unsigned long long insn_referenced = abuf->written;
2650     cycles += model_u_lds_pr_after (current_cpu, idesc, 1, referenced);
2651   }
2652   {
2653     int referenced = 0;
2654     unsigned long long insn_referenced = abuf->written;
2655     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
2656   }
2657   {
2658     int referenced = 0;
2659     unsigned long long insn_referenced = abuf->written;
2660     cycles += model_u_load_pr_after (current_cpu, idesc, 3, referenced);
2661   }
2662   return cycles;
2663 #undef FLD
2664 }
2665
2666 UINT
2667 sh2_sh2_model::model_macl_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2668 {
2669 #define FLD(f) abuf->fields.sfmt_macl_compact.f
2670   const sh2_scache* abuf = sem;
2671   const sh2_idesc* idesc = abuf->idesc;
2672   int cycles = 0;
2673   {
2674     INT in_usereg = -1;
2675     in_usereg = FLD (in_rn);
2676     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2677   }
2678   {
2679     INT in_usereg = -1;
2680     in_usereg = FLD (in_rm);
2681     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
2682   }
2683   {
2684     cycles += model_u_macl_before (current_cpu, idesc, 2);
2685   }
2686   return cycles;
2687 #undef FLD
2688 }
2689
2690 UINT
2691 sh2_sh2_model::model_macl_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2692 {
2693 #define FLD(f) abuf->fields.sfmt_macl_compact.f
2694   const sh2_scache* abuf = sem;
2695   const sh2_idesc* idesc = abuf->idesc;
2696   int cycles = 0;
2697   {
2698     int referenced = 0;
2699     unsigned long long insn_referenced = abuf->written;
2700     INT in_usereg = -1;
2701     in_usereg = FLD (in_rn);
2702     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2703   }
2704   {
2705     int referenced = 0;
2706     unsigned long long insn_referenced = abuf->written;
2707     INT in_usereg = -1;
2708     in_usereg = FLD (in_rm);
2709     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
2710   }
2711   {
2712     int referenced = 0;
2713     unsigned long long insn_referenced = abuf->written;
2714     cycles += model_u_macl_after (current_cpu, idesc, 2, referenced);
2715   }
2716   return cycles;
2717 #undef FLD
2718 }
2719
2720 UINT
2721 sh2_sh2_model::model_macw_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2722 {
2723 #define FLD(f) abuf->fields.sfmt_macl_compact.f
2724   const sh2_scache* abuf = sem;
2725   const sh2_idesc* idesc = abuf->idesc;
2726   int cycles = 0;
2727   {
2728     INT in_usereg = -1;
2729     in_usereg = FLD (in_rn);
2730     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2731   }
2732   {
2733     INT in_usereg = -1;
2734     in_usereg = FLD (in_rm);
2735     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
2736   }
2737   {
2738     cycles += model_u_macw_before (current_cpu, idesc, 2);
2739   }
2740   return cycles;
2741 #undef FLD
2742 }
2743
2744 UINT
2745 sh2_sh2_model::model_macw_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2746 {
2747 #define FLD(f) abuf->fields.sfmt_macl_compact.f
2748   const sh2_scache* abuf = sem;
2749   const sh2_idesc* idesc = abuf->idesc;
2750   int cycles = 0;
2751   {
2752     int referenced = 0;
2753     unsigned long long insn_referenced = abuf->written;
2754     INT in_usereg = -1;
2755     in_usereg = FLD (in_rn);
2756     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2757   }
2758   {
2759     int referenced = 0;
2760     unsigned long long insn_referenced = abuf->written;
2761     INT in_usereg = -1;
2762     in_usereg = FLD (in_rm);
2763     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
2764   }
2765   {
2766     int referenced = 0;
2767     unsigned long long insn_referenced = abuf->written;
2768     cycles += model_u_macw_after (current_cpu, idesc, 2, referenced);
2769   }
2770   return cycles;
2771 #undef FLD
2772 }
2773
2774 UINT
2775 sh2_sh2_model::model_mov_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2776 {
2777 #define FLD(f) abuf->fields.sfmt_and_compact.f
2778   const sh2_scache* abuf = sem;
2779   const sh2_idesc* idesc = abuf->idesc;
2780   int cycles = 0;
2781   {
2782     INT in_usereg = -1;
2783     in_usereg = FLD (in_rm64);
2784     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2785   }
2786   {
2787     cycles += model_u_exec_before (current_cpu, idesc, 1);
2788   }
2789   return cycles;
2790 #undef FLD
2791 }
2792
2793 UINT
2794 sh2_sh2_model::model_mov_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2795 {
2796 #define FLD(f) abuf->fields.sfmt_and_compact.f
2797   const sh2_scache* abuf = sem;
2798   const sh2_idesc* idesc = abuf->idesc;
2799   int cycles = 0;
2800   {
2801     int referenced = 0;
2802     unsigned long long insn_referenced = abuf->written;
2803     INT in_usereg = -1;
2804     in_usereg = FLD (in_rm64);
2805     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2806   }
2807   {
2808     int referenced = 0;
2809     unsigned long long insn_referenced = abuf->written;
2810     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
2811   }
2812   return cycles;
2813 #undef FLD
2814 }
2815
2816 UINT
2817 sh2_sh2_model::model_movi_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2818 {
2819 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2820   const sh2_scache* abuf = sem;
2821   const sh2_idesc* idesc = abuf->idesc;
2822   int cycles = 0;
2823   {
2824     cycles += model_u_exec_before (current_cpu, idesc, 0);
2825   }
2826   return cycles;
2827 #undef FLD
2828 }
2829
2830 UINT
2831 sh2_sh2_model::model_movi_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2832 {
2833 #define FLD(f) abuf->fields.sfmt_addi_compact.f
2834   const sh2_scache* abuf = sem;
2835   const sh2_idesc* idesc = abuf->idesc;
2836   int cycles = 0;
2837   {
2838     int referenced = 0;
2839     unsigned long long insn_referenced = abuf->written;
2840     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
2841   }
2842   return cycles;
2843 #undef FLD
2844 }
2845
2846 UINT
2847 sh2_sh2_model::model_movb1_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2848 {
2849 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
2850   const sh2_scache* abuf = sem;
2851   const sh2_idesc* idesc = abuf->idesc;
2852   int cycles = 0;
2853   {
2854     INT in_usereg = -1;
2855     in_usereg = FLD (in_rn);
2856     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2857   }
2858   {
2859     INT in_usereg = -1;
2860     in_usereg = FLD (in_rm);
2861     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
2862   }
2863   {
2864     cycles += model_u_exec_before (current_cpu, idesc, 2);
2865   }
2866   {
2867     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
2868   }
2869   return cycles;
2870 #undef FLD
2871 }
2872
2873 UINT
2874 sh2_sh2_model::model_movb1_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2875 {
2876 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
2877   const sh2_scache* abuf = sem;
2878   const sh2_idesc* idesc = abuf->idesc;
2879   int cycles = 0;
2880   {
2881     int referenced = 0;
2882     unsigned long long insn_referenced = abuf->written;
2883     INT in_usereg = -1;
2884     in_usereg = FLD (in_rn);
2885     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2886   }
2887   {
2888     int referenced = 0;
2889     unsigned long long insn_referenced = abuf->written;
2890     INT in_usereg = -1;
2891     in_usereg = FLD (in_rm);
2892     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
2893   }
2894   {
2895     int referenced = 0;
2896     unsigned long long insn_referenced = abuf->written;
2897     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2898   }
2899   {
2900     int referenced = 0;
2901     unsigned long long insn_referenced = abuf->written;
2902     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
2903   }
2904   return cycles;
2905 #undef FLD
2906 }
2907
2908 UINT
2909 sh2_sh2_model::model_movb2_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2910 {
2911 #define FLD(f) abuf->fields.sfmt_macl_compact.f
2912   const sh2_scache* abuf = sem;
2913   const sh2_idesc* idesc = abuf->idesc;
2914   int cycles = 0;
2915   {
2916     INT in_usereg = -1;
2917     in_usereg = FLD (in_rn);
2918     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2919   }
2920   {
2921     INT in_usereg = -1;
2922     in_usereg = FLD (in_rm);
2923     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
2924   }
2925   {
2926     cycles += model_u_exec_before (current_cpu, idesc, 2);
2927   }
2928   {
2929     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
2930   }
2931   return cycles;
2932 #undef FLD
2933 }
2934
2935 UINT
2936 sh2_sh2_model::model_movb2_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
2937 {
2938 #define FLD(f) abuf->fields.sfmt_macl_compact.f
2939   const sh2_scache* abuf = sem;
2940   const sh2_idesc* idesc = abuf->idesc;
2941   int cycles = 0;
2942   {
2943     int referenced = 0;
2944     unsigned long long insn_referenced = abuf->written;
2945     INT in_usereg = -1;
2946     in_usereg = FLD (in_rn);
2947     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
2948   }
2949   {
2950     int referenced = 0;
2951     unsigned long long insn_referenced = abuf->written;
2952     INT in_usereg = -1;
2953     in_usereg = FLD (in_rm);
2954     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
2955   }
2956   {
2957     int referenced = 0;
2958     unsigned long long insn_referenced = abuf->written;
2959     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
2960   }
2961   {
2962     int referenced = 0;
2963     unsigned long long insn_referenced = abuf->written;
2964     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
2965   }
2966   return cycles;
2967 #undef FLD
2968 }
2969
2970 UINT
2971 sh2_sh2_model::model_movb3_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
2972 {
2973 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
2974   const sh2_scache* abuf = sem;
2975   const sh2_idesc* idesc = abuf->idesc;
2976   int cycles = 0;
2977   {
2978     INT in_usereg = -1;
2979     in_usereg = FLD (in_rn);
2980     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
2981   }
2982   {
2983     INT in_usereg = -1;
2984     in_usereg = FLD (in_rm);
2985     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
2986   }
2987   {
2988     INT in_usereg = -1;
2989     in_usereg = FLD (in_r0);
2990     cycles += model_u_use_gr_before (current_cpu, idesc, 2, in_usereg);
2991   }
2992   {
2993     cycles += model_u_exec_before (current_cpu, idesc, 3);
2994   }
2995   {
2996     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
2997   }
2998   return cycles;
2999 #undef FLD
3000 }
3001
3002 UINT
3003 sh2_sh2_model::model_movb3_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3004 {
3005 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
3006   const sh2_scache* abuf = sem;
3007   const sh2_idesc* idesc = abuf->idesc;
3008   int cycles = 0;
3009   {
3010     int referenced = 0;
3011     unsigned long long insn_referenced = abuf->written;
3012     INT in_usereg = -1;
3013     in_usereg = FLD (in_rn);
3014     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3015   }
3016   {
3017     int referenced = 0;
3018     unsigned long long insn_referenced = abuf->written;
3019     INT in_usereg = -1;
3020     in_usereg = FLD (in_rm);
3021     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3022   }
3023   {
3024     int referenced = 0;
3025     unsigned long long insn_referenced = abuf->written;
3026     INT in_usereg = -1;
3027     in_usereg = FLD (in_r0);
3028     cycles += model_u_use_gr_after (current_cpu, idesc, 2, referenced, in_usereg);
3029   }
3030   {
3031     int referenced = 0;
3032     unsigned long long insn_referenced = abuf->written;
3033     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
3034   }
3035   {
3036     int referenced = 0;
3037     unsigned long long insn_referenced = abuf->written;
3038     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
3039   }
3040   return cycles;
3041 #undef FLD
3042 }
3043
3044 UINT
3045 sh2_sh2_model::model_movb4_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3046 {
3047 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3048   const sh2_scache* abuf = sem;
3049   const sh2_idesc* idesc = abuf->idesc;
3050   int cycles = 0;
3051   {
3052     cycles += model_u_exec_before (current_cpu, idesc, 0);
3053   }
3054   {
3055     cycles += model_u_sx_before (current_cpu, idesc, 1);
3056   }
3057   {
3058     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
3059   }
3060   return cycles;
3061 #undef FLD
3062 }
3063
3064 UINT
3065 sh2_sh2_model::model_movb4_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3066 {
3067 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3068   const sh2_scache* abuf = sem;
3069   const sh2_idesc* idesc = abuf->idesc;
3070   int cycles = 0;
3071   {
3072     int referenced = 0;
3073     unsigned long long insn_referenced = abuf->written;
3074     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
3075   }
3076   {
3077     int referenced = 0;
3078     unsigned long long insn_referenced = abuf->written;
3079     cycles += model_u_sx_after (current_cpu, idesc, 1, referenced);
3080   }
3081   {
3082     int referenced = 0;
3083     unsigned long long insn_referenced = abuf->written;
3084     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
3085   }
3086   return cycles;
3087 #undef FLD
3088 }
3089
3090 UINT
3091 sh2_sh2_model::model_movb5_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3092 {
3093 #define FLD(f) abuf->fields.sfmt_movb5_compact.f
3094   const sh2_scache* abuf = sem;
3095   const sh2_idesc* idesc = abuf->idesc;
3096   int cycles = 0;
3097   {
3098     INT in_usereg = -1;
3099     in_usereg = FLD (in_r0);
3100     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3101   }
3102   {
3103     INT in_usereg = -1;
3104     in_usereg = FLD (in_rm);
3105     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
3106   }
3107   {
3108     cycles += model_u_exec_before (current_cpu, idesc, 2);
3109   }
3110   {
3111     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
3112   }
3113   return cycles;
3114 #undef FLD
3115 }
3116
3117 UINT
3118 sh2_sh2_model::model_movb5_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3119 {
3120 #define FLD(f) abuf->fields.sfmt_movb5_compact.f
3121   const sh2_scache* abuf = sem;
3122   const sh2_idesc* idesc = abuf->idesc;
3123   int cycles = 0;
3124   {
3125     int referenced = 0;
3126     unsigned long long insn_referenced = abuf->written;
3127     INT in_usereg = -1;
3128     in_usereg = FLD (in_r0);
3129     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3130   }
3131   {
3132     int referenced = 0;
3133     unsigned long long insn_referenced = abuf->written;
3134     INT in_usereg = -1;
3135     in_usereg = FLD (in_rm);
3136     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3137   }
3138   {
3139     int referenced = 0;
3140     unsigned long long insn_referenced = abuf->written;
3141     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3142   }
3143   {
3144     int referenced = 0;
3145     unsigned long long insn_referenced = abuf->written;
3146     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
3147   }
3148   return cycles;
3149 #undef FLD
3150 }
3151
3152 UINT
3153 sh2_sh2_model::model_movb6_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3154 {
3155 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
3156   const sh2_scache* abuf = sem;
3157   const sh2_idesc* idesc = abuf->idesc;
3158   int cycles = 0;
3159   {
3160     INT in_usereg = -1;
3161     in_usereg = FLD (in_rm);
3162     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3163   }
3164   {
3165     cycles += model_u_exec_before (current_cpu, idesc, 1);
3166   }
3167   {
3168     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
3169   }
3170   {
3171     INT out_loadreg = -1;
3172     out_loadreg = FLD (out_rn);
3173     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
3174   }
3175   return cycles;
3176 #undef FLD
3177 }
3178
3179 UINT
3180 sh2_sh2_model::model_movb6_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3181 {
3182 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
3183   const sh2_scache* abuf = sem;
3184   const sh2_idesc* idesc = abuf->idesc;
3185   int cycles = 0;
3186   {
3187     int referenced = 0;
3188     unsigned long long insn_referenced = abuf->written;
3189     INT in_usereg = -1;
3190     in_usereg = FLD (in_rm);
3191     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3192   }
3193   {
3194     int referenced = 0;
3195     unsigned long long insn_referenced = abuf->written;
3196     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3197   }
3198   {
3199     int referenced = 0;
3200     unsigned long long insn_referenced = abuf->written;
3201     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
3202   }
3203   {
3204     int referenced = 0;
3205     unsigned long long insn_referenced = abuf->written;
3206     INT out_loadreg = -1;
3207     out_loadreg = FLD (out_rn);
3208     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
3209   }
3210   return cycles;
3211 #undef FLD
3212 }
3213
3214 UINT
3215 sh2_sh2_model::model_movb7_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3216 {
3217 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3218   const sh2_scache* abuf = sem;
3219   const sh2_idesc* idesc = abuf->idesc;
3220   int cycles = 0;
3221   {
3222     INT in_usereg = -1;
3223     in_usereg = FLD (in_rm);
3224     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3225   }
3226   {
3227     cycles += model_u_exec_before (current_cpu, idesc, 1);
3228   }
3229   {
3230     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
3231   }
3232   {
3233     INT out_loadreg = -1;
3234     out_loadreg = FLD (out_rn);
3235     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
3236   }
3237   return cycles;
3238 #undef FLD
3239 }
3240
3241 UINT
3242 sh2_sh2_model::model_movb7_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3243 {
3244 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3245   const sh2_scache* abuf = sem;
3246   const sh2_idesc* idesc = abuf->idesc;
3247   int cycles = 0;
3248   {
3249     int referenced = 0;
3250     unsigned long long insn_referenced = abuf->written;
3251     INT in_usereg = -1;
3252     in_usereg = FLD (in_rm);
3253     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3254   }
3255   {
3256     int referenced = 0;
3257     unsigned long long insn_referenced = abuf->written;
3258     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3259   }
3260   {
3261     int referenced = 0;
3262     unsigned long long insn_referenced = abuf->written;
3263     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
3264   }
3265   {
3266     int referenced = 0;
3267     unsigned long long insn_referenced = abuf->written;
3268     INT out_loadreg = -1;
3269     out_loadreg = FLD (out_rn);
3270     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
3271   }
3272   return cycles;
3273 #undef FLD
3274 }
3275
3276 UINT
3277 sh2_sh2_model::model_movb8_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3278 {
3279 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
3280   const sh2_scache* abuf = sem;
3281   const sh2_idesc* idesc = abuf->idesc;
3282   int cycles = 0;
3283   {
3284     INT in_usereg = -1;
3285     in_usereg = FLD (in_rm);
3286     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3287   }
3288   {
3289     INT in_usereg = -1;
3290     in_usereg = FLD (in_r0);
3291     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
3292   }
3293   {
3294     cycles += model_u_exec_before (current_cpu, idesc, 2);
3295   }
3296   {
3297     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
3298   }
3299   {
3300     INT out_loadreg = -1;
3301     out_loadreg = FLD (out_rn);
3302     cycles += model_u_load_gr_before (current_cpu, idesc, 4, out_loadreg);
3303   }
3304   return cycles;
3305 #undef FLD
3306 }
3307
3308 UINT
3309 sh2_sh2_model::model_movb8_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3310 {
3311 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
3312   const sh2_scache* abuf = sem;
3313   const sh2_idesc* idesc = abuf->idesc;
3314   int cycles = 0;
3315   {
3316     int referenced = 0;
3317     unsigned long long insn_referenced = abuf->written;
3318     INT in_usereg = -1;
3319     in_usereg = FLD (in_rm);
3320     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3321   }
3322   {
3323     int referenced = 0;
3324     unsigned long long insn_referenced = abuf->written;
3325     INT in_usereg = -1;
3326     in_usereg = FLD (in_r0);
3327     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3328   }
3329   {
3330     int referenced = 0;
3331     unsigned long long insn_referenced = abuf->written;
3332     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3333   }
3334   {
3335     int referenced = 0;
3336     unsigned long long insn_referenced = abuf->written;
3337     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
3338   }
3339   {
3340     int referenced = 0;
3341     unsigned long long insn_referenced = abuf->written;
3342     INT out_loadreg = -1;
3343     out_loadreg = FLD (out_rn);
3344     cycles += model_u_load_gr_after (current_cpu, idesc, 4, referenced, out_loadreg);
3345   }
3346   return cycles;
3347 #undef FLD
3348 }
3349
3350 UINT
3351 sh2_sh2_model::model_movb9_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3352 {
3353 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3354   const sh2_scache* abuf = sem;
3355   const sh2_idesc* idesc = abuf->idesc;
3356   int cycles = 0;
3357   {
3358     cycles += model_u_exec_before (current_cpu, idesc, 0);
3359   }
3360   {
3361     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
3362   }
3363   {
3364     INT out_loadreg = -1;
3365     out_loadreg = FLD (out_r0);
3366     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
3367   }
3368   return cycles;
3369 #undef FLD
3370 }
3371
3372 UINT
3373 sh2_sh2_model::model_movb9_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3374 {
3375 #define FLD(f) abuf->fields.sfmt_andi_compact.f
3376   const sh2_scache* abuf = sem;
3377   const sh2_idesc* idesc = abuf->idesc;
3378   int cycles = 0;
3379   {
3380     int referenced = 0;
3381     unsigned long long insn_referenced = abuf->written;
3382     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
3383   }
3384   {
3385     int referenced = 0;
3386     unsigned long long insn_referenced = abuf->written;
3387     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
3388   }
3389   {
3390     int referenced = 0;
3391     unsigned long long insn_referenced = abuf->written;
3392     INT out_loadreg = -1;
3393     out_loadreg = FLD (out_r0);
3394     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
3395   }
3396   return cycles;
3397 #undef FLD
3398 }
3399
3400 UINT
3401 sh2_sh2_model::model_movb10_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3402 {
3403 #define FLD(f) abuf->fields.sfmt_movb10_compact.f
3404   const sh2_scache* abuf = sem;
3405   const sh2_idesc* idesc = abuf->idesc;
3406   int cycles = 0;
3407   {
3408     INT in_usereg = -1;
3409     in_usereg = FLD (in_rm);
3410     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3411   }
3412   {
3413     cycles += model_u_exec_before (current_cpu, idesc, 1);
3414   }
3415   {
3416     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
3417   }
3418   {
3419     INT out_loadreg = -1;
3420     out_loadreg = FLD (out_r0);
3421     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
3422   }
3423   return cycles;
3424 #undef FLD
3425 }
3426
3427 UINT
3428 sh2_sh2_model::model_movb10_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3429 {
3430 #define FLD(f) abuf->fields.sfmt_movb10_compact.f
3431   const sh2_scache* abuf = sem;
3432   const sh2_idesc* idesc = abuf->idesc;
3433   int cycles = 0;
3434   {
3435     int referenced = 0;
3436     unsigned long long insn_referenced = abuf->written;
3437     INT in_usereg = -1;
3438     in_usereg = FLD (in_rm);
3439     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3440   }
3441   {
3442     int referenced = 0;
3443     unsigned long long insn_referenced = abuf->written;
3444     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3445   }
3446   {
3447     int referenced = 0;
3448     unsigned long long insn_referenced = abuf->written;
3449     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
3450   }
3451   {
3452     int referenced = 0;
3453     unsigned long long insn_referenced = abuf->written;
3454     INT out_loadreg = -1;
3455     out_loadreg = FLD (out_r0);
3456     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
3457   }
3458   return cycles;
3459 #undef FLD
3460 }
3461
3462 UINT
3463 sh2_sh2_model::model_movl1_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3464 {
3465 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
3466   const sh2_scache* abuf = sem;
3467   const sh2_idesc* idesc = abuf->idesc;
3468   int cycles = 0;
3469   {
3470     INT in_usereg = -1;
3471     in_usereg = FLD (in_rm);
3472     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3473   }
3474   {
3475     INT in_usereg = -1;
3476     in_usereg = FLD (in_rn);
3477     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
3478   }
3479   {
3480     cycles += model_u_exec_before (current_cpu, idesc, 2);
3481   }
3482   {
3483     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
3484   }
3485   return cycles;
3486 #undef FLD
3487 }
3488
3489 UINT
3490 sh2_sh2_model::model_movl1_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3491 {
3492 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
3493   const sh2_scache* abuf = sem;
3494   const sh2_idesc* idesc = abuf->idesc;
3495   int cycles = 0;
3496   {
3497     int referenced = 0;
3498     unsigned long long insn_referenced = abuf->written;
3499     INT in_usereg = -1;
3500     in_usereg = FLD (in_rm);
3501     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3502   }
3503   {
3504     int referenced = 0;
3505     unsigned long long insn_referenced = abuf->written;
3506     INT in_usereg = -1;
3507     in_usereg = FLD (in_rn);
3508     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3509   }
3510   {
3511     int referenced = 0;
3512     unsigned long long insn_referenced = abuf->written;
3513     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3514   }
3515   {
3516     int referenced = 0;
3517     unsigned long long insn_referenced = abuf->written;
3518     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
3519   }
3520   return cycles;
3521 #undef FLD
3522 }
3523
3524 UINT
3525 sh2_sh2_model::model_movl2_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3526 {
3527 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3528   const sh2_scache* abuf = sem;
3529   const sh2_idesc* idesc = abuf->idesc;
3530   int cycles = 0;
3531   {
3532     INT in_usereg = -1;
3533     in_usereg = FLD (in_rm);
3534     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3535   }
3536   {
3537     INT in_usereg = -1;
3538     in_usereg = FLD (in_rn);
3539     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
3540   }
3541   {
3542     cycles += model_u_exec_before (current_cpu, idesc, 2);
3543   }
3544   {
3545     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
3546   }
3547   return cycles;
3548 #undef FLD
3549 }
3550
3551 UINT
3552 sh2_sh2_model::model_movl2_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3553 {
3554 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3555   const sh2_scache* abuf = sem;
3556   const sh2_idesc* idesc = abuf->idesc;
3557   int cycles = 0;
3558   {
3559     int referenced = 0;
3560     unsigned long long insn_referenced = abuf->written;
3561     INT in_usereg = -1;
3562     in_usereg = FLD (in_rm);
3563     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3564   }
3565   {
3566     int referenced = 0;
3567     unsigned long long insn_referenced = abuf->written;
3568     INT in_usereg = -1;
3569     in_usereg = FLD (in_rn);
3570     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3571   }
3572   {
3573     int referenced = 0;
3574     unsigned long long insn_referenced = abuf->written;
3575     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3576   }
3577   {
3578     int referenced = 0;
3579     unsigned long long insn_referenced = abuf->written;
3580     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
3581   }
3582   return cycles;
3583 #undef FLD
3584 }
3585
3586 UINT
3587 sh2_sh2_model::model_movl3_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3588 {
3589 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
3590   const sh2_scache* abuf = sem;
3591   const sh2_idesc* idesc = abuf->idesc;
3592   int cycles = 0;
3593   {
3594     INT in_usereg = -1;
3595     in_usereg = FLD (in_rm);
3596     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3597   }
3598   {
3599     INT in_usereg = -1;
3600     in_usereg = FLD (in_rn);
3601     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
3602   }
3603   {
3604     INT in_usereg = -1;
3605     in_usereg = FLD (in_r0);
3606     cycles += model_u_use_gr_before (current_cpu, idesc, 2, in_usereg);
3607   }
3608   {
3609     cycles += model_u_exec_before (current_cpu, idesc, 3);
3610   }
3611   {
3612     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
3613   }
3614   return cycles;
3615 #undef FLD
3616 }
3617
3618 UINT
3619 sh2_sh2_model::model_movl3_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3620 {
3621 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
3622   const sh2_scache* abuf = sem;
3623   const sh2_idesc* idesc = abuf->idesc;
3624   int cycles = 0;
3625   {
3626     int referenced = 0;
3627     unsigned long long insn_referenced = abuf->written;
3628     INT in_usereg = -1;
3629     in_usereg = FLD (in_rm);
3630     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3631   }
3632   {
3633     int referenced = 0;
3634     unsigned long long insn_referenced = abuf->written;
3635     INT in_usereg = -1;
3636     in_usereg = FLD (in_rn);
3637     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3638   }
3639   {
3640     int referenced = 0;
3641     unsigned long long insn_referenced = abuf->written;
3642     INT in_usereg = -1;
3643     in_usereg = FLD (in_r0);
3644     cycles += model_u_use_gr_after (current_cpu, idesc, 2, referenced, in_usereg);
3645   }
3646   {
3647     int referenced = 0;
3648     unsigned long long insn_referenced = abuf->written;
3649     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
3650   }
3651   {
3652     int referenced = 0;
3653     unsigned long long insn_referenced = abuf->written;
3654     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
3655   }
3656   return cycles;
3657 #undef FLD
3658 }
3659
3660 UINT
3661 sh2_sh2_model::model_movl4_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3662 {
3663 #define FLD(f) abuf->fields.sfmt_movl4_compact.f
3664   const sh2_scache* abuf = sem;
3665   const sh2_idesc* idesc = abuf->idesc;
3666   int cycles = 0;
3667   {
3668     INT in_usereg = -1;
3669     in_usereg = FLD (in_r0);
3670     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3671   }
3672   {
3673     cycles += model_u_exec_before (current_cpu, idesc, 1);
3674   }
3675   {
3676     cycles += model_u_sx_before (current_cpu, idesc, 2);
3677   }
3678   {
3679     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
3680   }
3681   return cycles;
3682 #undef FLD
3683 }
3684
3685 UINT
3686 sh2_sh2_model::model_movl4_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3687 {
3688 #define FLD(f) abuf->fields.sfmt_movl4_compact.f
3689   const sh2_scache* abuf = sem;
3690   const sh2_idesc* idesc = abuf->idesc;
3691   int cycles = 0;
3692   {
3693     int referenced = 0;
3694     unsigned long long insn_referenced = abuf->written;
3695     INT in_usereg = -1;
3696     in_usereg = FLD (in_r0);
3697     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3698   }
3699   {
3700     int referenced = 0;
3701     unsigned long long insn_referenced = abuf->written;
3702     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3703   }
3704   {
3705     int referenced = 0;
3706     unsigned long long insn_referenced = abuf->written;
3707     cycles += model_u_sx_after (current_cpu, idesc, 2, referenced);
3708   }
3709   {
3710     int referenced = 0;
3711     unsigned long long insn_referenced = abuf->written;
3712     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
3713   }
3714   return cycles;
3715 #undef FLD
3716 }
3717
3718 UINT
3719 sh2_sh2_model::model_movl5_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3720 {
3721 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
3722   const sh2_scache* abuf = sem;
3723   const sh2_idesc* idesc = abuf->idesc;
3724   int cycles = 0;
3725   {
3726     INT in_usereg = -1;
3727     in_usereg = FLD (in_rm);
3728     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3729   }
3730   {
3731     INT in_usereg = -1;
3732     in_usereg = FLD (in_rn);
3733     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
3734   }
3735   {
3736     cycles += model_u_exec_before (current_cpu, idesc, 2);
3737   }
3738   {
3739     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
3740   }
3741   return cycles;
3742 #undef FLD
3743 }
3744
3745 UINT
3746 sh2_sh2_model::model_movl5_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3747 {
3748 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
3749   const sh2_scache* abuf = sem;
3750   const sh2_idesc* idesc = abuf->idesc;
3751   int cycles = 0;
3752   {
3753     int referenced = 0;
3754     unsigned long long insn_referenced = abuf->written;
3755     INT in_usereg = -1;
3756     in_usereg = FLD (in_rm);
3757     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3758   }
3759   {
3760     int referenced = 0;
3761     unsigned long long insn_referenced = abuf->written;
3762     INT in_usereg = -1;
3763     in_usereg = FLD (in_rn);
3764     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3765   }
3766   {
3767     int referenced = 0;
3768     unsigned long long insn_referenced = abuf->written;
3769     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3770   }
3771   {
3772     int referenced = 0;
3773     unsigned long long insn_referenced = abuf->written;
3774     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
3775   }
3776   return cycles;
3777 #undef FLD
3778 }
3779
3780 UINT
3781 sh2_sh2_model::model_movl6_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3782 {
3783 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
3784   const sh2_scache* abuf = sem;
3785   const sh2_idesc* idesc = abuf->idesc;
3786   int cycles = 0;
3787   {
3788     INT in_usereg = -1;
3789     in_usereg = FLD (in_rm);
3790     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3791   }
3792   {
3793     cycles += model_u_exec_before (current_cpu, idesc, 1);
3794   }
3795   {
3796     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
3797   }
3798   {
3799     INT out_loadreg = -1;
3800     out_loadreg = FLD (out_rn);
3801     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
3802   }
3803   return cycles;
3804 #undef FLD
3805 }
3806
3807 UINT
3808 sh2_sh2_model::model_movl6_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3809 {
3810 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
3811   const sh2_scache* abuf = sem;
3812   const sh2_idesc* idesc = abuf->idesc;
3813   int cycles = 0;
3814   {
3815     int referenced = 0;
3816     unsigned long long insn_referenced = abuf->written;
3817     INT in_usereg = -1;
3818     in_usereg = FLD (in_rm);
3819     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3820   }
3821   {
3822     int referenced = 0;
3823     unsigned long long insn_referenced = abuf->written;
3824     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3825   }
3826   {
3827     int referenced = 0;
3828     unsigned long long insn_referenced = abuf->written;
3829     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
3830   }
3831   {
3832     int referenced = 0;
3833     unsigned long long insn_referenced = abuf->written;
3834     INT out_loadreg = -1;
3835     out_loadreg = FLD (out_rn);
3836     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
3837   }
3838   return cycles;
3839 #undef FLD
3840 }
3841
3842 UINT
3843 sh2_sh2_model::model_movl7_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3844 {
3845 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3846   const sh2_scache* abuf = sem;
3847   const sh2_idesc* idesc = abuf->idesc;
3848   int cycles = 0;
3849   {
3850     INT in_usereg = -1;
3851     in_usereg = FLD (in_rm);
3852     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3853   }
3854   {
3855     cycles += model_u_exec_before (current_cpu, idesc, 1);
3856   }
3857   {
3858     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
3859   }
3860   {
3861     INT out_loadreg = -1;
3862     out_loadreg = FLD (out_rn);
3863     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
3864   }
3865   return cycles;
3866 #undef FLD
3867 }
3868
3869 UINT
3870 sh2_sh2_model::model_movl7_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3871 {
3872 #define FLD(f) abuf->fields.sfmt_macl_compact.f
3873   const sh2_scache* abuf = sem;
3874   const sh2_idesc* idesc = abuf->idesc;
3875   int cycles = 0;
3876   {
3877     int referenced = 0;
3878     unsigned long long insn_referenced = abuf->written;
3879     INT in_usereg = -1;
3880     in_usereg = FLD (in_rm);
3881     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3882   }
3883   {
3884     int referenced = 0;
3885     unsigned long long insn_referenced = abuf->written;
3886     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
3887   }
3888   {
3889     int referenced = 0;
3890     unsigned long long insn_referenced = abuf->written;
3891     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
3892   }
3893   {
3894     int referenced = 0;
3895     unsigned long long insn_referenced = abuf->written;
3896     INT out_loadreg = -1;
3897     out_loadreg = FLD (out_rn);
3898     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
3899   }
3900   return cycles;
3901 #undef FLD
3902 }
3903
3904 UINT
3905 sh2_sh2_model::model_movl8_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3906 {
3907 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
3908   const sh2_scache* abuf = sem;
3909   const sh2_idesc* idesc = abuf->idesc;
3910   int cycles = 0;
3911   {
3912     INT in_usereg = -1;
3913     in_usereg = FLD (in_rm);
3914     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
3915   }
3916   {
3917     INT in_usereg = -1;
3918     in_usereg = FLD (in_r0);
3919     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
3920   }
3921   {
3922     cycles += model_u_exec_before (current_cpu, idesc, 2);
3923   }
3924   {
3925     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
3926   }
3927   {
3928     INT out_loadreg = -1;
3929     out_loadreg = FLD (out_rn);
3930     cycles += model_u_load_gr_before (current_cpu, idesc, 4, out_loadreg);
3931   }
3932   return cycles;
3933 #undef FLD
3934 }
3935
3936 UINT
3937 sh2_sh2_model::model_movl8_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
3938 {
3939 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
3940   const sh2_scache* abuf = sem;
3941   const sh2_idesc* idesc = abuf->idesc;
3942   int cycles = 0;
3943   {
3944     int referenced = 0;
3945     unsigned long long insn_referenced = abuf->written;
3946     INT in_usereg = -1;
3947     in_usereg = FLD (in_rm);
3948     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
3949   }
3950   {
3951     int referenced = 0;
3952     unsigned long long insn_referenced = abuf->written;
3953     INT in_usereg = -1;
3954     in_usereg = FLD (in_r0);
3955     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
3956   }
3957   {
3958     int referenced = 0;
3959     unsigned long long insn_referenced = abuf->written;
3960     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
3961   }
3962   {
3963     int referenced = 0;
3964     unsigned long long insn_referenced = abuf->written;
3965     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
3966   }
3967   {
3968     int referenced = 0;
3969     unsigned long long insn_referenced = abuf->written;
3970     INT out_loadreg = -1;
3971     out_loadreg = FLD (out_rn);
3972     cycles += model_u_load_gr_after (current_cpu, idesc, 4, referenced, out_loadreg);
3973   }
3974   return cycles;
3975 #undef FLD
3976 }
3977
3978 UINT
3979 sh2_sh2_model::model_movl9_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
3980 {
3981 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
3982   const sh2_scache* abuf = sem;
3983   const sh2_idesc* idesc = abuf->idesc;
3984   int cycles = 0;
3985   {
3986     cycles += model_u_exec_before (current_cpu, idesc, 0);
3987   }
3988   {
3989     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
3990   }
3991   {
3992     INT out_loadreg = -1;
3993     out_loadreg = FLD (out_r0);
3994     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
3995   }
3996   return cycles;
3997 #undef FLD
3998 }
3999
4000 UINT
4001 sh2_sh2_model::model_movl9_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4002 {
4003 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
4004   const sh2_scache* abuf = sem;
4005   const sh2_idesc* idesc = abuf->idesc;
4006   int cycles = 0;
4007   {
4008     int referenced = 0;
4009     unsigned long long insn_referenced = abuf->written;
4010     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
4011   }
4012   {
4013     int referenced = 0;
4014     unsigned long long insn_referenced = abuf->written;
4015     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
4016   }
4017   {
4018     int referenced = 0;
4019     unsigned long long insn_referenced = abuf->written;
4020     INT out_loadreg = -1;
4021     out_loadreg = FLD (out_r0);
4022     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
4023   }
4024   return cycles;
4025 #undef FLD
4026 }
4027
4028 UINT
4029 sh2_sh2_model::model_movl10_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4030 {
4031 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
4032   const sh2_scache* abuf = sem;
4033   const sh2_idesc* idesc = abuf->idesc;
4034   int cycles = 0;
4035   {
4036     cycles += model_u_exec_before (current_cpu, idesc, 0);
4037   }
4038   {
4039     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
4040   }
4041   {
4042     INT out_loadreg = -1;
4043     out_loadreg = FLD (out_rn);
4044     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
4045   }
4046   return cycles;
4047 #undef FLD
4048 }
4049
4050 UINT
4051 sh2_sh2_model::model_movl10_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4052 {
4053 #define FLD(f) abuf->fields.sfmt_movl10_compact.f
4054   const sh2_scache* abuf = sem;
4055   const sh2_idesc* idesc = abuf->idesc;
4056   int cycles = 0;
4057   {
4058     int referenced = 0;
4059     unsigned long long insn_referenced = abuf->written;
4060     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
4061   }
4062   {
4063     int referenced = 0;
4064     unsigned long long insn_referenced = abuf->written;
4065     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
4066   }
4067   {
4068     int referenced = 0;
4069     unsigned long long insn_referenced = abuf->written;
4070     INT out_loadreg = -1;
4071     out_loadreg = FLD (out_rn);
4072     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
4073   }
4074   return cycles;
4075 #undef FLD
4076 }
4077
4078 UINT
4079 sh2_sh2_model::model_movl11_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4080 {
4081 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
4082   const sh2_scache* abuf = sem;
4083   const sh2_idesc* idesc = abuf->idesc;
4084   int cycles = 0;
4085   {
4086     INT in_usereg = -1;
4087     in_usereg = FLD (in_rm);
4088     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4089   }
4090   {
4091     cycles += model_u_exec_before (current_cpu, idesc, 1);
4092   }
4093   {
4094     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
4095   }
4096   {
4097     INT out_loadreg = -1;
4098     out_loadreg = FLD (out_rn);
4099     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
4100   }
4101   return cycles;
4102 #undef FLD
4103 }
4104
4105 UINT
4106 sh2_sh2_model::model_movl11_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4107 {
4108 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
4109   const sh2_scache* abuf = sem;
4110   const sh2_idesc* idesc = abuf->idesc;
4111   int cycles = 0;
4112   {
4113     int referenced = 0;
4114     unsigned long long insn_referenced = abuf->written;
4115     INT in_usereg = -1;
4116     in_usereg = FLD (in_rm);
4117     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4118   }
4119   {
4120     int referenced = 0;
4121     unsigned long long insn_referenced = abuf->written;
4122     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
4123   }
4124   {
4125     int referenced = 0;
4126     unsigned long long insn_referenced = abuf->written;
4127     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
4128   }
4129   {
4130     int referenced = 0;
4131     unsigned long long insn_referenced = abuf->written;
4132     INT out_loadreg = -1;
4133     out_loadreg = FLD (out_rn);
4134     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
4135   }
4136   return cycles;
4137 #undef FLD
4138 }
4139
4140 UINT
4141 sh2_sh2_model::model_movw1_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4142 {
4143 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4144   const sh2_scache* abuf = sem;
4145   const sh2_idesc* idesc = abuf->idesc;
4146   int cycles = 0;
4147   {
4148     INT in_usereg = -1;
4149     in_usereg = FLD (in_rm);
4150     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4151   }
4152   {
4153     INT in_usereg = -1;
4154     in_usereg = FLD (in_rn);
4155     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4156   }
4157   {
4158     cycles += model_u_exec_before (current_cpu, idesc, 2);
4159   }
4160   {
4161     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4162   }
4163   return cycles;
4164 #undef FLD
4165 }
4166
4167 UINT
4168 sh2_sh2_model::model_movw1_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4169 {
4170 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4171   const sh2_scache* abuf = sem;
4172   const sh2_idesc* idesc = abuf->idesc;
4173   int cycles = 0;
4174   {
4175     int referenced = 0;
4176     unsigned long long insn_referenced = abuf->written;
4177     INT in_usereg = -1;
4178     in_usereg = FLD (in_rm);
4179     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4180   }
4181   {
4182     int referenced = 0;
4183     unsigned long long insn_referenced = abuf->written;
4184     INT in_usereg = -1;
4185     in_usereg = FLD (in_rn);
4186     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4187   }
4188   {
4189     int referenced = 0;
4190     unsigned long long insn_referenced = abuf->written;
4191     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4192   }
4193   {
4194     int referenced = 0;
4195     unsigned long long insn_referenced = abuf->written;
4196     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
4197   }
4198   return cycles;
4199 #undef FLD
4200 }
4201
4202 UINT
4203 sh2_sh2_model::model_movw2_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4204 {
4205 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4206   const sh2_scache* abuf = sem;
4207   const sh2_idesc* idesc = abuf->idesc;
4208   int cycles = 0;
4209   {
4210     INT in_usereg = -1;
4211     in_usereg = FLD (in_rm);
4212     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4213   }
4214   {
4215     INT in_usereg = -1;
4216     in_usereg = FLD (in_rn);
4217     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4218   }
4219   {
4220     cycles += model_u_exec_before (current_cpu, idesc, 2);
4221   }
4222   {
4223     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4224   }
4225   return cycles;
4226 #undef FLD
4227 }
4228
4229 UINT
4230 sh2_sh2_model::model_movw2_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4231 {
4232 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4233   const sh2_scache* abuf = sem;
4234   const sh2_idesc* idesc = abuf->idesc;
4235   int cycles = 0;
4236   {
4237     int referenced = 0;
4238     unsigned long long insn_referenced = abuf->written;
4239     INT in_usereg = -1;
4240     in_usereg = FLD (in_rm);
4241     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4242   }
4243   {
4244     int referenced = 0;
4245     unsigned long long insn_referenced = abuf->written;
4246     INT in_usereg = -1;
4247     in_usereg = FLD (in_rn);
4248     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4249   }
4250   {
4251     int referenced = 0;
4252     unsigned long long insn_referenced = abuf->written;
4253     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4254   }
4255   {
4256     int referenced = 0;
4257     unsigned long long insn_referenced = abuf->written;
4258     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
4259   }
4260   return cycles;
4261 #undef FLD
4262 }
4263
4264 UINT
4265 sh2_sh2_model::model_movw3_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4266 {
4267 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
4268   const sh2_scache* abuf = sem;
4269   const sh2_idesc* idesc = abuf->idesc;
4270   int cycles = 0;
4271   {
4272     INT in_usereg = -1;
4273     in_usereg = FLD (in_rm);
4274     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4275   }
4276   {
4277     INT in_usereg = -1;
4278     in_usereg = FLD (in_rn);
4279     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4280   }
4281   {
4282     INT in_usereg = -1;
4283     in_usereg = FLD (in_r0);
4284     cycles += model_u_use_gr_before (current_cpu, idesc, 2, in_usereg);
4285   }
4286   {
4287     cycles += model_u_exec_before (current_cpu, idesc, 3);
4288   }
4289   {
4290     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
4291   }
4292   return cycles;
4293 #undef FLD
4294 }
4295
4296 UINT
4297 sh2_sh2_model::model_movw3_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4298 {
4299 #define FLD(f) abuf->fields.sfmt_movb3_compact.f
4300   const sh2_scache* abuf = sem;
4301   const sh2_idesc* idesc = abuf->idesc;
4302   int cycles = 0;
4303   {
4304     int referenced = 0;
4305     unsigned long long insn_referenced = abuf->written;
4306     INT in_usereg = -1;
4307     in_usereg = FLD (in_rm);
4308     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4309   }
4310   {
4311     int referenced = 0;
4312     unsigned long long insn_referenced = abuf->written;
4313     INT in_usereg = -1;
4314     in_usereg = FLD (in_rn);
4315     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4316   }
4317   {
4318     int referenced = 0;
4319     unsigned long long insn_referenced = abuf->written;
4320     INT in_usereg = -1;
4321     in_usereg = FLD (in_r0);
4322     cycles += model_u_use_gr_after (current_cpu, idesc, 2, referenced, in_usereg);
4323   }
4324   {
4325     int referenced = 0;
4326     unsigned long long insn_referenced = abuf->written;
4327     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
4328   }
4329   {
4330     int referenced = 0;
4331     unsigned long long insn_referenced = abuf->written;
4332     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
4333   }
4334   return cycles;
4335 #undef FLD
4336 }
4337
4338 UINT
4339 sh2_sh2_model::model_movw4_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4340 {
4341 #define FLD(f) abuf->fields.sfmt_movw4_compact.f
4342   const sh2_scache* abuf = sem;
4343   const sh2_idesc* idesc = abuf->idesc;
4344   int cycles = 0;
4345   {
4346     INT in_usereg = -1;
4347     in_usereg = FLD (in_r0);
4348     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4349   }
4350   {
4351     cycles += model_u_exec_before (current_cpu, idesc, 1);
4352   }
4353   {
4354     cycles += model_u_sx_before (current_cpu, idesc, 2);
4355   }
4356   {
4357     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4358   }
4359   return cycles;
4360 #undef FLD
4361 }
4362
4363 UINT
4364 sh2_sh2_model::model_movw4_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4365 {
4366 #define FLD(f) abuf->fields.sfmt_movw4_compact.f
4367   const sh2_scache* abuf = sem;
4368   const sh2_idesc* idesc = abuf->idesc;
4369   int cycles = 0;
4370   {
4371     int referenced = 0;
4372     unsigned long long insn_referenced = abuf->written;
4373     INT in_usereg = -1;
4374     in_usereg = FLD (in_r0);
4375     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4376   }
4377   {
4378     int referenced = 0;
4379     unsigned long long insn_referenced = abuf->written;
4380     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
4381   }
4382   {
4383     int referenced = 0;
4384     unsigned long long insn_referenced = abuf->written;
4385     cycles += model_u_sx_after (current_cpu, idesc, 2, referenced);
4386   }
4387   {
4388     int referenced = 0;
4389     unsigned long long insn_referenced = abuf->written;
4390     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
4391   }
4392   return cycles;
4393 #undef FLD
4394 }
4395
4396 UINT
4397 sh2_sh2_model::model_movw5_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4398 {
4399 #define FLD(f) abuf->fields.sfmt_movw5_compact.f
4400   const sh2_scache* abuf = sem;
4401   const sh2_idesc* idesc = abuf->idesc;
4402   int cycles = 0;
4403   {
4404     INT in_usereg = -1;
4405     in_usereg = FLD (in_rm);
4406     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4407   }
4408   {
4409     INT in_usereg = -1;
4410     in_usereg = FLD (in_r0);
4411     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4412   }
4413   {
4414     cycles += model_u_exec_before (current_cpu, idesc, 2);
4415   }
4416   {
4417     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4418   }
4419   return cycles;
4420 #undef FLD
4421 }
4422
4423 UINT
4424 sh2_sh2_model::model_movw5_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4425 {
4426 #define FLD(f) abuf->fields.sfmt_movw5_compact.f
4427   const sh2_scache* abuf = sem;
4428   const sh2_idesc* idesc = abuf->idesc;
4429   int cycles = 0;
4430   {
4431     int referenced = 0;
4432     unsigned long long insn_referenced = abuf->written;
4433     INT in_usereg = -1;
4434     in_usereg = FLD (in_rm);
4435     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4436   }
4437   {
4438     int referenced = 0;
4439     unsigned long long insn_referenced = abuf->written;
4440     INT in_usereg = -1;
4441     in_usereg = FLD (in_r0);
4442     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4443   }
4444   {
4445     int referenced = 0;
4446     unsigned long long insn_referenced = abuf->written;
4447     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4448   }
4449   {
4450     int referenced = 0;
4451     unsigned long long insn_referenced = abuf->written;
4452     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
4453   }
4454   return cycles;
4455 #undef FLD
4456 }
4457
4458 UINT
4459 sh2_sh2_model::model_movw6_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4460 {
4461 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
4462   const sh2_scache* abuf = sem;
4463   const sh2_idesc* idesc = abuf->idesc;
4464   int cycles = 0;
4465   {
4466     INT in_usereg = -1;
4467     in_usereg = FLD (in_rm);
4468     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4469   }
4470   {
4471     cycles += model_u_exec_before (current_cpu, idesc, 1);
4472   }
4473   {
4474     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
4475   }
4476   {
4477     INT out_loadreg = -1;
4478     out_loadreg = FLD (out_rn);
4479     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
4480   }
4481   return cycles;
4482 #undef FLD
4483 }
4484
4485 UINT
4486 sh2_sh2_model::model_movw6_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4487 {
4488 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
4489   const sh2_scache* abuf = sem;
4490   const sh2_idesc* idesc = abuf->idesc;
4491   int cycles = 0;
4492   {
4493     int referenced = 0;
4494     unsigned long long insn_referenced = abuf->written;
4495     INT in_usereg = -1;
4496     in_usereg = FLD (in_rm);
4497     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4498   }
4499   {
4500     int referenced = 0;
4501     unsigned long long insn_referenced = abuf->written;
4502     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
4503   }
4504   {
4505     int referenced = 0;
4506     unsigned long long insn_referenced = abuf->written;
4507     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
4508   }
4509   {
4510     int referenced = 0;
4511     unsigned long long insn_referenced = abuf->written;
4512     INT out_loadreg = -1;
4513     out_loadreg = FLD (out_rn);
4514     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
4515   }
4516   return cycles;
4517 #undef FLD
4518 }
4519
4520 UINT
4521 sh2_sh2_model::model_movw7_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4522 {
4523 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4524   const sh2_scache* abuf = sem;
4525   const sh2_idesc* idesc = abuf->idesc;
4526   int cycles = 0;
4527   {
4528     INT in_usereg = -1;
4529     in_usereg = FLD (in_rm);
4530     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4531   }
4532   {
4533     cycles += model_u_exec_before (current_cpu, idesc, 1);
4534   }
4535   {
4536     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
4537   }
4538   {
4539     INT out_loadreg = -1;
4540     out_loadreg = FLD (out_rn);
4541     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
4542   }
4543   return cycles;
4544 #undef FLD
4545 }
4546
4547 UINT
4548 sh2_sh2_model::model_movw7_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4549 {
4550 #define FLD(f) abuf->fields.sfmt_macl_compact.f
4551   const sh2_scache* abuf = sem;
4552   const sh2_idesc* idesc = abuf->idesc;
4553   int cycles = 0;
4554   {
4555     int referenced = 0;
4556     unsigned long long insn_referenced = abuf->written;
4557     INT in_usereg = -1;
4558     in_usereg = FLD (in_rm);
4559     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4560   }
4561   {
4562     int referenced = 0;
4563     unsigned long long insn_referenced = abuf->written;
4564     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
4565   }
4566   {
4567     int referenced = 0;
4568     unsigned long long insn_referenced = abuf->written;
4569     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
4570   }
4571   {
4572     int referenced = 0;
4573     unsigned long long insn_referenced = abuf->written;
4574     INT out_loadreg = -1;
4575     out_loadreg = FLD (out_rn);
4576     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
4577   }
4578   return cycles;
4579 #undef FLD
4580 }
4581
4582 UINT
4583 sh2_sh2_model::model_movw8_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4584 {
4585 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
4586   const sh2_scache* abuf = sem;
4587   const sh2_idesc* idesc = abuf->idesc;
4588   int cycles = 0;
4589   {
4590     INT in_usereg = -1;
4591     in_usereg = FLD (in_rm);
4592     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4593   }
4594   {
4595     INT in_usereg = -1;
4596     in_usereg = FLD (in_r0);
4597     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4598   }
4599   {
4600     cycles += model_u_exec_before (current_cpu, idesc, 2);
4601   }
4602   {
4603     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
4604   }
4605   {
4606     INT out_loadreg = -1;
4607     out_loadreg = FLD (out_rn);
4608     cycles += model_u_load_gr_before (current_cpu, idesc, 4, out_loadreg);
4609   }
4610   return cycles;
4611 #undef FLD
4612 }
4613
4614 UINT
4615 sh2_sh2_model::model_movw8_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4616 {
4617 #define FLD(f) abuf->fields.sfmt_movb8_compact.f
4618   const sh2_scache* abuf = sem;
4619   const sh2_idesc* idesc = abuf->idesc;
4620   int cycles = 0;
4621   {
4622     int referenced = 0;
4623     unsigned long long insn_referenced = abuf->written;
4624     INT in_usereg = -1;
4625     in_usereg = FLD (in_rm);
4626     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4627   }
4628   {
4629     int referenced = 0;
4630     unsigned long long insn_referenced = abuf->written;
4631     INT in_usereg = -1;
4632     in_usereg = FLD (in_r0);
4633     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4634   }
4635   {
4636     int referenced = 0;
4637     unsigned long long insn_referenced = abuf->written;
4638     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
4639   }
4640   {
4641     int referenced = 0;
4642     unsigned long long insn_referenced = abuf->written;
4643     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
4644   }
4645   {
4646     int referenced = 0;
4647     unsigned long long insn_referenced = abuf->written;
4648     INT out_loadreg = -1;
4649     out_loadreg = FLD (out_rn);
4650     cycles += model_u_load_gr_after (current_cpu, idesc, 4, referenced, out_loadreg);
4651   }
4652   return cycles;
4653 #undef FLD
4654 }
4655
4656 UINT
4657 sh2_sh2_model::model_movw9_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4658 {
4659 #define FLD(f) abuf->fields.sfmt_movw9_compact.f
4660   const sh2_scache* abuf = sem;
4661   const sh2_idesc* idesc = abuf->idesc;
4662   int cycles = 0;
4663   {
4664     cycles += model_u_exec_before (current_cpu, idesc, 0);
4665   }
4666   {
4667     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
4668   }
4669   {
4670     INT out_loadreg = -1;
4671     out_loadreg = FLD (out_r0);
4672     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
4673   }
4674   return cycles;
4675 #undef FLD
4676 }
4677
4678 UINT
4679 sh2_sh2_model::model_movw9_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4680 {
4681 #define FLD(f) abuf->fields.sfmt_movw9_compact.f
4682   const sh2_scache* abuf = sem;
4683   const sh2_idesc* idesc = abuf->idesc;
4684   int cycles = 0;
4685   {
4686     int referenced = 0;
4687     unsigned long long insn_referenced = abuf->written;
4688     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
4689   }
4690   {
4691     int referenced = 0;
4692     unsigned long long insn_referenced = abuf->written;
4693     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
4694   }
4695   {
4696     int referenced = 0;
4697     unsigned long long insn_referenced = abuf->written;
4698     INT out_loadreg = -1;
4699     out_loadreg = FLD (out_r0);
4700     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
4701   }
4702   return cycles;
4703 #undef FLD
4704 }
4705
4706 UINT
4707 sh2_sh2_model::model_movw10_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4708 {
4709 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
4710   const sh2_scache* abuf = sem;
4711   const sh2_idesc* idesc = abuf->idesc;
4712   int cycles = 0;
4713   {
4714     cycles += model_u_exec_before (current_cpu, idesc, 0);
4715   }
4716   {
4717     cycles += model_u_memory_access_before (current_cpu, idesc, 1);
4718   }
4719   {
4720     INT out_loadreg = -1;
4721     out_loadreg = FLD (out_rn);
4722     cycles += model_u_load_gr_before (current_cpu, idesc, 2, out_loadreg);
4723   }
4724   return cycles;
4725 #undef FLD
4726 }
4727
4728 UINT
4729 sh2_sh2_model::model_movw10_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4730 {
4731 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
4732   const sh2_scache* abuf = sem;
4733   const sh2_idesc* idesc = abuf->idesc;
4734   int cycles = 0;
4735   {
4736     int referenced = 0;
4737     unsigned long long insn_referenced = abuf->written;
4738     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
4739   }
4740   {
4741     int referenced = 0;
4742     unsigned long long insn_referenced = abuf->written;
4743     cycles += model_u_memory_access_after (current_cpu, idesc, 1, referenced);
4744   }
4745   {
4746     int referenced = 0;
4747     unsigned long long insn_referenced = abuf->written;
4748     INT out_loadreg = -1;
4749     out_loadreg = FLD (out_rn);
4750     cycles += model_u_load_gr_after (current_cpu, idesc, 2, referenced, out_loadreg);
4751   }
4752   return cycles;
4753 #undef FLD
4754 }
4755
4756 UINT
4757 sh2_sh2_model::model_movw11_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4758 {
4759 #define FLD(f) abuf->fields.sfmt_movw11_compact.f
4760   const sh2_scache* abuf = sem;
4761   const sh2_idesc* idesc = abuf->idesc;
4762   int cycles = 0;
4763   {
4764     INT in_usereg = -1;
4765     in_usereg = FLD (in_rm);
4766     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4767   }
4768   {
4769     cycles += model_u_exec_before (current_cpu, idesc, 1);
4770   }
4771   {
4772     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
4773   }
4774   {
4775     INT out_loadreg = -1;
4776     out_loadreg = FLD (out_r0);
4777     cycles += model_u_load_gr_before (current_cpu, idesc, 3, out_loadreg);
4778   }
4779   return cycles;
4780 #undef FLD
4781 }
4782
4783 UINT
4784 sh2_sh2_model::model_movw11_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4785 {
4786 #define FLD(f) abuf->fields.sfmt_movw11_compact.f
4787   const sh2_scache* abuf = sem;
4788   const sh2_idesc* idesc = abuf->idesc;
4789   int cycles = 0;
4790   {
4791     int referenced = 0;
4792     unsigned long long insn_referenced = abuf->written;
4793     INT in_usereg = -1;
4794     in_usereg = FLD (in_rm);
4795     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4796   }
4797   {
4798     int referenced = 0;
4799     unsigned long long insn_referenced = abuf->written;
4800     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
4801   }
4802   {
4803     int referenced = 0;
4804     unsigned long long insn_referenced = abuf->written;
4805     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
4806   }
4807   {
4808     int referenced = 0;
4809     unsigned long long insn_referenced = abuf->written;
4810     INT out_loadreg = -1;
4811     out_loadreg = FLD (out_r0);
4812     cycles += model_u_load_gr_after (current_cpu, idesc, 3, referenced, out_loadreg);
4813   }
4814   return cycles;
4815 #undef FLD
4816 }
4817
4818 UINT
4819 sh2_sh2_model::model_mova_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4820 {
4821 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
4822   const sh2_scache* abuf = sem;
4823   const sh2_idesc* idesc = abuf->idesc;
4824   int cycles = 0;
4825   {
4826     cycles += model_u_exec_before (current_cpu, idesc, 0);
4827   }
4828   return cycles;
4829 #undef FLD
4830 }
4831
4832 UINT
4833 sh2_sh2_model::model_mova_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4834 {
4835 #define FLD(f) abuf->fields.sfmt_movl9_compact.f
4836   const sh2_scache* abuf = sem;
4837   const sh2_idesc* idesc = abuf->idesc;
4838   int cycles = 0;
4839   {
4840     int referenced = 0;
4841     unsigned long long insn_referenced = abuf->written;
4842     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
4843   }
4844   return cycles;
4845 #undef FLD
4846 }
4847
4848 UINT
4849 sh2_sh2_model::model_movt_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4850 {
4851 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
4852   const sh2_scache* abuf = sem;
4853   const sh2_idesc* idesc = abuf->idesc;
4854   int cycles = 0;
4855   {
4856     cycles += model_u_use_tbit_before (current_cpu, idesc, 0);
4857   }
4858   {
4859     cycles += model_u_exec_before (current_cpu, idesc, 1);
4860   }
4861   return cycles;
4862 #undef FLD
4863 }
4864
4865 UINT
4866 sh2_sh2_model::model_movt_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4867 {
4868 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
4869   const sh2_scache* abuf = sem;
4870   const sh2_idesc* idesc = abuf->idesc;
4871   int cycles = 0;
4872   {
4873     int referenced = 0;
4874     unsigned long long insn_referenced = abuf->written;
4875     cycles += model_u_use_tbit_after (current_cpu, idesc, 0, referenced);
4876   }
4877   {
4878     int referenced = 0;
4879     unsigned long long insn_referenced = abuf->written;
4880     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
4881   }
4882   return cycles;
4883 #undef FLD
4884 }
4885
4886 UINT
4887 sh2_sh2_model::model_mull_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4888 {
4889 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4890   const sh2_scache* abuf = sem;
4891   const sh2_idesc* idesc = abuf->idesc;
4892   int cycles = 0;
4893   {
4894     INT in_usereg = -1;
4895     in_usereg = FLD (in_rn);
4896     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4897   }
4898   {
4899     INT in_usereg = -1;
4900     in_usereg = FLD (in_rm);
4901     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4902   }
4903   {
4904     cycles += model_u_mull_before (current_cpu, idesc, 2);
4905   }
4906   return cycles;
4907 #undef FLD
4908 }
4909
4910 UINT
4911 sh2_sh2_model::model_mull_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4912 {
4913 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4914   const sh2_scache* abuf = sem;
4915   const sh2_idesc* idesc = abuf->idesc;
4916   int cycles = 0;
4917   {
4918     int referenced = 0;
4919     unsigned long long insn_referenced = abuf->written;
4920     INT in_usereg = -1;
4921     in_usereg = FLD (in_rn);
4922     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4923   }
4924   {
4925     int referenced = 0;
4926     unsigned long long insn_referenced = abuf->written;
4927     INT in_usereg = -1;
4928     in_usereg = FLD (in_rm);
4929     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4930   }
4931   {
4932     int referenced = 0;
4933     unsigned long long insn_referenced = abuf->written;
4934     cycles += model_u_mull_after (current_cpu, idesc, 2, referenced);
4935   }
4936   return cycles;
4937 #undef FLD
4938 }
4939
4940 UINT
4941 sh2_sh2_model::model_mulsw_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
4942 {
4943 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4944   const sh2_scache* abuf = sem;
4945   const sh2_idesc* idesc = abuf->idesc;
4946   int cycles = 0;
4947   {
4948     INT in_usereg = -1;
4949     in_usereg = FLD (in_rn);
4950     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
4951   }
4952   {
4953     INT in_usereg = -1;
4954     in_usereg = FLD (in_rm);
4955     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
4956   }
4957   {
4958     cycles += model_u_mulsw_before (current_cpu, idesc, 2);
4959   }
4960   {
4961     cycles += model_u_multiply_before (current_cpu, idesc, 3);
4962   }
4963   return cycles;
4964 #undef FLD
4965 }
4966
4967 UINT
4968 sh2_sh2_model::model_mulsw_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
4969 {
4970 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
4971   const sh2_scache* abuf = sem;
4972   const sh2_idesc* idesc = abuf->idesc;
4973   int cycles = 0;
4974   {
4975     int referenced = 0;
4976     unsigned long long insn_referenced = abuf->written;
4977     INT in_usereg = -1;
4978     in_usereg = FLD (in_rn);
4979     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
4980   }
4981   {
4982     int referenced = 0;
4983     unsigned long long insn_referenced = abuf->written;
4984     INT in_usereg = -1;
4985     in_usereg = FLD (in_rm);
4986     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
4987   }
4988   {
4989     int referenced = 0;
4990     unsigned long long insn_referenced = abuf->written;
4991     cycles += model_u_mulsw_after (current_cpu, idesc, 2, referenced);
4992   }
4993   {
4994     int referenced = 0;
4995     unsigned long long insn_referenced = abuf->written;
4996     cycles += model_u_multiply_after (current_cpu, idesc, 3, referenced);
4997   }
4998   return cycles;
4999 #undef FLD
5000 }
5001
5002 UINT
5003 sh2_sh2_model::model_muluw_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5004 {
5005 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5006   const sh2_scache* abuf = sem;
5007   const sh2_idesc* idesc = abuf->idesc;
5008   int cycles = 0;
5009   {
5010     INT in_usereg = -1;
5011     in_usereg = FLD (in_rn);
5012     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5013   }
5014   {
5015     INT in_usereg = -1;
5016     in_usereg = FLD (in_rm);
5017     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
5018   }
5019   {
5020     cycles += model_u_mulsw_before (current_cpu, idesc, 2);
5021   }
5022   {
5023     cycles += model_u_multiply_before (current_cpu, idesc, 3);
5024   }
5025   return cycles;
5026 #undef FLD
5027 }
5028
5029 UINT
5030 sh2_sh2_model::model_muluw_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5031 {
5032 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
5033   const sh2_scache* abuf = sem;
5034   const sh2_idesc* idesc = abuf->idesc;
5035   int cycles = 0;
5036   {
5037     int referenced = 0;
5038     unsigned long long insn_referenced = abuf->written;
5039     INT in_usereg = -1;
5040     in_usereg = FLD (in_rn);
5041     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5042   }
5043   {
5044     int referenced = 0;
5045     unsigned long long insn_referenced = abuf->written;
5046     INT in_usereg = -1;
5047     in_usereg = FLD (in_rm);
5048     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
5049   }
5050   {
5051     int referenced = 0;
5052     unsigned long long insn_referenced = abuf->written;
5053     cycles += model_u_mulsw_after (current_cpu, idesc, 2, referenced);
5054   }
5055   {
5056     int referenced = 0;
5057     unsigned long long insn_referenced = abuf->written;
5058     cycles += model_u_multiply_after (current_cpu, idesc, 3, referenced);
5059   }
5060   return cycles;
5061 #undef FLD
5062 }
5063
5064 UINT
5065 sh2_sh2_model::model_neg_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5066 {
5067 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5068   const sh2_scache* abuf = sem;
5069   const sh2_idesc* idesc = abuf->idesc;
5070   int cycles = 0;
5071   {
5072     INT in_usereg = -1;
5073     in_usereg = FLD (in_rm);
5074     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5075   }
5076   {
5077     cycles += model_u_exec_before (current_cpu, idesc, 1);
5078   }
5079   return cycles;
5080 #undef FLD
5081 }
5082
5083 UINT
5084 sh2_sh2_model::model_neg_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5085 {
5086 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5087   const sh2_scache* abuf = sem;
5088   const sh2_idesc* idesc = abuf->idesc;
5089   int cycles = 0;
5090   {
5091     int referenced = 0;
5092     unsigned long long insn_referenced = abuf->written;
5093     INT in_usereg = -1;
5094     in_usereg = FLD (in_rm);
5095     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5096   }
5097   {
5098     int referenced = 0;
5099     unsigned long long insn_referenced = abuf->written;
5100     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5101   }
5102   return cycles;
5103 #undef FLD
5104 }
5105
5106 UINT
5107 sh2_sh2_model::model_negc_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5108 {
5109 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5110   const sh2_scache* abuf = sem;
5111   const sh2_idesc* idesc = abuf->idesc;
5112   int cycles = 0;
5113   {
5114     INT in_usereg = -1;
5115     in_usereg = FLD (in_rm);
5116     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5117   }
5118   {
5119     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
5120   }
5121   {
5122     cycles += model_u_exec_before (current_cpu, idesc, 2);
5123   }
5124   {
5125     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
5126   }
5127   return cycles;
5128 #undef FLD
5129 }
5130
5131 UINT
5132 sh2_sh2_model::model_negc_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5133 {
5134 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
5135   const sh2_scache* abuf = sem;
5136   const sh2_idesc* idesc = abuf->idesc;
5137   int cycles = 0;
5138   {
5139     int referenced = 0;
5140     unsigned long long insn_referenced = abuf->written;
5141     INT in_usereg = -1;
5142     in_usereg = FLD (in_rm);
5143     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5144   }
5145   {
5146     int referenced = 0;
5147     unsigned long long insn_referenced = abuf->written;
5148     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
5149   }
5150   {
5151     int referenced = 0;
5152     unsigned long long insn_referenced = abuf->written;
5153     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5154   }
5155   {
5156     int referenced = 0;
5157     unsigned long long insn_referenced = abuf->written;
5158     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
5159   }
5160   return cycles;
5161 #undef FLD
5162 }
5163
5164 UINT
5165 sh2_sh2_model::model_nop_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5166 {
5167 #define FLD(f) abuf->fields.fmt_empty.f
5168   const sh2_scache* abuf = sem;
5169   const sh2_idesc* idesc = abuf->idesc;
5170   int cycles = 0;
5171   {
5172     cycles += model_u_exec_before (current_cpu, idesc, 0);
5173   }
5174   return cycles;
5175 #undef FLD
5176 }
5177
5178 UINT
5179 sh2_sh2_model::model_nop_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5180 {
5181 #define FLD(f) abuf->fields.fmt_empty.f
5182   const sh2_scache* abuf = sem;
5183   const sh2_idesc* idesc = abuf->idesc;
5184   int cycles = 0;
5185   {
5186     int referenced = 0;
5187     unsigned long long insn_referenced = abuf->written;
5188     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
5189   }
5190   return cycles;
5191 #undef FLD
5192 }
5193
5194 UINT
5195 sh2_sh2_model::model_not_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5196 {
5197 #define FLD(f) abuf->fields.sfmt_and_compact.f
5198   const sh2_scache* abuf = sem;
5199   const sh2_idesc* idesc = abuf->idesc;
5200   int cycles = 0;
5201   {
5202     INT in_usereg = -1;
5203     in_usereg = FLD (in_rm64);
5204     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5205   }
5206   {
5207     cycles += model_u_exec_before (current_cpu, idesc, 1);
5208   }
5209   return cycles;
5210 #undef FLD
5211 }
5212
5213 UINT
5214 sh2_sh2_model::model_not_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5215 {
5216 #define FLD(f) abuf->fields.sfmt_and_compact.f
5217   const sh2_scache* abuf = sem;
5218   const sh2_idesc* idesc = abuf->idesc;
5219   int cycles = 0;
5220   {
5221     int referenced = 0;
5222     unsigned long long insn_referenced = abuf->written;
5223     INT in_usereg = -1;
5224     in_usereg = FLD (in_rm64);
5225     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5226   }
5227   {
5228     int referenced = 0;
5229     unsigned long long insn_referenced = abuf->written;
5230     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5231   }
5232   return cycles;
5233 #undef FLD
5234 }
5235
5236 UINT
5237 sh2_sh2_model::model_or_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5238 {
5239 #define FLD(f) abuf->fields.sfmt_and_compact.f
5240   const sh2_scache* abuf = sem;
5241   const sh2_idesc* idesc = abuf->idesc;
5242   int cycles = 0;
5243   {
5244     INT in_usereg = -1;
5245     in_usereg = FLD (in_rm64);
5246     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5247   }
5248   {
5249     INT in_usereg = -1;
5250     in_usereg = FLD (in_rn64);
5251     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
5252   }
5253   {
5254     cycles += model_u_exec_before (current_cpu, idesc, 2);
5255   }
5256   return cycles;
5257 #undef FLD
5258 }
5259
5260 UINT
5261 sh2_sh2_model::model_or_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5262 {
5263 #define FLD(f) abuf->fields.sfmt_and_compact.f
5264   const sh2_scache* abuf = sem;
5265   const sh2_idesc* idesc = abuf->idesc;
5266   int cycles = 0;
5267   {
5268     int referenced = 0;
5269     unsigned long long insn_referenced = abuf->written;
5270     INT in_usereg = -1;
5271     in_usereg = FLD (in_rm64);
5272     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5273   }
5274   {
5275     int referenced = 0;
5276     unsigned long long insn_referenced = abuf->written;
5277     INT in_usereg = -1;
5278     in_usereg = FLD (in_rn64);
5279     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
5280   }
5281   {
5282     int referenced = 0;
5283     unsigned long long insn_referenced = abuf->written;
5284     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5285   }
5286   return cycles;
5287 #undef FLD
5288 }
5289
5290 UINT
5291 sh2_sh2_model::model_ori_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5292 {
5293 #define FLD(f) abuf->fields.sfmt_andi_compact.f
5294   const sh2_scache* abuf = sem;
5295   const sh2_idesc* idesc = abuf->idesc;
5296   int cycles = 0;
5297   {
5298     INT in_usereg = -1;
5299     in_usereg = FLD (in_r0);
5300     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5301   }
5302   {
5303     cycles += model_u_exec_before (current_cpu, idesc, 1);
5304   }
5305   return cycles;
5306 #undef FLD
5307 }
5308
5309 UINT
5310 sh2_sh2_model::model_ori_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5311 {
5312 #define FLD(f) abuf->fields.sfmt_andi_compact.f
5313   const sh2_scache* abuf = sem;
5314   const sh2_idesc* idesc = abuf->idesc;
5315   int cycles = 0;
5316   {
5317     int referenced = 0;
5318     unsigned long long insn_referenced = abuf->written;
5319     INT in_usereg = -1;
5320     in_usereg = FLD (in_r0);
5321     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5322   }
5323   {
5324     int referenced = 0;
5325     unsigned long long insn_referenced = abuf->written;
5326     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5327   }
5328   return cycles;
5329 #undef FLD
5330 }
5331
5332 UINT
5333 sh2_sh2_model::model_orb_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5334 {
5335 #define FLD(f) abuf->fields.sfmt_andi_compact.f
5336   const sh2_scache* abuf = sem;
5337   const sh2_idesc* idesc = abuf->idesc;
5338   int cycles = 0;
5339   {
5340     INT in_usereg = -1;
5341     in_usereg = FLD (in_r0);
5342     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5343   }
5344   {
5345     cycles += model_u_logic_b_before (current_cpu, idesc, 1);
5346   }
5347   {
5348     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
5349   }
5350   return cycles;
5351 #undef FLD
5352 }
5353
5354 UINT
5355 sh2_sh2_model::model_orb_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5356 {
5357 #define FLD(f) abuf->fields.sfmt_andi_compact.f
5358   const sh2_scache* abuf = sem;
5359   const sh2_idesc* idesc = abuf->idesc;
5360   int cycles = 0;
5361   {
5362     int referenced = 0;
5363     unsigned long long insn_referenced = abuf->written;
5364     INT in_usereg = -1;
5365     in_usereg = FLD (in_r0);
5366     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5367   }
5368   {
5369     int referenced = 0;
5370     unsigned long long insn_referenced = abuf->written;
5371     cycles += model_u_logic_b_after (current_cpu, idesc, 1, referenced);
5372   }
5373   {
5374     int referenced = 0;
5375     unsigned long long insn_referenced = abuf->written;
5376     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
5377   }
5378   return cycles;
5379 #undef FLD
5380 }
5381
5382 UINT
5383 sh2_sh2_model::model_rotcl_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5384 {
5385 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5386   const sh2_scache* abuf = sem;
5387   const sh2_idesc* idesc = abuf->idesc;
5388   int cycles = 0;
5389   {
5390     INT in_usereg = -1;
5391     in_usereg = FLD (in_rn);
5392     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5393   }
5394   {
5395     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
5396   }
5397   {
5398     cycles += model_u_exec_before (current_cpu, idesc, 2);
5399   }
5400   {
5401     cycles += model_u_shift_before (current_cpu, idesc, 3);
5402   }
5403   {
5404     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
5405   }
5406   return cycles;
5407 #undef FLD
5408 }
5409
5410 UINT
5411 sh2_sh2_model::model_rotcl_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5412 {
5413 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5414   const sh2_scache* abuf = sem;
5415   const sh2_idesc* idesc = abuf->idesc;
5416   int cycles = 0;
5417   {
5418     int referenced = 0;
5419     unsigned long long insn_referenced = abuf->written;
5420     INT in_usereg = -1;
5421     in_usereg = FLD (in_rn);
5422     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5423   }
5424   {
5425     int referenced = 0;
5426     unsigned long long insn_referenced = abuf->written;
5427     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
5428   }
5429   {
5430     int referenced = 0;
5431     unsigned long long insn_referenced = abuf->written;
5432     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5433   }
5434   {
5435     int referenced = 0;
5436     unsigned long long insn_referenced = abuf->written;
5437     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
5438   }
5439   {
5440     int referenced = 0;
5441     unsigned long long insn_referenced = abuf->written;
5442     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
5443   }
5444   return cycles;
5445 #undef FLD
5446 }
5447
5448 UINT
5449 sh2_sh2_model::model_rotcr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5450 {
5451 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5452   const sh2_scache* abuf = sem;
5453   const sh2_idesc* idesc = abuf->idesc;
5454   int cycles = 0;
5455   {
5456     INT in_usereg = -1;
5457     in_usereg = FLD (in_rn);
5458     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5459   }
5460   {
5461     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
5462   }
5463   {
5464     cycles += model_u_exec_before (current_cpu, idesc, 2);
5465   }
5466   {
5467     cycles += model_u_shift_before (current_cpu, idesc, 3);
5468   }
5469   {
5470     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
5471   }
5472   return cycles;
5473 #undef FLD
5474 }
5475
5476 UINT
5477 sh2_sh2_model::model_rotcr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5478 {
5479 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5480   const sh2_scache* abuf = sem;
5481   const sh2_idesc* idesc = abuf->idesc;
5482   int cycles = 0;
5483   {
5484     int referenced = 0;
5485     unsigned long long insn_referenced = abuf->written;
5486     INT in_usereg = -1;
5487     in_usereg = FLD (in_rn);
5488     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5489   }
5490   {
5491     int referenced = 0;
5492     unsigned long long insn_referenced = abuf->written;
5493     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
5494   }
5495   {
5496     int referenced = 0;
5497     unsigned long long insn_referenced = abuf->written;
5498     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5499   }
5500   {
5501     int referenced = 0;
5502     unsigned long long insn_referenced = abuf->written;
5503     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
5504   }
5505   {
5506     int referenced = 0;
5507     unsigned long long insn_referenced = abuf->written;
5508     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
5509   }
5510   return cycles;
5511 #undef FLD
5512 }
5513
5514 UINT
5515 sh2_sh2_model::model_rotl_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5516 {
5517 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5518   const sh2_scache* abuf = sem;
5519   const sh2_idesc* idesc = abuf->idesc;
5520   int cycles = 0;
5521   {
5522     INT in_usereg = -1;
5523     in_usereg = FLD (in_rn);
5524     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5525   }
5526   {
5527     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
5528   }
5529   {
5530     cycles += model_u_exec_before (current_cpu, idesc, 2);
5531   }
5532   {
5533     cycles += model_u_shift_before (current_cpu, idesc, 3);
5534   }
5535   {
5536     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
5537   }
5538   return cycles;
5539 #undef FLD
5540 }
5541
5542 UINT
5543 sh2_sh2_model::model_rotl_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5544 {
5545 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5546   const sh2_scache* abuf = sem;
5547   const sh2_idesc* idesc = abuf->idesc;
5548   int cycles = 0;
5549   {
5550     int referenced = 0;
5551     unsigned long long insn_referenced = abuf->written;
5552     INT in_usereg = -1;
5553     in_usereg = FLD (in_rn);
5554     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5555   }
5556   {
5557     int referenced = 0;
5558     unsigned long long insn_referenced = abuf->written;
5559     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
5560   }
5561   {
5562     int referenced = 0;
5563     unsigned long long insn_referenced = abuf->written;
5564     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5565   }
5566   {
5567     int referenced = 0;
5568     unsigned long long insn_referenced = abuf->written;
5569     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
5570   }
5571   {
5572     int referenced = 0;
5573     unsigned long long insn_referenced = abuf->written;
5574     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
5575   }
5576   return cycles;
5577 #undef FLD
5578 }
5579
5580 UINT
5581 sh2_sh2_model::model_rotr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5582 {
5583 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5584   const sh2_scache* abuf = sem;
5585   const sh2_idesc* idesc = abuf->idesc;
5586   int cycles = 0;
5587   {
5588     INT in_usereg = -1;
5589     in_usereg = FLD (in_rn);
5590     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5591   }
5592   {
5593     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
5594   }
5595   {
5596     cycles += model_u_exec_before (current_cpu, idesc, 2);
5597   }
5598   {
5599     cycles += model_u_shift_before (current_cpu, idesc, 3);
5600   }
5601   {
5602     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
5603   }
5604   return cycles;
5605 #undef FLD
5606 }
5607
5608 UINT
5609 sh2_sh2_model::model_rotr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5610 {
5611 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5612   const sh2_scache* abuf = sem;
5613   const sh2_idesc* idesc = abuf->idesc;
5614   int cycles = 0;
5615   {
5616     int referenced = 0;
5617     unsigned long long insn_referenced = abuf->written;
5618     INT in_usereg = -1;
5619     in_usereg = FLD (in_rn);
5620     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5621   }
5622   {
5623     int referenced = 0;
5624     unsigned long long insn_referenced = abuf->written;
5625     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
5626   }
5627   {
5628     int referenced = 0;
5629     unsigned long long insn_referenced = abuf->written;
5630     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5631   }
5632   {
5633     int referenced = 0;
5634     unsigned long long insn_referenced = abuf->written;
5635     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
5636   }
5637   {
5638     int referenced = 0;
5639     unsigned long long insn_referenced = abuf->written;
5640     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
5641   }
5642   return cycles;
5643 #undef FLD
5644 }
5645
5646 UINT
5647 sh2_sh2_model::model_rts_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5648 {
5649 #define FLD(f) abuf->fields.fmt_empty.f
5650   const sh2_scache* abuf = sem;
5651   const sh2_idesc* idesc = abuf->idesc;
5652   int cycles = 0;
5653   {
5654     cycles += model_u_jmp_before (current_cpu, idesc, 0);
5655   }
5656   return cycles;
5657 #undef FLD
5658 }
5659
5660 UINT
5661 sh2_sh2_model::model_rts_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5662 {
5663 #define FLD(f) abuf->fields.fmt_empty.f
5664   const sh2_scache* abuf = sem;
5665   const sh2_idesc* idesc = abuf->idesc;
5666   int cycles = 0;
5667   {
5668     int referenced = 0;
5669     unsigned long long insn_referenced = abuf->written;
5670     referenced |= 1 << 0;
5671     cycles += model_u_jmp_after (current_cpu, idesc, 0, referenced);
5672   }
5673   return cycles;
5674 #undef FLD
5675 }
5676
5677 UINT
5678 sh2_sh2_model::model_sett_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5679 {
5680 #define FLD(f) abuf->fields.fmt_empty.f
5681   const sh2_scache* abuf = sem;
5682   const sh2_idesc* idesc = abuf->idesc;
5683   int cycles = 0;
5684   {
5685     cycles += model_u_exec_before (current_cpu, idesc, 0);
5686   }
5687   {
5688     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
5689   }
5690   {
5691     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 2);
5692   }
5693   return cycles;
5694 #undef FLD
5695 }
5696
5697 UINT
5698 sh2_sh2_model::model_sett_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5699 {
5700 #define FLD(f) abuf->fields.fmt_empty.f
5701   const sh2_scache* abuf = sem;
5702   const sh2_idesc* idesc = abuf->idesc;
5703   int cycles = 0;
5704   {
5705     int referenced = 0;
5706     unsigned long long insn_referenced = abuf->written;
5707     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
5708   }
5709   {
5710     int referenced = 0;
5711     unsigned long long insn_referenced = abuf->written;
5712     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
5713   }
5714   {
5715     int referenced = 0;
5716     unsigned long long insn_referenced = abuf->written;
5717     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 2, referenced);
5718   }
5719   return cycles;
5720 #undef FLD
5721 }
5722
5723 UINT
5724 sh2_sh2_model::model_shal_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5725 {
5726 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5727   const sh2_scache* abuf = sem;
5728   const sh2_idesc* idesc = abuf->idesc;
5729   int cycles = 0;
5730   {
5731     INT in_usereg = -1;
5732     in_usereg = FLD (in_rn);
5733     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5734   }
5735   {
5736     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
5737   }
5738   {
5739     cycles += model_u_exec_before (current_cpu, idesc, 2);
5740   }
5741   {
5742     cycles += model_u_shift_before (current_cpu, idesc, 3);
5743   }
5744   {
5745     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
5746   }
5747   return cycles;
5748 #undef FLD
5749 }
5750
5751 UINT
5752 sh2_sh2_model::model_shal_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5753 {
5754 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5755   const sh2_scache* abuf = sem;
5756   const sh2_idesc* idesc = abuf->idesc;
5757   int cycles = 0;
5758   {
5759     int referenced = 0;
5760     unsigned long long insn_referenced = abuf->written;
5761     INT in_usereg = -1;
5762     in_usereg = FLD (in_rn);
5763     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5764   }
5765   {
5766     int referenced = 0;
5767     unsigned long long insn_referenced = abuf->written;
5768     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
5769   }
5770   {
5771     int referenced = 0;
5772     unsigned long long insn_referenced = abuf->written;
5773     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5774   }
5775   {
5776     int referenced = 0;
5777     unsigned long long insn_referenced = abuf->written;
5778     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
5779   }
5780   {
5781     int referenced = 0;
5782     unsigned long long insn_referenced = abuf->written;
5783     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
5784   }
5785   return cycles;
5786 #undef FLD
5787 }
5788
5789 UINT
5790 sh2_sh2_model::model_shar_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5791 {
5792 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5793   const sh2_scache* abuf = sem;
5794   const sh2_idesc* idesc = abuf->idesc;
5795   int cycles = 0;
5796   {
5797     INT in_usereg = -1;
5798     in_usereg = FLD (in_rn);
5799     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5800   }
5801   {
5802     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
5803   }
5804   {
5805     cycles += model_u_exec_before (current_cpu, idesc, 2);
5806   }
5807   {
5808     cycles += model_u_shift_before (current_cpu, idesc, 3);
5809   }
5810   {
5811     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
5812   }
5813   return cycles;
5814 #undef FLD
5815 }
5816
5817 UINT
5818 sh2_sh2_model::model_shar_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5819 {
5820 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5821   const sh2_scache* abuf = sem;
5822   const sh2_idesc* idesc = abuf->idesc;
5823   int cycles = 0;
5824   {
5825     int referenced = 0;
5826     unsigned long long insn_referenced = abuf->written;
5827     INT in_usereg = -1;
5828     in_usereg = FLD (in_rn);
5829     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5830   }
5831   {
5832     int referenced = 0;
5833     unsigned long long insn_referenced = abuf->written;
5834     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
5835   }
5836   {
5837     int referenced = 0;
5838     unsigned long long insn_referenced = abuf->written;
5839     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5840   }
5841   {
5842     int referenced = 0;
5843     unsigned long long insn_referenced = abuf->written;
5844     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
5845   }
5846   {
5847     int referenced = 0;
5848     unsigned long long insn_referenced = abuf->written;
5849     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
5850   }
5851   return cycles;
5852 #undef FLD
5853 }
5854
5855 UINT
5856 sh2_sh2_model::model_shll_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5857 {
5858 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5859   const sh2_scache* abuf = sem;
5860   const sh2_idesc* idesc = abuf->idesc;
5861   int cycles = 0;
5862   {
5863     INT in_usereg = -1;
5864     in_usereg = FLD (in_rn);
5865     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5866   }
5867   {
5868     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
5869   }
5870   {
5871     cycles += model_u_exec_before (current_cpu, idesc, 2);
5872   }
5873   {
5874     cycles += model_u_shift_before (current_cpu, idesc, 3);
5875   }
5876   {
5877     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
5878   }
5879   return cycles;
5880 #undef FLD
5881 }
5882
5883 UINT
5884 sh2_sh2_model::model_shll_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5885 {
5886 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5887   const sh2_scache* abuf = sem;
5888   const sh2_idesc* idesc = abuf->idesc;
5889   int cycles = 0;
5890   {
5891     int referenced = 0;
5892     unsigned long long insn_referenced = abuf->written;
5893     INT in_usereg = -1;
5894     in_usereg = FLD (in_rn);
5895     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5896   }
5897   {
5898     int referenced = 0;
5899     unsigned long long insn_referenced = abuf->written;
5900     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
5901   }
5902   {
5903     int referenced = 0;
5904     unsigned long long insn_referenced = abuf->written;
5905     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
5906   }
5907   {
5908     int referenced = 0;
5909     unsigned long long insn_referenced = abuf->written;
5910     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
5911   }
5912   {
5913     int referenced = 0;
5914     unsigned long long insn_referenced = abuf->written;
5915     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
5916   }
5917   return cycles;
5918 #undef FLD
5919 }
5920
5921 UINT
5922 sh2_sh2_model::model_shll2_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5923 {
5924 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5925   const sh2_scache* abuf = sem;
5926   const sh2_idesc* idesc = abuf->idesc;
5927   int cycles = 0;
5928   {
5929     INT in_usereg = -1;
5930     in_usereg = FLD (in_rn);
5931     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5932   }
5933   {
5934     cycles += model_u_exec_before (current_cpu, idesc, 1);
5935   }
5936   {
5937     cycles += model_u_shift_before (current_cpu, idesc, 2);
5938   }
5939   return cycles;
5940 #undef FLD
5941 }
5942
5943 UINT
5944 sh2_sh2_model::model_shll2_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5945 {
5946 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5947   const sh2_scache* abuf = sem;
5948   const sh2_idesc* idesc = abuf->idesc;
5949   int cycles = 0;
5950   {
5951     int referenced = 0;
5952     unsigned long long insn_referenced = abuf->written;
5953     INT in_usereg = -1;
5954     in_usereg = FLD (in_rn);
5955     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
5956   }
5957   {
5958     int referenced = 0;
5959     unsigned long long insn_referenced = abuf->written;
5960     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
5961   }
5962   {
5963     int referenced = 0;
5964     unsigned long long insn_referenced = abuf->written;
5965     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
5966   }
5967   return cycles;
5968 #undef FLD
5969 }
5970
5971 UINT
5972 sh2_sh2_model::model_shll8_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
5973 {
5974 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5975   const sh2_scache* abuf = sem;
5976   const sh2_idesc* idesc = abuf->idesc;
5977   int cycles = 0;
5978   {
5979     INT in_usereg = -1;
5980     in_usereg = FLD (in_rn);
5981     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
5982   }
5983   {
5984     cycles += model_u_exec_before (current_cpu, idesc, 1);
5985   }
5986   {
5987     cycles += model_u_shift_before (current_cpu, idesc, 2);
5988   }
5989   return cycles;
5990 #undef FLD
5991 }
5992
5993 UINT
5994 sh2_sh2_model::model_shll8_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
5995 {
5996 #define FLD(f) abuf->fields.sfmt_addi_compact.f
5997   const sh2_scache* abuf = sem;
5998   const sh2_idesc* idesc = abuf->idesc;
5999   int cycles = 0;
6000   {
6001     int referenced = 0;
6002     unsigned long long insn_referenced = abuf->written;
6003     INT in_usereg = -1;
6004     in_usereg = FLD (in_rn);
6005     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6006   }
6007   {
6008     int referenced = 0;
6009     unsigned long long insn_referenced = abuf->written;
6010     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6011   }
6012   {
6013     int referenced = 0;
6014     unsigned long long insn_referenced = abuf->written;
6015     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
6016   }
6017   return cycles;
6018 #undef FLD
6019 }
6020
6021 UINT
6022 sh2_sh2_model::model_shll16_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6023 {
6024 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6025   const sh2_scache* abuf = sem;
6026   const sh2_idesc* idesc = abuf->idesc;
6027   int cycles = 0;
6028   {
6029     INT in_usereg = -1;
6030     in_usereg = FLD (in_rn);
6031     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6032   }
6033   {
6034     cycles += model_u_exec_before (current_cpu, idesc, 1);
6035   }
6036   {
6037     cycles += model_u_shift_before (current_cpu, idesc, 2);
6038   }
6039   return cycles;
6040 #undef FLD
6041 }
6042
6043 UINT
6044 sh2_sh2_model::model_shll16_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6045 {
6046 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6047   const sh2_scache* abuf = sem;
6048   const sh2_idesc* idesc = abuf->idesc;
6049   int cycles = 0;
6050   {
6051     int referenced = 0;
6052     unsigned long long insn_referenced = abuf->written;
6053     INT in_usereg = -1;
6054     in_usereg = FLD (in_rn);
6055     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6056   }
6057   {
6058     int referenced = 0;
6059     unsigned long long insn_referenced = abuf->written;
6060     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6061   }
6062   {
6063     int referenced = 0;
6064     unsigned long long insn_referenced = abuf->written;
6065     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
6066   }
6067   return cycles;
6068 #undef FLD
6069 }
6070
6071 UINT
6072 sh2_sh2_model::model_shlr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6073 {
6074 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6075   const sh2_scache* abuf = sem;
6076   const sh2_idesc* idesc = abuf->idesc;
6077   int cycles = 0;
6078   {
6079     INT in_usereg = -1;
6080     in_usereg = FLD (in_rn);
6081     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6082   }
6083   {
6084     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
6085   }
6086   {
6087     cycles += model_u_exec_before (current_cpu, idesc, 2);
6088   }
6089   {
6090     cycles += model_u_shift_before (current_cpu, idesc, 3);
6091   }
6092   {
6093     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
6094   }
6095   return cycles;
6096 #undef FLD
6097 }
6098
6099 UINT
6100 sh2_sh2_model::model_shlr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6101 {
6102 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6103   const sh2_scache* abuf = sem;
6104   const sh2_idesc* idesc = abuf->idesc;
6105   int cycles = 0;
6106   {
6107     int referenced = 0;
6108     unsigned long long insn_referenced = abuf->written;
6109     INT in_usereg = -1;
6110     in_usereg = FLD (in_rn);
6111     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6112   }
6113   {
6114     int referenced = 0;
6115     unsigned long long insn_referenced = abuf->written;
6116     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
6117   }
6118   {
6119     int referenced = 0;
6120     unsigned long long insn_referenced = abuf->written;
6121     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
6122   }
6123   {
6124     int referenced = 0;
6125     unsigned long long insn_referenced = abuf->written;
6126     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
6127   }
6128   {
6129     int referenced = 0;
6130     unsigned long long insn_referenced = abuf->written;
6131     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
6132   }
6133   return cycles;
6134 #undef FLD
6135 }
6136
6137 UINT
6138 sh2_sh2_model::model_shlr2_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6139 {
6140 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6141   const sh2_scache* abuf = sem;
6142   const sh2_idesc* idesc = abuf->idesc;
6143   int cycles = 0;
6144   {
6145     INT in_usereg = -1;
6146     in_usereg = FLD (in_rn);
6147     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6148   }
6149   {
6150     cycles += model_u_exec_before (current_cpu, idesc, 1);
6151   }
6152   {
6153     cycles += model_u_shift_before (current_cpu, idesc, 2);
6154   }
6155   return cycles;
6156 #undef FLD
6157 }
6158
6159 UINT
6160 sh2_sh2_model::model_shlr2_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6161 {
6162 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6163   const sh2_scache* abuf = sem;
6164   const sh2_idesc* idesc = abuf->idesc;
6165   int cycles = 0;
6166   {
6167     int referenced = 0;
6168     unsigned long long insn_referenced = abuf->written;
6169     INT in_usereg = -1;
6170     in_usereg = FLD (in_rn);
6171     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6172   }
6173   {
6174     int referenced = 0;
6175     unsigned long long insn_referenced = abuf->written;
6176     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6177   }
6178   {
6179     int referenced = 0;
6180     unsigned long long insn_referenced = abuf->written;
6181     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
6182   }
6183   return cycles;
6184 #undef FLD
6185 }
6186
6187 UINT
6188 sh2_sh2_model::model_shlr8_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6189 {
6190 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6191   const sh2_scache* abuf = sem;
6192   const sh2_idesc* idesc = abuf->idesc;
6193   int cycles = 0;
6194   {
6195     INT in_usereg = -1;
6196     in_usereg = FLD (in_rn);
6197     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6198   }
6199   {
6200     cycles += model_u_exec_before (current_cpu, idesc, 1);
6201   }
6202   {
6203     cycles += model_u_shift_before (current_cpu, idesc, 2);
6204   }
6205   return cycles;
6206 #undef FLD
6207 }
6208
6209 UINT
6210 sh2_sh2_model::model_shlr8_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6211 {
6212 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6213   const sh2_scache* abuf = sem;
6214   const sh2_idesc* idesc = abuf->idesc;
6215   int cycles = 0;
6216   {
6217     int referenced = 0;
6218     unsigned long long insn_referenced = abuf->written;
6219     INT in_usereg = -1;
6220     in_usereg = FLD (in_rn);
6221     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6222   }
6223   {
6224     int referenced = 0;
6225     unsigned long long insn_referenced = abuf->written;
6226     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6227   }
6228   {
6229     int referenced = 0;
6230     unsigned long long insn_referenced = abuf->written;
6231     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
6232   }
6233   return cycles;
6234 #undef FLD
6235 }
6236
6237 UINT
6238 sh2_sh2_model::model_shlr16_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6239 {
6240 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6241   const sh2_scache* abuf = sem;
6242   const sh2_idesc* idesc = abuf->idesc;
6243   int cycles = 0;
6244   {
6245     INT in_usereg = -1;
6246     in_usereg = FLD (in_rn);
6247     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6248   }
6249   {
6250     cycles += model_u_exec_before (current_cpu, idesc, 1);
6251   }
6252   {
6253     cycles += model_u_shift_before (current_cpu, idesc, 2);
6254   }
6255   return cycles;
6256 #undef FLD
6257 }
6258
6259 UINT
6260 sh2_sh2_model::model_shlr16_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6261 {
6262 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6263   const sh2_scache* abuf = sem;
6264   const sh2_idesc* idesc = abuf->idesc;
6265   int cycles = 0;
6266   {
6267     int referenced = 0;
6268     unsigned long long insn_referenced = abuf->written;
6269     INT in_usereg = -1;
6270     in_usereg = FLD (in_rn);
6271     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6272   }
6273   {
6274     int referenced = 0;
6275     unsigned long long insn_referenced = abuf->written;
6276     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
6277   }
6278   {
6279     int referenced = 0;
6280     unsigned long long insn_referenced = abuf->written;
6281     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
6282   }
6283   return cycles;
6284 #undef FLD
6285 }
6286
6287 UINT
6288 sh2_sh2_model::model_stc_gbr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6289 {
6290 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6291   const sh2_scache* abuf = sem;
6292   const sh2_idesc* idesc = abuf->idesc;
6293   int cycles = 0;
6294   {
6295     cycles += model_u_exec_before (current_cpu, idesc, 0);
6296   }
6297   return cycles;
6298 #undef FLD
6299 }
6300
6301 UINT
6302 sh2_sh2_model::model_stc_gbr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6303 {
6304 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6305   const sh2_scache* abuf = sem;
6306   const sh2_idesc* idesc = abuf->idesc;
6307   int cycles = 0;
6308   {
6309     int referenced = 0;
6310     unsigned long long insn_referenced = abuf->written;
6311     cycles += model_u_exec_after (current_cpu, idesc, 0, referenced);
6312   }
6313   return cycles;
6314 #undef FLD
6315 }
6316
6317 UINT
6318 sh2_sh2_model::model_stc_vbr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6319 {
6320 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6321   const sh2_scache* abuf = sem;
6322   const sh2_idesc* idesc = abuf->idesc;
6323   int cycles = 0;
6324   {
6325     cycles += model_u_stc_vbr_before (current_cpu, idesc, 0);
6326   }
6327   return cycles;
6328 #undef FLD
6329 }
6330
6331 UINT
6332 sh2_sh2_model::model_stc_vbr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6333 {
6334 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6335   const sh2_scache* abuf = sem;
6336   const sh2_idesc* idesc = abuf->idesc;
6337   int cycles = 0;
6338   {
6339     int referenced = 0;
6340     unsigned long long insn_referenced = abuf->written;
6341     cycles += model_u_stc_vbr_after (current_cpu, idesc, 0, referenced);
6342   }
6343   return cycles;
6344 #undef FLD
6345 }
6346
6347 UINT
6348 sh2_sh2_model::model_stcl_gbr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6349 {
6350 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6351   const sh2_scache* abuf = sem;
6352   const sh2_idesc* idesc = abuf->idesc;
6353   int cycles = 0;
6354   {
6355     INT in_usereg = -1;
6356     in_usereg = FLD (in_rn);
6357     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6358   }
6359   {
6360     cycles += model_u_ldcl_before (current_cpu, idesc, 1);
6361   }
6362   {
6363     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
6364   }
6365   return cycles;
6366 #undef FLD
6367 }
6368
6369 UINT
6370 sh2_sh2_model::model_stcl_gbr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6371 {
6372 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6373   const sh2_scache* abuf = sem;
6374   const sh2_idesc* idesc = abuf->idesc;
6375   int cycles = 0;
6376   {
6377     int referenced = 0;
6378     unsigned long long insn_referenced = abuf->written;
6379     INT in_usereg = -1;
6380     in_usereg = FLD (in_rn);
6381     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6382   }
6383   {
6384     int referenced = 0;
6385     unsigned long long insn_referenced = abuf->written;
6386     cycles += model_u_ldcl_after (current_cpu, idesc, 1, referenced);
6387   }
6388   {
6389     int referenced = 0;
6390     unsigned long long insn_referenced = abuf->written;
6391     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
6392   }
6393   return cycles;
6394 #undef FLD
6395 }
6396
6397 UINT
6398 sh2_sh2_model::model_stcl_vbr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6399 {
6400 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6401   const sh2_scache* abuf = sem;
6402   const sh2_idesc* idesc = abuf->idesc;
6403   int cycles = 0;
6404   {
6405     INT in_usereg = -1;
6406     in_usereg = FLD (in_rn);
6407     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6408   }
6409   {
6410     cycles += model_u_ldcl_before (current_cpu, idesc, 1);
6411   }
6412   {
6413     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
6414   }
6415   return cycles;
6416 #undef FLD
6417 }
6418
6419 UINT
6420 sh2_sh2_model::model_stcl_vbr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6421 {
6422 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6423   const sh2_scache* abuf = sem;
6424   const sh2_idesc* idesc = abuf->idesc;
6425   int cycles = 0;
6426   {
6427     int referenced = 0;
6428     unsigned long long insn_referenced = abuf->written;
6429     INT in_usereg = -1;
6430     in_usereg = FLD (in_rn);
6431     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6432   }
6433   {
6434     int referenced = 0;
6435     unsigned long long insn_referenced = abuf->written;
6436     cycles += model_u_ldcl_after (current_cpu, idesc, 1, referenced);
6437   }
6438   {
6439     int referenced = 0;
6440     unsigned long long insn_referenced = abuf->written;
6441     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
6442   }
6443   return cycles;
6444 #undef FLD
6445 }
6446
6447 UINT
6448 sh2_sh2_model::model_sts_mach_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6449 {
6450 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6451   const sh2_scache* abuf = sem;
6452   const sh2_idesc* idesc = abuf->idesc;
6453   int cycles = 0;
6454   {
6455     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 0);
6456   }
6457   {
6458     cycles += model_u_write_back_before (current_cpu, idesc, 1);
6459   }
6460   {
6461     cycles += model_u_exec_before (current_cpu, idesc, 2);
6462   }
6463   {
6464     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
6465   }
6466   return cycles;
6467 #undef FLD
6468 }
6469
6470 UINT
6471 sh2_sh2_model::model_sts_mach_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6472 {
6473 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6474   const sh2_scache* abuf = sem;
6475   const sh2_idesc* idesc = abuf->idesc;
6476   int cycles = 0;
6477   {
6478     int referenced = 0;
6479     unsigned long long insn_referenced = abuf->written;
6480     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 0, referenced);
6481   }
6482   {
6483     int referenced = 0;
6484     unsigned long long insn_referenced = abuf->written;
6485     cycles += model_u_write_back_after (current_cpu, idesc, 1, referenced);
6486   }
6487   {
6488     int referenced = 0;
6489     unsigned long long insn_referenced = abuf->written;
6490     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
6491   }
6492   {
6493     int referenced = 0;
6494     unsigned long long insn_referenced = abuf->written;
6495     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
6496   }
6497   return cycles;
6498 #undef FLD
6499 }
6500
6501 UINT
6502 sh2_sh2_model::model_stsl_mach_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6503 {
6504 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6505   const sh2_scache* abuf = sem;
6506   const sh2_idesc* idesc = abuf->idesc;
6507   int cycles = 0;
6508   {
6509     INT in_usereg = -1;
6510     in_usereg = FLD (in_rn);
6511     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6512   }
6513   {
6514     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
6515   }
6516   {
6517     cycles += model_u_write_back_before (current_cpu, idesc, 2);
6518   }
6519   {
6520     cycles += model_u_exec_before (current_cpu, idesc, 3);
6521   }
6522   {
6523     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
6524   }
6525   return cycles;
6526 #undef FLD
6527 }
6528
6529 UINT
6530 sh2_sh2_model::model_stsl_mach_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6531 {
6532 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6533   const sh2_scache* abuf = sem;
6534   const sh2_idesc* idesc = abuf->idesc;
6535   int cycles = 0;
6536   {
6537     int referenced = 0;
6538     unsigned long long insn_referenced = abuf->written;
6539     INT in_usereg = -1;
6540     in_usereg = FLD (in_rn);
6541     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6542   }
6543   {
6544     int referenced = 0;
6545     unsigned long long insn_referenced = abuf->written;
6546     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
6547   }
6548   {
6549     int referenced = 0;
6550     unsigned long long insn_referenced = abuf->written;
6551     cycles += model_u_write_back_after (current_cpu, idesc, 2, referenced);
6552   }
6553   {
6554     int referenced = 0;
6555     unsigned long long insn_referenced = abuf->written;
6556     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
6557   }
6558   {
6559     int referenced = 0;
6560     unsigned long long insn_referenced = abuf->written;
6561     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
6562   }
6563   return cycles;
6564 #undef FLD
6565 }
6566
6567 UINT
6568 sh2_sh2_model::model_sts_macl_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6569 {
6570 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6571   const sh2_scache* abuf = sem;
6572   const sh2_idesc* idesc = abuf->idesc;
6573   int cycles = 0;
6574   {
6575     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 0);
6576   }
6577   {
6578     cycles += model_u_write_back_before (current_cpu, idesc, 1);
6579   }
6580   {
6581     cycles += model_u_exec_before (current_cpu, idesc, 2);
6582   }
6583   {
6584     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
6585   }
6586   return cycles;
6587 #undef FLD
6588 }
6589
6590 UINT
6591 sh2_sh2_model::model_sts_macl_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6592 {
6593 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6594   const sh2_scache* abuf = sem;
6595   const sh2_idesc* idesc = abuf->idesc;
6596   int cycles = 0;
6597   {
6598     int referenced = 0;
6599     unsigned long long insn_referenced = abuf->written;
6600     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 0, referenced);
6601   }
6602   {
6603     int referenced = 0;
6604     unsigned long long insn_referenced = abuf->written;
6605     cycles += model_u_write_back_after (current_cpu, idesc, 1, referenced);
6606   }
6607   {
6608     int referenced = 0;
6609     unsigned long long insn_referenced = abuf->written;
6610     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
6611   }
6612   {
6613     int referenced = 0;
6614     unsigned long long insn_referenced = abuf->written;
6615     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
6616   }
6617   return cycles;
6618 #undef FLD
6619 }
6620
6621 UINT
6622 sh2_sh2_model::model_stsl_macl_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6623 {
6624 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6625   const sh2_scache* abuf = sem;
6626   const sh2_idesc* idesc = abuf->idesc;
6627   int cycles = 0;
6628   {
6629     INT in_usereg = -1;
6630     in_usereg = FLD (in_rn);
6631     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6632   }
6633   {
6634     cycles += model_u_use_multiply_result_before (current_cpu, idesc, 1);
6635   }
6636   {
6637     cycles += model_u_write_back_before (current_cpu, idesc, 2);
6638   }
6639   {
6640     cycles += model_u_exec_before (current_cpu, idesc, 3);
6641   }
6642   {
6643     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
6644   }
6645   return cycles;
6646 #undef FLD
6647 }
6648
6649 UINT
6650 sh2_sh2_model::model_stsl_macl_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6651 {
6652 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6653   const sh2_scache* abuf = sem;
6654   const sh2_idesc* idesc = abuf->idesc;
6655   int cycles = 0;
6656   {
6657     int referenced = 0;
6658     unsigned long long insn_referenced = abuf->written;
6659     INT in_usereg = -1;
6660     in_usereg = FLD (in_rn);
6661     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6662   }
6663   {
6664     int referenced = 0;
6665     unsigned long long insn_referenced = abuf->written;
6666     cycles += model_u_use_multiply_result_after (current_cpu, idesc, 1, referenced);
6667   }
6668   {
6669     int referenced = 0;
6670     unsigned long long insn_referenced = abuf->written;
6671     cycles += model_u_write_back_after (current_cpu, idesc, 2, referenced);
6672   }
6673   {
6674     int referenced = 0;
6675     unsigned long long insn_referenced = abuf->written;
6676     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
6677   }
6678   {
6679     int referenced = 0;
6680     unsigned long long insn_referenced = abuf->written;
6681     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
6682   }
6683   return cycles;
6684 #undef FLD
6685 }
6686
6687 UINT
6688 sh2_sh2_model::model_sts_pr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6689 {
6690 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6691   const sh2_scache* abuf = sem;
6692   const sh2_idesc* idesc = abuf->idesc;
6693   int cycles = 0;
6694   {
6695     cycles += model_u_use_pr_before (current_cpu, idesc, 0);
6696   }
6697   {
6698     cycles += model_u_sts_pr_before (current_cpu, idesc, 1);
6699   }
6700   return cycles;
6701 #undef FLD
6702 }
6703
6704 UINT
6705 sh2_sh2_model::model_sts_pr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6706 {
6707 #define FLD(f) abuf->fields.sfmt_movw10_compact.f
6708   const sh2_scache* abuf = sem;
6709   const sh2_idesc* idesc = abuf->idesc;
6710   int cycles = 0;
6711   {
6712     int referenced = 0;
6713     unsigned long long insn_referenced = abuf->written;
6714     cycles += model_u_use_pr_after (current_cpu, idesc, 0, referenced);
6715   }
6716   {
6717     int referenced = 0;
6718     unsigned long long insn_referenced = abuf->written;
6719     cycles += model_u_sts_pr_after (current_cpu, idesc, 1, referenced);
6720   }
6721   return cycles;
6722 #undef FLD
6723 }
6724
6725 UINT
6726 sh2_sh2_model::model_stsl_pr_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6727 {
6728 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6729   const sh2_scache* abuf = sem;
6730   const sh2_idesc* idesc = abuf->idesc;
6731   int cycles = 0;
6732   {
6733     INT in_usereg = -1;
6734     in_usereg = FLD (in_rn);
6735     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6736   }
6737   {
6738     cycles += model_u_use_pr_before (current_cpu, idesc, 1);
6739   }
6740   {
6741     cycles += model_u_sts_pr_before (current_cpu, idesc, 2);
6742   }
6743   {
6744     cycles += model_u_memory_access_before (current_cpu, idesc, 3);
6745   }
6746   return cycles;
6747 #undef FLD
6748 }
6749
6750 UINT
6751 sh2_sh2_model::model_stsl_pr_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6752 {
6753 #define FLD(f) abuf->fields.sfmt_addi_compact.f
6754   const sh2_scache* abuf = sem;
6755   const sh2_idesc* idesc = abuf->idesc;
6756   int cycles = 0;
6757   {
6758     int referenced = 0;
6759     unsigned long long insn_referenced = abuf->written;
6760     INT in_usereg = -1;
6761     in_usereg = FLD (in_rn);
6762     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6763   }
6764   {
6765     int referenced = 0;
6766     unsigned long long insn_referenced = abuf->written;
6767     cycles += model_u_use_pr_after (current_cpu, idesc, 1, referenced);
6768   }
6769   {
6770     int referenced = 0;
6771     unsigned long long insn_referenced = abuf->written;
6772     cycles += model_u_sts_pr_after (current_cpu, idesc, 2, referenced);
6773   }
6774   {
6775     int referenced = 0;
6776     unsigned long long insn_referenced = abuf->written;
6777     cycles += model_u_memory_access_after (current_cpu, idesc, 3, referenced);
6778   }
6779   return cycles;
6780 #undef FLD
6781 }
6782
6783 UINT
6784 sh2_sh2_model::model_sub_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6785 {
6786 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6787   const sh2_scache* abuf = sem;
6788   const sh2_idesc* idesc = abuf->idesc;
6789   int cycles = 0;
6790   {
6791     INT in_usereg = -1;
6792     in_usereg = FLD (in_rn);
6793     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6794   }
6795   {
6796     INT in_usereg = -1;
6797     in_usereg = FLD (in_rm);
6798     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
6799   }
6800   {
6801     cycles += model_u_exec_before (current_cpu, idesc, 2);
6802   }
6803   return cycles;
6804 #undef FLD
6805 }
6806
6807 UINT
6808 sh2_sh2_model::model_sub_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6809 {
6810 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6811   const sh2_scache* abuf = sem;
6812   const sh2_idesc* idesc = abuf->idesc;
6813   int cycles = 0;
6814   {
6815     int referenced = 0;
6816     unsigned long long insn_referenced = abuf->written;
6817     INT in_usereg = -1;
6818     in_usereg = FLD (in_rn);
6819     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6820   }
6821   {
6822     int referenced = 0;
6823     unsigned long long insn_referenced = abuf->written;
6824     INT in_usereg = -1;
6825     in_usereg = FLD (in_rm);
6826     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
6827   }
6828   {
6829     int referenced = 0;
6830     unsigned long long insn_referenced = abuf->written;
6831     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
6832   }
6833   return cycles;
6834 #undef FLD
6835 }
6836
6837 UINT
6838 sh2_sh2_model::model_subc_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6839 {
6840 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6841   const sh2_scache* abuf = sem;
6842   const sh2_idesc* idesc = abuf->idesc;
6843   int cycles = 0;
6844   {
6845     INT in_usereg = -1;
6846     in_usereg = FLD (in_rn);
6847     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6848   }
6849   {
6850     INT in_usereg = -1;
6851     in_usereg = FLD (in_rm);
6852     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
6853   }
6854   {
6855     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
6856   }
6857   {
6858     cycles += model_u_exec_before (current_cpu, idesc, 3);
6859   }
6860   return cycles;
6861 #undef FLD
6862 }
6863
6864 UINT
6865 sh2_sh2_model::model_subc_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6866 {
6867 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6868   const sh2_scache* abuf = sem;
6869   const sh2_idesc* idesc = abuf->idesc;
6870   int cycles = 0;
6871   {
6872     int referenced = 0;
6873     unsigned long long insn_referenced = abuf->written;
6874     INT in_usereg = -1;
6875     in_usereg = FLD (in_rn);
6876     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6877   }
6878   {
6879     int referenced = 0;
6880     unsigned long long insn_referenced = abuf->written;
6881     INT in_usereg = -1;
6882     in_usereg = FLD (in_rm);
6883     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
6884   }
6885   {
6886     int referenced = 0;
6887     unsigned long long insn_referenced = abuf->written;
6888     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
6889   }
6890   {
6891     int referenced = 0;
6892     unsigned long long insn_referenced = abuf->written;
6893     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
6894   }
6895   return cycles;
6896 #undef FLD
6897 }
6898
6899 UINT
6900 sh2_sh2_model::model_subv_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6901 {
6902 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6903   const sh2_scache* abuf = sem;
6904   const sh2_idesc* idesc = abuf->idesc;
6905   int cycles = 0;
6906   {
6907     INT in_usereg = -1;
6908     in_usereg = FLD (in_rn);
6909     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6910   }
6911   {
6912     INT in_usereg = -1;
6913     in_usereg = FLD (in_rm);
6914     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
6915   }
6916   {
6917     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
6918   }
6919   {
6920     cycles += model_u_exec_before (current_cpu, idesc, 3);
6921   }
6922   {
6923     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
6924   }
6925   return cycles;
6926 #undef FLD
6927 }
6928
6929 UINT
6930 sh2_sh2_model::model_subv_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6931 {
6932 #define FLD(f) abuf->fields.sfmt_macl_compact.f
6933   const sh2_scache* abuf = sem;
6934   const sh2_idesc* idesc = abuf->idesc;
6935   int cycles = 0;
6936   {
6937     int referenced = 0;
6938     unsigned long long insn_referenced = abuf->written;
6939     INT in_usereg = -1;
6940     in_usereg = FLD (in_rn);
6941     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
6942   }
6943   {
6944     int referenced = 0;
6945     unsigned long long insn_referenced = abuf->written;
6946     INT in_usereg = -1;
6947     in_usereg = FLD (in_rm);
6948     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
6949   }
6950   {
6951     int referenced = 0;
6952     unsigned long long insn_referenced = abuf->written;
6953     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
6954   }
6955   {
6956     int referenced = 0;
6957     unsigned long long insn_referenced = abuf->written;
6958     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
6959   }
6960   {
6961     int referenced = 0;
6962     unsigned long long insn_referenced = abuf->written;
6963     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
6964   }
6965   return cycles;
6966 #undef FLD
6967 }
6968
6969 UINT
6970 sh2_sh2_model::model_swapb_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
6971 {
6972 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
6973   const sh2_scache* abuf = sem;
6974   const sh2_idesc* idesc = abuf->idesc;
6975   int cycles = 0;
6976   {
6977     INT in_usereg = -1;
6978     in_usereg = FLD (in_rm);
6979     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
6980   }
6981   {
6982     cycles += model_u_exec_before (current_cpu, idesc, 1);
6983   }
6984   {
6985     cycles += model_u_shift_before (current_cpu, idesc, 2);
6986   }
6987   return cycles;
6988 #undef FLD
6989 }
6990
6991 UINT
6992 sh2_sh2_model::model_swapb_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
6993 {
6994 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
6995   const sh2_scache* abuf = sem;
6996   const sh2_idesc* idesc = abuf->idesc;
6997   int cycles = 0;
6998   {
6999     int referenced = 0;
7000     unsigned long long insn_referenced = abuf->written;
7001     INT in_usereg = -1;
7002     in_usereg = FLD (in_rm);
7003     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7004   }
7005   {
7006     int referenced = 0;
7007     unsigned long long insn_referenced = abuf->written;
7008     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
7009   }
7010   {
7011     int referenced = 0;
7012     unsigned long long insn_referenced = abuf->written;
7013     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
7014   }
7015   return cycles;
7016 #undef FLD
7017 }
7018
7019 UINT
7020 sh2_sh2_model::model_swapw_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7021 {
7022 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
7023   const sh2_scache* abuf = sem;
7024   const sh2_idesc* idesc = abuf->idesc;
7025   int cycles = 0;
7026   {
7027     INT in_usereg = -1;
7028     in_usereg = FLD (in_rm);
7029     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7030   }
7031   {
7032     cycles += model_u_exec_before (current_cpu, idesc, 1);
7033   }
7034   {
7035     cycles += model_u_shift_before (current_cpu, idesc, 2);
7036   }
7037   return cycles;
7038 #undef FLD
7039 }
7040
7041 UINT
7042 sh2_sh2_model::model_swapw_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7043 {
7044 #define FLD(f) abuf->fields.sfmt_movl11_compact.f
7045   const sh2_scache* abuf = sem;
7046   const sh2_idesc* idesc = abuf->idesc;
7047   int cycles = 0;
7048   {
7049     int referenced = 0;
7050     unsigned long long insn_referenced = abuf->written;
7051     INT in_usereg = -1;
7052     in_usereg = FLD (in_rm);
7053     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7054   }
7055   {
7056     int referenced = 0;
7057     unsigned long long insn_referenced = abuf->written;
7058     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
7059   }
7060   {
7061     int referenced = 0;
7062     unsigned long long insn_referenced = abuf->written;
7063     cycles += model_u_shift_after (current_cpu, idesc, 2, referenced);
7064   }
7065   return cycles;
7066 #undef FLD
7067 }
7068
7069 UINT
7070 sh2_sh2_model::model_tasb_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7071 {
7072 #define FLD(f) abuf->fields.sfmt_addi_compact.f
7073   const sh2_scache* abuf = sem;
7074   const sh2_idesc* idesc = abuf->idesc;
7075   int cycles = 0;
7076   {
7077     INT in_usereg = -1;
7078     in_usereg = FLD (in_rn);
7079     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7080   }
7081   {
7082     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
7083   }
7084   {
7085     cycles += model_u_tas_before (current_cpu, idesc, 2);
7086   }
7087   {
7088     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
7089   }
7090   {
7091     cycles += model_u_memory_access_before (current_cpu, idesc, 4);
7092   }
7093   return cycles;
7094 #undef FLD
7095 }
7096
7097 UINT
7098 sh2_sh2_model::model_tasb_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7099 {
7100 #define FLD(f) abuf->fields.sfmt_addi_compact.f
7101   const sh2_scache* abuf = sem;
7102   const sh2_idesc* idesc = abuf->idesc;
7103   int cycles = 0;
7104   {
7105     int referenced = 0;
7106     unsigned long long insn_referenced = abuf->written;
7107     INT in_usereg = -1;
7108     in_usereg = FLD (in_rn);
7109     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7110   }
7111   {
7112     int referenced = 0;
7113     unsigned long long insn_referenced = abuf->written;
7114     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
7115   }
7116   {
7117     int referenced = 0;
7118     unsigned long long insn_referenced = abuf->written;
7119     cycles += model_u_tas_after (current_cpu, idesc, 2, referenced);
7120   }
7121   {
7122     int referenced = 0;
7123     unsigned long long insn_referenced = abuf->written;
7124     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
7125   }
7126   {
7127     int referenced = 0;
7128     unsigned long long insn_referenced = abuf->written;
7129     cycles += model_u_memory_access_after (current_cpu, idesc, 4, referenced);
7130   }
7131   return cycles;
7132 #undef FLD
7133 }
7134
7135 UINT
7136 sh2_sh2_model::model_trapa_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7137 {
7138 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7139   const sh2_scache* abuf = sem;
7140   const sh2_idesc* idesc = abuf->idesc;
7141   int cycles = 0;
7142   {
7143     cycles += model_u_trap_before (current_cpu, idesc, 0);
7144   }
7145   return cycles;
7146 #undef FLD
7147 }
7148
7149 UINT
7150 sh2_sh2_model::model_trapa_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7151 {
7152 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7153   const sh2_scache* abuf = sem;
7154   const sh2_idesc* idesc = abuf->idesc;
7155   int cycles = 0;
7156   {
7157     int referenced = 0;
7158     unsigned long long insn_referenced = abuf->written;
7159     cycles += model_u_trap_after (current_cpu, idesc, 0, referenced);
7160   }
7161   return cycles;
7162 #undef FLD
7163 }
7164
7165 UINT
7166 sh2_sh2_model::model_tst_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7167 {
7168 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
7169   const sh2_scache* abuf = sem;
7170   const sh2_idesc* idesc = abuf->idesc;
7171   int cycles = 0;
7172   {
7173     INT in_usereg = -1;
7174     in_usereg = FLD (in_rn);
7175     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7176   }
7177   {
7178     INT in_usereg = -1;
7179     in_usereg = FLD (in_rm);
7180     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
7181   }
7182   {
7183     cycles += model_u_use_tbit_before (current_cpu, idesc, 2);
7184   }
7185   {
7186     cycles += model_u_exec_before (current_cpu, idesc, 3);
7187   }
7188   {
7189     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
7190   }
7191   return cycles;
7192 #undef FLD
7193 }
7194
7195 UINT
7196 sh2_sh2_model::model_tst_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7197 {
7198 #define FLD(f) abuf->fields.sfmt_movl5_compact.f
7199   const sh2_scache* abuf = sem;
7200   const sh2_idesc* idesc = abuf->idesc;
7201   int cycles = 0;
7202   {
7203     int referenced = 0;
7204     unsigned long long insn_referenced = abuf->written;
7205     INT in_usereg = -1;
7206     in_usereg = FLD (in_rn);
7207     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7208   }
7209   {
7210     int referenced = 0;
7211     unsigned long long insn_referenced = abuf->written;
7212     INT in_usereg = -1;
7213     in_usereg = FLD (in_rm);
7214     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
7215   }
7216   {
7217     int referenced = 0;
7218     unsigned long long insn_referenced = abuf->written;
7219     cycles += model_u_use_tbit_after (current_cpu, idesc, 2, referenced);
7220   }
7221   {
7222     int referenced = 0;
7223     unsigned long long insn_referenced = abuf->written;
7224     cycles += model_u_exec_after (current_cpu, idesc, 3, referenced);
7225   }
7226   {
7227     int referenced = 0;
7228     unsigned long long insn_referenced = abuf->written;
7229     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
7230   }
7231   return cycles;
7232 #undef FLD
7233 }
7234
7235 UINT
7236 sh2_sh2_model::model_tsti_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7237 {
7238 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7239   const sh2_scache* abuf = sem;
7240   const sh2_idesc* idesc = abuf->idesc;
7241   int cycles = 0;
7242   {
7243     INT in_usereg = -1;
7244     in_usereg = FLD (in_r0);
7245     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7246   }
7247   {
7248     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
7249   }
7250   {
7251     cycles += model_u_exec_before (current_cpu, idesc, 2);
7252   }
7253   {
7254     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 3);
7255   }
7256   return cycles;
7257 #undef FLD
7258 }
7259
7260 UINT
7261 sh2_sh2_model::model_tsti_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7262 {
7263 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7264   const sh2_scache* abuf = sem;
7265   const sh2_idesc* idesc = abuf->idesc;
7266   int cycles = 0;
7267   {
7268     int referenced = 0;
7269     unsigned long long insn_referenced = abuf->written;
7270     INT in_usereg = -1;
7271     in_usereg = FLD (in_r0);
7272     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7273   }
7274   {
7275     int referenced = 0;
7276     unsigned long long insn_referenced = abuf->written;
7277     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
7278   }
7279   {
7280     int referenced = 0;
7281     unsigned long long insn_referenced = abuf->written;
7282     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7283   }
7284   {
7285     int referenced = 0;
7286     unsigned long long insn_referenced = abuf->written;
7287     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 3, referenced);
7288   }
7289   return cycles;
7290 #undef FLD
7291 }
7292
7293 UINT
7294 sh2_sh2_model::model_tstb_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7295 {
7296 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7297   const sh2_scache* abuf = sem;
7298   const sh2_idesc* idesc = abuf->idesc;
7299   int cycles = 0;
7300   {
7301     INT in_usereg = -1;
7302     in_usereg = FLD (in_r0);
7303     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7304   }
7305   {
7306     cycles += model_u_use_tbit_before (current_cpu, idesc, 1);
7307   }
7308   {
7309     cycles += model_u_exec_before (current_cpu, idesc, 2);
7310   }
7311   {
7312     cycles += model_u_sx_before (current_cpu, idesc, 3);
7313   }
7314   {
7315     cycles += model_u_set_sr_bit_before (current_cpu, idesc, 4);
7316   }
7317   {
7318     cycles += model_u_memory_access_before (current_cpu, idesc, 5);
7319   }
7320   return cycles;
7321 #undef FLD
7322 }
7323
7324 UINT
7325 sh2_sh2_model::model_tstb_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7326 {
7327 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7328   const sh2_scache* abuf = sem;
7329   const sh2_idesc* idesc = abuf->idesc;
7330   int cycles = 0;
7331   {
7332     int referenced = 0;
7333     unsigned long long insn_referenced = abuf->written;
7334     INT in_usereg = -1;
7335     in_usereg = FLD (in_r0);
7336     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7337   }
7338   {
7339     int referenced = 0;
7340     unsigned long long insn_referenced = abuf->written;
7341     cycles += model_u_use_tbit_after (current_cpu, idesc, 1, referenced);
7342   }
7343   {
7344     int referenced = 0;
7345     unsigned long long insn_referenced = abuf->written;
7346     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7347   }
7348   {
7349     int referenced = 0;
7350     unsigned long long insn_referenced = abuf->written;
7351     cycles += model_u_sx_after (current_cpu, idesc, 3, referenced);
7352   }
7353   {
7354     int referenced = 0;
7355     unsigned long long insn_referenced = abuf->written;
7356     cycles += model_u_set_sr_bit_after (current_cpu, idesc, 4, referenced);
7357   }
7358   {
7359     int referenced = 0;
7360     unsigned long long insn_referenced = abuf->written;
7361     cycles += model_u_memory_access_after (current_cpu, idesc, 5, referenced);
7362   }
7363   return cycles;
7364 #undef FLD
7365 }
7366
7367 UINT
7368 sh2_sh2_model::model_xor_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7369 {
7370 #define FLD(f) abuf->fields.sfmt_and_compact.f
7371   const sh2_scache* abuf = sem;
7372   const sh2_idesc* idesc = abuf->idesc;
7373   int cycles = 0;
7374   {
7375     INT in_usereg = -1;
7376     in_usereg = FLD (in_rn64);
7377     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7378   }
7379   {
7380     INT in_usereg = -1;
7381     in_usereg = FLD (in_rm64);
7382     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
7383   }
7384   {
7385     cycles += model_u_exec_before (current_cpu, idesc, 2);
7386   }
7387   return cycles;
7388 #undef FLD
7389 }
7390
7391 UINT
7392 sh2_sh2_model::model_xor_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7393 {
7394 #define FLD(f) abuf->fields.sfmt_and_compact.f
7395   const sh2_scache* abuf = sem;
7396   const sh2_idesc* idesc = abuf->idesc;
7397   int cycles = 0;
7398   {
7399     int referenced = 0;
7400     unsigned long long insn_referenced = abuf->written;
7401     INT in_usereg = -1;
7402     in_usereg = FLD (in_rn64);
7403     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7404   }
7405   {
7406     int referenced = 0;
7407     unsigned long long insn_referenced = abuf->written;
7408     INT in_usereg = -1;
7409     in_usereg = FLD (in_rm64);
7410     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
7411   }
7412   {
7413     int referenced = 0;
7414     unsigned long long insn_referenced = abuf->written;
7415     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7416   }
7417   return cycles;
7418 #undef FLD
7419 }
7420
7421 UINT
7422 sh2_sh2_model::model_xori_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7423 {
7424 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7425   const sh2_scache* abuf = sem;
7426   const sh2_idesc* idesc = abuf->idesc;
7427   int cycles = 0;
7428   {
7429     INT in_usereg = -1;
7430     in_usereg = FLD (in_r0);
7431     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7432   }
7433   {
7434     cycles += model_u_exec_before (current_cpu, idesc, 1);
7435   }
7436   return cycles;
7437 #undef FLD
7438 }
7439
7440 UINT
7441 sh2_sh2_model::model_xori_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7442 {
7443 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7444   const sh2_scache* abuf = sem;
7445   const sh2_idesc* idesc = abuf->idesc;
7446   int cycles = 0;
7447   {
7448     int referenced = 0;
7449     unsigned long long insn_referenced = abuf->written;
7450     INT in_usereg = -1;
7451     in_usereg = FLD (in_r0);
7452     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7453   }
7454   {
7455     int referenced = 0;
7456     unsigned long long insn_referenced = abuf->written;
7457     cycles += model_u_exec_after (current_cpu, idesc, 1, referenced);
7458   }
7459   return cycles;
7460 #undef FLD
7461 }
7462
7463 UINT
7464 sh2_sh2_model::model_xorb_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7465 {
7466 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7467   const sh2_scache* abuf = sem;
7468   const sh2_idesc* idesc = abuf->idesc;
7469   int cycles = 0;
7470   {
7471     INT in_usereg = -1;
7472     in_usereg = FLD (in_r0);
7473     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7474   }
7475   {
7476     cycles += model_u_logic_b_before (current_cpu, idesc, 1);
7477   }
7478   {
7479     cycles += model_u_memory_access_before (current_cpu, idesc, 2);
7480   }
7481   return cycles;
7482 #undef FLD
7483 }
7484
7485 UINT
7486 sh2_sh2_model::model_xorb_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7487 {
7488 #define FLD(f) abuf->fields.sfmt_andi_compact.f
7489   const sh2_scache* abuf = sem;
7490   const sh2_idesc* idesc = abuf->idesc;
7491   int cycles = 0;
7492   {
7493     int referenced = 0;
7494     unsigned long long insn_referenced = abuf->written;
7495     INT in_usereg = -1;
7496     in_usereg = FLD (in_r0);
7497     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7498   }
7499   {
7500     int referenced = 0;
7501     unsigned long long insn_referenced = abuf->written;
7502     cycles += model_u_logic_b_after (current_cpu, idesc, 1, referenced);
7503   }
7504   {
7505     int referenced = 0;
7506     unsigned long long insn_referenced = abuf->written;
7507     cycles += model_u_memory_access_after (current_cpu, idesc, 2, referenced);
7508   }
7509   return cycles;
7510 #undef FLD
7511 }
7512
7513 UINT
7514 sh2_sh2_model::model_xtrct_compact_before (sh2_cpu *current_cpu, sh2_scache *sem)
7515 {
7516 #define FLD(f) abuf->fields.sfmt_macl_compact.f
7517   const sh2_scache* abuf = sem;
7518   const sh2_idesc* idesc = abuf->idesc;
7519   int cycles = 0;
7520   {
7521     INT in_usereg = -1;
7522     in_usereg = FLD (in_rn);
7523     cycles += model_u_use_gr_before (current_cpu, idesc, 0, in_usereg);
7524   }
7525   {
7526     INT in_usereg = -1;
7527     in_usereg = FLD (in_rm);
7528     cycles += model_u_use_gr_before (current_cpu, idesc, 1, in_usereg);
7529   }
7530   {
7531     cycles += model_u_exec_before (current_cpu, idesc, 2);
7532   }
7533   {
7534     cycles += model_u_shift_before (current_cpu, idesc, 3);
7535   }
7536   return cycles;
7537 #undef FLD
7538 }
7539
7540 UINT
7541 sh2_sh2_model::model_xtrct_compact_after (sh2_cpu *current_cpu, sh2_scache *sem)
7542 {
7543 #define FLD(f) abuf->fields.sfmt_macl_compact.f
7544   const sh2_scache* abuf = sem;
7545   const sh2_idesc* idesc = abuf->idesc;
7546   int cycles = 0;
7547   {
7548     int referenced = 0;
7549     unsigned long long insn_referenced = abuf->written;
7550     INT in_usereg = -1;
7551     in_usereg = FLD (in_rn);
7552     cycles += model_u_use_gr_after (current_cpu, idesc, 0, referenced, in_usereg);
7553   }
7554   {
7555     int referenced = 0;
7556     unsigned long long insn_referenced = abuf->written;
7557     INT in_usereg = -1;
7558     in_usereg = FLD (in_rm);
7559     cycles += model_u_use_gr_after (current_cpu, idesc, 1, referenced, in_usereg);
7560   }
7561   {
7562     int referenced = 0;
7563     unsigned long long insn_referenced = abuf->written;
7564     cycles += model_u_exec_after (current_cpu, idesc, 2, referenced);
7565   }
7566   {
7567     int referenced = 0;
7568     unsigned long long insn_referenced = abuf->written;
7569     cycles += model_u_shift_after (current_cpu, idesc, 3, referenced);
7570   }
7571   return cycles;
7572 #undef FLD
7573 }
7574
7575 /* We assume UNIT_NONE == 0 because the tables don't always terminate
7576    entries with it.  */
7577
7578 /* Model timing data for `sh2'.  */
7579
7580 const sh2_sh2_model::insn_timing sh2_sh2_model::timing[] = {
7581   { SH2_INSN_X_INVALID, 0, 0, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7582   { SH2_INSN_ADD_COMPACT, & sh2_sh2_model::model_add_compact_before, & sh2_sh2_model::model_add_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7583   { SH2_INSN_ADDI_COMPACT, & sh2_sh2_model::model_addi_compact_before, & sh2_sh2_model::model_addi_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7584   { SH2_INSN_ADDC_COMPACT, & sh2_sh2_model::model_addc_compact_before, & sh2_sh2_model::model_addc_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7585   { SH2_INSN_ADDV_COMPACT, & sh2_sh2_model::model_addv_compact_before, & sh2_sh2_model::model_addv_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7586   { SH2_INSN_AND_COMPACT, & sh2_sh2_model::model_and_compact_before, & sh2_sh2_model::model_and_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7587   { SH2_INSN_ANDI_COMPACT, & sh2_sh2_model::model_andi_compact_before, & sh2_sh2_model::model_andi_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7588   { SH2_INSN_ANDB_COMPACT, & sh2_sh2_model::model_andb_compact_before, & sh2_sh2_model::model_andb_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LOGIC_B, 0, 3 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7589   { SH2_INSN_BF_COMPACT, & sh2_sh2_model::model_bf_compact_before, & sh2_sh2_model::model_bf_compact_after, { { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_BRANCH, 0, 3 } } },
7590   { SH2_INSN_BFS_COMPACT, & sh2_sh2_model::model_bfs_compact_before, & sh2_sh2_model::model_bfs_compact_after, { { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_BRANCH, 0, 2 } } },
7591   { SH2_INSN_BRA_COMPACT, & sh2_sh2_model::model_bra_compact_before, & sh2_sh2_model::model_bra_compact_after, { { sh2_sh2_model::UNIT_U_BRANCH, 0, 2 } } },
7592   { SH2_INSN_BRAF_COMPACT, & sh2_sh2_model::model_braf_compact_before, & sh2_sh2_model::model_braf_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_JMP, 0, 2 } } },
7593   { SH2_INSN_BSR_COMPACT, & sh2_sh2_model::model_bsr_compact_before, & sh2_sh2_model::model_bsr_compact_after, { { sh2_sh2_model::UNIT_U_BRANCH, 0, 2 } } },
7594   { SH2_INSN_BSRF_COMPACT, & sh2_sh2_model::model_bsrf_compact_before, & sh2_sh2_model::model_bsrf_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_JSR, 0, 2 } } },
7595   { SH2_INSN_BT_COMPACT, & sh2_sh2_model::model_bt_compact_before, & sh2_sh2_model::model_bt_compact_after, { { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_BRANCH, 0, 3 } } },
7596   { SH2_INSN_BTS_COMPACT, & sh2_sh2_model::model_bts_compact_before, & sh2_sh2_model::model_bts_compact_after, { { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_BRANCH, 0, 2 } } },
7597   { SH2_INSN_CLRMAC_COMPACT, & sh2_sh2_model::model_clrmac_compact_before, & sh2_sh2_model::model_clrmac_compact_after, { { sh2_sh2_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_MAC, 0, 0 } } },
7598   { SH2_INSN_CLRT_COMPACT, & sh2_sh2_model::model_clrt_compact_before, & sh2_sh2_model::model_clrt_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7599   { SH2_INSN_CMPEQ_COMPACT, & sh2_sh2_model::model_cmpeq_compact_before, & sh2_sh2_model::model_cmpeq_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7600   { SH2_INSN_CMPEQI_COMPACT, & sh2_sh2_model::model_cmpeqi_compact_before, & sh2_sh2_model::model_cmpeqi_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7601   { SH2_INSN_CMPGE_COMPACT, & sh2_sh2_model::model_cmpge_compact_before, & sh2_sh2_model::model_cmpge_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7602   { SH2_INSN_CMPGT_COMPACT, & sh2_sh2_model::model_cmpgt_compact_before, & sh2_sh2_model::model_cmpgt_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7603   { SH2_INSN_CMPHI_COMPACT, & sh2_sh2_model::model_cmphi_compact_before, & sh2_sh2_model::model_cmphi_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7604   { SH2_INSN_CMPHS_COMPACT, & sh2_sh2_model::model_cmphs_compact_before, & sh2_sh2_model::model_cmphs_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7605   { SH2_INSN_CMPPL_COMPACT, & sh2_sh2_model::model_cmppl_compact_before, & sh2_sh2_model::model_cmppl_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7606   { SH2_INSN_CMPPZ_COMPACT, & sh2_sh2_model::model_cmppz_compact_before, & sh2_sh2_model::model_cmppz_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7607   { SH2_INSN_CMPSTR_COMPACT, & sh2_sh2_model::model_cmpstr_compact_before, & sh2_sh2_model::model_cmpstr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7608   { SH2_INSN_DIV0S_COMPACT, & sh2_sh2_model::model_div0s_compact_before, & sh2_sh2_model::model_div0s_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7609   { SH2_INSN_DIV0U_COMPACT, & sh2_sh2_model::model_div0u_compact_before, & sh2_sh2_model::model_div0u_compact_after, { { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7610   { SH2_INSN_DIV1_COMPACT, & sh2_sh2_model::model_div1_compact_before, & sh2_sh2_model::model_div1_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7611   { SH2_INSN_DMULSL_COMPACT, & sh2_sh2_model::model_dmulsl_compact_before, & sh2_sh2_model::model_dmulsl_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_DMUL, 1, 2 } } },
7612   { SH2_INSN_DMULUL_COMPACT, & sh2_sh2_model::model_dmulul_compact_before, & sh2_sh2_model::model_dmulul_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_DMUL, 1, 2 } } },
7613   { SH2_INSN_DT_COMPACT, & sh2_sh2_model::model_dt_compact_before, & sh2_sh2_model::model_dt_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7614   { SH2_INSN_EXTSB_COMPACT, & sh2_sh2_model::model_extsb_compact_before, & sh2_sh2_model::model_extsb_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7615   { SH2_INSN_EXTSW_COMPACT, & sh2_sh2_model::model_extsw_compact_before, & sh2_sh2_model::model_extsw_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7616   { SH2_INSN_EXTUB_COMPACT, & sh2_sh2_model::model_extub_compact_before, & sh2_sh2_model::model_extub_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7617   { SH2_INSN_EXTUW_COMPACT, & sh2_sh2_model::model_extuw_compact_before, & sh2_sh2_model::model_extuw_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7618   { SH2_INSN_FRCHG_COMPACT, & sh2_sh2_model::model_frchg_compact_before, & sh2_sh2_model::model_frchg_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7619   { SH2_INSN_FSCHG_COMPACT, & sh2_sh2_model::model_fschg_compact_before, & sh2_sh2_model::model_fschg_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7620   { SH2_INSN_JMP_COMPACT, & sh2_sh2_model::model_jmp_compact_before, & sh2_sh2_model::model_jmp_compact_after, { { sh2_sh2_model::UNIT_U_JMP, 0, 2 } } },
7621   { SH2_INSN_JSR_COMPACT, & sh2_sh2_model::model_jsr_compact_before, & sh2_sh2_model::model_jsr_compact_after, { { sh2_sh2_model::UNIT_U_JSR, 0, 2 } } },
7622   { SH2_INSN_LDC_GBR_COMPACT, & sh2_sh2_model::model_ldc_gbr_compact_before, & sh2_sh2_model::model_ldc_gbr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LDC_GBR, 0, 1 } } },
7623   { SH2_INSN_LDC_VBR_COMPACT, & sh2_sh2_model::model_ldc_vbr_compact_before, & sh2_sh2_model::model_ldc_vbr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7624   { SH2_INSN_LDC_SR_COMPACT, & sh2_sh2_model::model_ldc_sr_compact_before, & sh2_sh2_model::model_ldc_sr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LDC_SR, 0, 1 } } },
7625   { SH2_INSN_LDCL_GBR_COMPACT, & sh2_sh2_model::model_ldcl_gbr_compact_before, & sh2_sh2_model::model_ldcl_gbr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LDCL, 0, 3 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GBR, 0, 0 } } },
7626   { SH2_INSN_LDCL_VBR_COMPACT, & sh2_sh2_model::model_ldcl_vbr_compact_before, & sh2_sh2_model::model_ldcl_vbr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LDCL_VBR, 0, 3 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_VBR, 0, 0 } } },
7627   { SH2_INSN_LDS_MACH_COMPACT, & sh2_sh2_model::model_lds_mach_compact_before, & sh2_sh2_model::model_lds_mach_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_MAC, 0, 0 } } },
7628   { SH2_INSN_LDSL_MACH_COMPACT, & sh2_sh2_model::model_ldsl_mach_compact_before, & sh2_sh2_model::model_ldsl_mach_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_MAC, 0, 0 } } },
7629   { SH2_INSN_LDS_MACL_COMPACT, & sh2_sh2_model::model_lds_macl_compact_before, & sh2_sh2_model::model_lds_macl_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_MAC, 0, 0 } } },
7630   { SH2_INSN_LDSL_MACL_COMPACT, & sh2_sh2_model::model_ldsl_macl_compact_before, & sh2_sh2_model::model_ldsl_macl_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_MAC, 0, 0 } } },
7631   { SH2_INSN_LDS_PR_COMPACT, & sh2_sh2_model::model_lds_pr_compact_before, & sh2_sh2_model::model_lds_pr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LDS_PR, 0, 1 } } },
7632   { SH2_INSN_LDSL_PR_COMPACT, & sh2_sh2_model::model_ldsl_pr_compact_before, & sh2_sh2_model::model_ldsl_pr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LDS_PR, 0, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_PR, 0, 0 } } },
7633   { SH2_INSN_MACL_COMPACT, & sh2_sh2_model::model_macl_compact_before, & sh2_sh2_model::model_macl_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_MACL, 1, 2 } } },
7634   { SH2_INSN_MACW_COMPACT, & sh2_sh2_model::model_macw_compact_before, & sh2_sh2_model::model_macw_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_MACW, 1, 2 } } },
7635   { SH2_INSN_MOV_COMPACT, & sh2_sh2_model::model_mov_compact_before, & sh2_sh2_model::model_mov_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7636   { SH2_INSN_MOVI_COMPACT, & sh2_sh2_model::model_movi_compact_before, & sh2_sh2_model::model_movi_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7637   { SH2_INSN_MOVB1_COMPACT, & sh2_sh2_model::model_movb1_compact_before, & sh2_sh2_model::model_movb1_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7638   { SH2_INSN_MOVB2_COMPACT, & sh2_sh2_model::model_movb2_compact_before, & sh2_sh2_model::model_movb2_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7639   { SH2_INSN_MOVB3_COMPACT, & sh2_sh2_model::model_movb3_compact_before, & sh2_sh2_model::model_movb3_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7640   { SH2_INSN_MOVB4_COMPACT, & sh2_sh2_model::model_movb4_compact_before, & sh2_sh2_model::model_movb4_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SX, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7641   { SH2_INSN_MOVB5_COMPACT, & sh2_sh2_model::model_movb5_compact_before, & sh2_sh2_model::model_movb5_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7642   { SH2_INSN_MOVB6_COMPACT, & sh2_sh2_model::model_movb6_compact_before, & sh2_sh2_model::model_movb6_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7643   { SH2_INSN_MOVB7_COMPACT, & sh2_sh2_model::model_movb7_compact_before, & sh2_sh2_model::model_movb7_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7644   { SH2_INSN_MOVB8_COMPACT, & sh2_sh2_model::model_movb8_compact_before, & sh2_sh2_model::model_movb8_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7645   { SH2_INSN_MOVB9_COMPACT, & sh2_sh2_model::model_movb9_compact_before, & sh2_sh2_model::model_movb9_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7646   { SH2_INSN_MOVB10_COMPACT, & sh2_sh2_model::model_movb10_compact_before, & sh2_sh2_model::model_movb10_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7647   { SH2_INSN_MOVL1_COMPACT, & sh2_sh2_model::model_movl1_compact_before, & sh2_sh2_model::model_movl1_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7648   { SH2_INSN_MOVL2_COMPACT, & sh2_sh2_model::model_movl2_compact_before, & sh2_sh2_model::model_movl2_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7649   { SH2_INSN_MOVL3_COMPACT, & sh2_sh2_model::model_movl3_compact_before, & sh2_sh2_model::model_movl3_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7650   { SH2_INSN_MOVL4_COMPACT, & sh2_sh2_model::model_movl4_compact_before, & sh2_sh2_model::model_movl4_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SX, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7651   { SH2_INSN_MOVL5_COMPACT, & sh2_sh2_model::model_movl5_compact_before, & sh2_sh2_model::model_movl5_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7652   { SH2_INSN_MOVL6_COMPACT, & sh2_sh2_model::model_movl6_compact_before, & sh2_sh2_model::model_movl6_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7653   { SH2_INSN_MOVL7_COMPACT, & sh2_sh2_model::model_movl7_compact_before, & sh2_sh2_model::model_movl7_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7654   { SH2_INSN_MOVL8_COMPACT, & sh2_sh2_model::model_movl8_compact_before, & sh2_sh2_model::model_movl8_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7655   { SH2_INSN_MOVL9_COMPACT, & sh2_sh2_model::model_movl9_compact_before, & sh2_sh2_model::model_movl9_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7656   { SH2_INSN_MOVL10_COMPACT, & sh2_sh2_model::model_movl10_compact_before, & sh2_sh2_model::model_movl10_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7657   { SH2_INSN_MOVL11_COMPACT, & sh2_sh2_model::model_movl11_compact_before, & sh2_sh2_model::model_movl11_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7658   { SH2_INSN_MOVW1_COMPACT, & sh2_sh2_model::model_movw1_compact_before, & sh2_sh2_model::model_movw1_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7659   { SH2_INSN_MOVW2_COMPACT, & sh2_sh2_model::model_movw2_compact_before, & sh2_sh2_model::model_movw2_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7660   { SH2_INSN_MOVW3_COMPACT, & sh2_sh2_model::model_movw3_compact_before, & sh2_sh2_model::model_movw3_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7661   { SH2_INSN_MOVW4_COMPACT, & sh2_sh2_model::model_movw4_compact_before, & sh2_sh2_model::model_movw4_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SX, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7662   { SH2_INSN_MOVW5_COMPACT, & sh2_sh2_model::model_movw5_compact_before, & sh2_sh2_model::model_movw5_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7663   { SH2_INSN_MOVW6_COMPACT, & sh2_sh2_model::model_movw6_compact_before, & sh2_sh2_model::model_movw6_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7664   { SH2_INSN_MOVW7_COMPACT, & sh2_sh2_model::model_movw7_compact_before, & sh2_sh2_model::model_movw7_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7665   { SH2_INSN_MOVW8_COMPACT, & sh2_sh2_model::model_movw8_compact_before, & sh2_sh2_model::model_movw8_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7666   { SH2_INSN_MOVW9_COMPACT, & sh2_sh2_model::model_movw9_compact_before, & sh2_sh2_model::model_movw9_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7667   { SH2_INSN_MOVW10_COMPACT, & sh2_sh2_model::model_movw10_compact_before, & sh2_sh2_model::model_movw10_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7668   { SH2_INSN_MOVW11_COMPACT, & sh2_sh2_model::model_movw11_compact_before, & sh2_sh2_model::model_movw11_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 }, { sh2_sh2_model::UNIT_U_LOAD_GR, 0, 0 } } },
7669   { SH2_INSN_MOVA_COMPACT, & sh2_sh2_model::model_mova_compact_before, & sh2_sh2_model::model_mova_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7670   { SH2_INSN_MOVT_COMPACT, & sh2_sh2_model::model_movt_compact_before, & sh2_sh2_model::model_movt_compact_after, { { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7671   { SH2_INSN_MULL_COMPACT, & sh2_sh2_model::model_mull_compact_before, & sh2_sh2_model::model_mull_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_MULL, 1, 2 } } },
7672   { SH2_INSN_MULSW_COMPACT, & sh2_sh2_model::model_mulsw_compact_before, & sh2_sh2_model::model_mulsw_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_MULSW, 1, 1 }, { sh2_sh2_model::UNIT_U_MULTIPLY, 1, 2 } } },
7673   { SH2_INSN_MULUW_COMPACT, & sh2_sh2_model::model_muluw_compact_before, & sh2_sh2_model::model_muluw_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_MULSW, 1, 1 }, { sh2_sh2_model::UNIT_U_MULTIPLY, 1, 2 } } },
7674   { SH2_INSN_NEG_COMPACT, & sh2_sh2_model::model_neg_compact_before, & sh2_sh2_model::model_neg_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7675   { SH2_INSN_NEGC_COMPACT, & sh2_sh2_model::model_negc_compact_before, & sh2_sh2_model::model_negc_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7676   { SH2_INSN_NOP_COMPACT, & sh2_sh2_model::model_nop_compact_before, & sh2_sh2_model::model_nop_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7677   { SH2_INSN_NOT_COMPACT, & sh2_sh2_model::model_not_compact_before, & sh2_sh2_model::model_not_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7678   { SH2_INSN_OR_COMPACT, & sh2_sh2_model::model_or_compact_before, & sh2_sh2_model::model_or_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7679   { SH2_INSN_ORI_COMPACT, & sh2_sh2_model::model_ori_compact_before, & sh2_sh2_model::model_ori_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7680   { SH2_INSN_ORB_COMPACT, & sh2_sh2_model::model_orb_compact_before, & sh2_sh2_model::model_orb_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LOGIC_B, 0, 3 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7681   { SH2_INSN_ROTCL_COMPACT, & sh2_sh2_model::model_rotcl_compact_before, & sh2_sh2_model::model_rotcl_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7682   { SH2_INSN_ROTCR_COMPACT, & sh2_sh2_model::model_rotcr_compact_before, & sh2_sh2_model::model_rotcr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7683   { SH2_INSN_ROTL_COMPACT, & sh2_sh2_model::model_rotl_compact_before, & sh2_sh2_model::model_rotl_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7684   { SH2_INSN_ROTR_COMPACT, & sh2_sh2_model::model_rotr_compact_before, & sh2_sh2_model::model_rotr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7685   { SH2_INSN_RTS_COMPACT, & sh2_sh2_model::model_rts_compact_before, & sh2_sh2_model::model_rts_compact_after, { { sh2_sh2_model::UNIT_U_JMP, 0, 2 } } },
7686   { SH2_INSN_SETT_COMPACT, & sh2_sh2_model::model_sett_compact_before, & sh2_sh2_model::model_sett_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7687   { SH2_INSN_SHAL_COMPACT, & sh2_sh2_model::model_shal_compact_before, & sh2_sh2_model::model_shal_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7688   { SH2_INSN_SHAR_COMPACT, & sh2_sh2_model::model_shar_compact_before, & sh2_sh2_model::model_shar_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7689   { SH2_INSN_SHLL_COMPACT, & sh2_sh2_model::model_shll_compact_before, & sh2_sh2_model::model_shll_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7690   { SH2_INSN_SHLL2_COMPACT, & sh2_sh2_model::model_shll2_compact_before, & sh2_sh2_model::model_shll2_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7691   { SH2_INSN_SHLL8_COMPACT, & sh2_sh2_model::model_shll8_compact_before, & sh2_sh2_model::model_shll8_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7692   { SH2_INSN_SHLL16_COMPACT, & sh2_sh2_model::model_shll16_compact_before, & sh2_sh2_model::model_shll16_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7693   { SH2_INSN_SHLR_COMPACT, & sh2_sh2_model::model_shlr_compact_before, & sh2_sh2_model::model_shlr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7694   { SH2_INSN_SHLR2_COMPACT, & sh2_sh2_model::model_shlr2_compact_before, & sh2_sh2_model::model_shlr2_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7695   { SH2_INSN_SHLR8_COMPACT, & sh2_sh2_model::model_shlr8_compact_before, & sh2_sh2_model::model_shlr8_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7696   { SH2_INSN_SHLR16_COMPACT, & sh2_sh2_model::model_shlr16_compact_before, & sh2_sh2_model::model_shlr16_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7697   { SH2_INSN_STC_GBR_COMPACT, & sh2_sh2_model::model_stc_gbr_compact_before, & sh2_sh2_model::model_stc_gbr_compact_after, { { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7698   { SH2_INSN_STC_VBR_COMPACT, & sh2_sh2_model::model_stc_vbr_compact_before, & sh2_sh2_model::model_stc_vbr_compact_after, { { sh2_sh2_model::UNIT_U_STC_VBR, 0, 1 } } },
7699   { SH2_INSN_STCL_GBR_COMPACT, & sh2_sh2_model::model_stcl_gbr_compact_before, & sh2_sh2_model::model_stcl_gbr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LDCL, 0, 2 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7700   { SH2_INSN_STCL_VBR_COMPACT, & sh2_sh2_model::model_stcl_vbr_compact_before, & sh2_sh2_model::model_stcl_vbr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LDCL, 0, 2 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7701   { SH2_INSN_STS_MACH_COMPACT, & sh2_sh2_model::model_sts_mach_compact_before, & sh2_sh2_model::model_sts_mach_compact_after, { { sh2_sh2_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh2_sh2_model::UNIT_U_WRITE_BACK, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7702   { SH2_INSN_STSL_MACH_COMPACT, & sh2_sh2_model::model_stsl_mach_compact_before, & sh2_sh2_model::model_stsl_mach_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh2_sh2_model::UNIT_U_WRITE_BACK, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7703   { SH2_INSN_STS_MACL_COMPACT, & sh2_sh2_model::model_sts_macl_compact_before, & sh2_sh2_model::model_sts_macl_compact_after, { { sh2_sh2_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh2_sh2_model::UNIT_U_WRITE_BACK, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7704   { SH2_INSN_STSL_MACL_COMPACT, & sh2_sh2_model::model_stsl_macl_compact_before, & sh2_sh2_model::model_stsl_macl_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_MULTIPLY_RESULT, 0, 0 }, { sh2_sh2_model::UNIT_U_WRITE_BACK, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7705   { SH2_INSN_STS_PR_COMPACT, & sh2_sh2_model::model_sts_pr_compact_before, & sh2_sh2_model::model_sts_pr_compact_after, { { sh2_sh2_model::UNIT_U_USE_PR, 0, 0 }, { sh2_sh2_model::UNIT_U_STS_PR, 0, 1 } } },
7706   { SH2_INSN_STSL_PR_COMPACT, & sh2_sh2_model::model_stsl_pr_compact_before, & sh2_sh2_model::model_stsl_pr_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_PR, 0, 0 }, { sh2_sh2_model::UNIT_U_STS_PR, 0, 1 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7707   { SH2_INSN_SUB_COMPACT, & sh2_sh2_model::model_sub_compact_before, & sh2_sh2_model::model_sub_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7708   { SH2_INSN_SUBC_COMPACT, & sh2_sh2_model::model_subc_compact_before, & sh2_sh2_model::model_subc_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7709   { SH2_INSN_SUBV_COMPACT, & sh2_sh2_model::model_subv_compact_before, & sh2_sh2_model::model_subv_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7710   { SH2_INSN_SWAPB_COMPACT, & sh2_sh2_model::model_swapb_compact_before, & sh2_sh2_model::model_swapb_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7711   { SH2_INSN_SWAPW_COMPACT, & sh2_sh2_model::model_swapw_compact_before, & sh2_sh2_model::model_swapw_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7712   { SH2_INSN_TASB_COMPACT, & sh2_sh2_model::model_tasb_compact_before, & sh2_sh2_model::model_tasb_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_TAS, 1, 4 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7713   { SH2_INSN_TRAPA_COMPACT, & sh2_sh2_model::model_trapa_compact_before, & sh2_sh2_model::model_trapa_compact_after, { { sh2_sh2_model::UNIT_U_TRAP, 0, 8 } } },
7714   { SH2_INSN_TST_COMPACT, & sh2_sh2_model::model_tst_compact_before, & sh2_sh2_model::model_tst_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7715   { SH2_INSN_TSTI_COMPACT, & sh2_sh2_model::model_tsti_compact_before, & sh2_sh2_model::model_tsti_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 } } },
7716   { SH2_INSN_TSTB_COMPACT, & sh2_sh2_model::model_tstb_compact_before, & sh2_sh2_model::model_tstb_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_TBIT, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 3 }, { sh2_sh2_model::UNIT_U_SX, 1, 3 }, { sh2_sh2_model::UNIT_U_SET_SR_BIT, 0, 0 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7717   { SH2_INSN_XOR_COMPACT, & sh2_sh2_model::model_xor_compact_before, & sh2_sh2_model::model_xor_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7718   { SH2_INSN_XORI_COMPACT, & sh2_sh2_model::model_xori_compact_before, & sh2_sh2_model::model_xori_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 } } },
7719   { SH2_INSN_XORB_COMPACT, & sh2_sh2_model::model_xorb_compact_before, & sh2_sh2_model::model_xorb_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_LOGIC_B, 0, 3 }, { sh2_sh2_model::UNIT_U_MEMORY_ACCESS, 0, 0 } } },
7720   { SH2_INSN_XTRCT_COMPACT, & sh2_sh2_model::model_xtrct_compact_before, & sh2_sh2_model::model_xtrct_compact_after, { { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_USE_GR, 0, 0 }, { sh2_sh2_model::UNIT_U_EXEC, 1, 1 }, { sh2_sh2_model::UNIT_U_SHIFT, 0, 0 } } },
7721 };
7722