OSDN Git Service

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