OSDN Git Service

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