OSDN Git Service

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