sim: syscall: unify memory helpers
[external/binutils.git] / sim / cris / modelv10.c
1 /* Simulator model support for crisv10f.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2015 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9    This file is free software; you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation; either version 3, or (at your option)
12    any later version.
13
14    It is distributed in the hope that it will be useful, but WITHOUT
15    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
17    License for more details.
18
19    You should have received a copy of the GNU General Public License along
20    with this program; if not, see <http://www.gnu.org/licenses/>.
21
22 */
23
24 #define WANT_CPU crisv10f
25 #define WANT_CPU_CRISV10F
26
27 #include "sim-main.h"
28
29 /* The profiling data is recorded here, but is accessed via the profiling
30    mechanism.  After all, this is information for profiling.  */
31
32 #if WITH_PROFILE_MODEL_P
33
34 /* Model handlers for each insn.  */
35
36 static int
37 model_crisv10_nop (SIM_CPU *current_cpu, void *sem_arg)
38 {
39 #define FLD(f) abuf->fields.sfmt_empty.f
40   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
41   const IDESC * UNUSED idesc = abuf->idesc;
42   int cycles = 0;
43   {
44     int referenced = 0;
45     int UNUSED insn_referenced = abuf->written;
46     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
47   }
48   return cycles;
49 #undef FLD
50 }
51
52 static int
53 model_crisv10_move_b_r (SIM_CPU *current_cpu, void *sem_arg)
54 {
55 #define FLD(f) abuf->fields.sfmt_add_b_r.f
56   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
57   const IDESC * UNUSED idesc = abuf->idesc;
58   int cycles = 0;
59   {
60     int referenced = 0;
61     int UNUSED insn_referenced = abuf->written;
62     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
63   }
64   return cycles;
65 #undef FLD
66 }
67
68 static int
69 model_crisv10_move_w_r (SIM_CPU *current_cpu, void *sem_arg)
70 {
71 #define FLD(f) abuf->fields.sfmt_add_b_r.f
72   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
73   const IDESC * UNUSED idesc = abuf->idesc;
74   int cycles = 0;
75   {
76     int referenced = 0;
77     int UNUSED insn_referenced = abuf->written;
78     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
79   }
80   return cycles;
81 #undef FLD
82 }
83
84 static int
85 model_crisv10_move_d_r (SIM_CPU *current_cpu, void *sem_arg)
86 {
87 #define FLD(f) abuf->fields.sfmt_add_b_r.f
88   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
89   const IDESC * UNUSED idesc = abuf->idesc;
90   int cycles = 0;
91   {
92     int referenced = 0;
93     int UNUSED insn_referenced = abuf->written;
94     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
95   }
96   return cycles;
97 #undef FLD
98 }
99
100 static int
101 model_crisv10_movepcr (SIM_CPU *current_cpu, void *sem_arg)
102 {
103 #define FLD(f) abuf->fields.sfmt_moveq.f
104   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
105   const IDESC * UNUSED idesc = abuf->idesc;
106   int cycles = 0;
107   {
108     int referenced = 0;
109     int UNUSED insn_referenced = abuf->written;
110     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
111   }
112   return cycles;
113 #undef FLD
114 }
115
116 static int
117 model_crisv10_moveq (SIM_CPU *current_cpu, void *sem_arg)
118 {
119 #define FLD(f) abuf->fields.sfmt_moveq.f
120   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
121   const IDESC * UNUSED idesc = abuf->idesc;
122   int cycles = 0;
123   {
124     int referenced = 0;
125     int UNUSED insn_referenced = abuf->written;
126     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
127   }
128   return cycles;
129 #undef FLD
130 }
131
132 static int
133 model_crisv10_movs_b_r (SIM_CPU *current_cpu, void *sem_arg)
134 {
135 #define FLD(f) abuf->fields.sfmt_muls_b.f
136   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
137   const IDESC * UNUSED idesc = abuf->idesc;
138   int cycles = 0;
139   {
140     int referenced = 0;
141     int UNUSED insn_referenced = abuf->written;
142     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
143   }
144   return cycles;
145 #undef FLD
146 }
147
148 static int
149 model_crisv10_movs_w_r (SIM_CPU *current_cpu, void *sem_arg)
150 {
151 #define FLD(f) abuf->fields.sfmt_muls_b.f
152   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
153   const IDESC * UNUSED idesc = abuf->idesc;
154   int cycles = 0;
155   {
156     int referenced = 0;
157     int UNUSED insn_referenced = abuf->written;
158     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
159   }
160   return cycles;
161 #undef FLD
162 }
163
164 static int
165 model_crisv10_movu_b_r (SIM_CPU *current_cpu, void *sem_arg)
166 {
167 #define FLD(f) abuf->fields.sfmt_muls_b.f
168   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
169   const IDESC * UNUSED idesc = abuf->idesc;
170   int cycles = 0;
171   {
172     int referenced = 0;
173     int UNUSED insn_referenced = abuf->written;
174     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
175   }
176   return cycles;
177 #undef FLD
178 }
179
180 static int
181 model_crisv10_movu_w_r (SIM_CPU *current_cpu, void *sem_arg)
182 {
183 #define FLD(f) abuf->fields.sfmt_muls_b.f
184   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
185   const IDESC * UNUSED idesc = abuf->idesc;
186   int cycles = 0;
187   {
188     int referenced = 0;
189     int UNUSED insn_referenced = abuf->written;
190     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
191   }
192   return cycles;
193 #undef FLD
194 }
195
196 static int
197 model_crisv10_movecbr (SIM_CPU *current_cpu, void *sem_arg)
198 {
199 #define FLD(f) abuf->fields.sfmt_addcbr.f
200   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
201   const IDESC * UNUSED idesc = abuf->idesc;
202   int cycles = 0;
203   {
204     int referenced = 0;
205     int UNUSED insn_referenced = abuf->written;
206     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
207   }
208   {
209     int referenced = 0;
210     int UNUSED insn_referenced = abuf->written;
211     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
212   }
213   return cycles;
214 #undef FLD
215 }
216
217 static int
218 model_crisv10_movecwr (SIM_CPU *current_cpu, void *sem_arg)
219 {
220 #define FLD(f) abuf->fields.sfmt_addcwr.f
221   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
222   const IDESC * UNUSED idesc = abuf->idesc;
223   int cycles = 0;
224   {
225     int referenced = 0;
226     int UNUSED insn_referenced = abuf->written;
227     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
228   }
229   {
230     int referenced = 0;
231     int UNUSED insn_referenced = abuf->written;
232     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
233   }
234   return cycles;
235 #undef FLD
236 }
237
238 static int
239 model_crisv10_movecdr (SIM_CPU *current_cpu, void *sem_arg)
240 {
241 #define FLD(f) abuf->fields.sfmt_bound_cd.f
242   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
243   const IDESC * UNUSED idesc = abuf->idesc;
244   int cycles = 0;
245   {
246     int referenced = 0;
247     int UNUSED insn_referenced = abuf->written;
248     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
249   }
250   {
251     int referenced = 0;
252     int UNUSED insn_referenced = abuf->written;
253     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
254   }
255   return cycles;
256 #undef FLD
257 }
258
259 static int
260 model_crisv10_movscbr (SIM_CPU *current_cpu, void *sem_arg)
261 {
262 #define FLD(f) abuf->fields.sfmt_bound_cb.f
263   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
264   const IDESC * UNUSED idesc = abuf->idesc;
265   int cycles = 0;
266   {
267     int referenced = 0;
268     int UNUSED insn_referenced = abuf->written;
269     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
270   }
271   {
272     int referenced = 0;
273     int UNUSED insn_referenced = abuf->written;
274     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
275   }
276   return cycles;
277 #undef FLD
278 }
279
280 static int
281 model_crisv10_movscwr (SIM_CPU *current_cpu, void *sem_arg)
282 {
283 #define FLD(f) abuf->fields.sfmt_bound_cw.f
284   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
285   const IDESC * UNUSED idesc = abuf->idesc;
286   int cycles = 0;
287   {
288     int referenced = 0;
289     int UNUSED insn_referenced = abuf->written;
290     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
291   }
292   {
293     int referenced = 0;
294     int UNUSED insn_referenced = abuf->written;
295     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
296   }
297   return cycles;
298 #undef FLD
299 }
300
301 static int
302 model_crisv10_movucbr (SIM_CPU *current_cpu, void *sem_arg)
303 {
304 #define FLD(f) abuf->fields.sfmt_bound_cb.f
305   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
306   const IDESC * UNUSED idesc = abuf->idesc;
307   int cycles = 0;
308   {
309     int referenced = 0;
310     int UNUSED insn_referenced = abuf->written;
311     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
312   }
313   {
314     int referenced = 0;
315     int UNUSED insn_referenced = abuf->written;
316     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
317   }
318   return cycles;
319 #undef FLD
320 }
321
322 static int
323 model_crisv10_movucwr (SIM_CPU *current_cpu, void *sem_arg)
324 {
325 #define FLD(f) abuf->fields.sfmt_bound_cw.f
326   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
327   const IDESC * UNUSED idesc = abuf->idesc;
328   int cycles = 0;
329   {
330     int referenced = 0;
331     int UNUSED insn_referenced = abuf->written;
332     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
333   }
334   {
335     int referenced = 0;
336     int UNUSED insn_referenced = abuf->written;
337     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
338   }
339   return cycles;
340 #undef FLD
341 }
342
343 static int
344 model_crisv10_addq (SIM_CPU *current_cpu, void *sem_arg)
345 {
346 #define FLD(f) abuf->fields.sfmt_addq.f
347   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
348   const IDESC * UNUSED idesc = abuf->idesc;
349   int cycles = 0;
350   {
351     int referenced = 0;
352     int UNUSED insn_referenced = abuf->written;
353     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
354   }
355   return cycles;
356 #undef FLD
357 }
358
359 static int
360 model_crisv10_subq (SIM_CPU *current_cpu, void *sem_arg)
361 {
362 #define FLD(f) abuf->fields.sfmt_addq.f
363   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
364   const IDESC * UNUSED idesc = abuf->idesc;
365   int cycles = 0;
366   {
367     int referenced = 0;
368     int UNUSED insn_referenced = abuf->written;
369     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
370   }
371   return cycles;
372 #undef FLD
373 }
374
375 static int
376 model_crisv10_cmp_r_b_r (SIM_CPU *current_cpu, void *sem_arg)
377 {
378 #define FLD(f) abuf->fields.sfmt_add_b_r.f
379   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
380   const IDESC * UNUSED idesc = abuf->idesc;
381   int cycles = 0;
382   {
383     int referenced = 0;
384     int UNUSED insn_referenced = abuf->written;
385     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
386   }
387   return cycles;
388 #undef FLD
389 }
390
391 static int
392 model_crisv10_cmp_r_w_r (SIM_CPU *current_cpu, void *sem_arg)
393 {
394 #define FLD(f) abuf->fields.sfmt_add_b_r.f
395   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
396   const IDESC * UNUSED idesc = abuf->idesc;
397   int cycles = 0;
398   {
399     int referenced = 0;
400     int UNUSED insn_referenced = abuf->written;
401     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
402   }
403   return cycles;
404 #undef FLD
405 }
406
407 static int
408 model_crisv10_cmp_r_d_r (SIM_CPU *current_cpu, void *sem_arg)
409 {
410 #define FLD(f) abuf->fields.sfmt_add_b_r.f
411   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
412   const IDESC * UNUSED idesc = abuf->idesc;
413   int cycles = 0;
414   {
415     int referenced = 0;
416     int UNUSED insn_referenced = abuf->written;
417     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
418   }
419   return cycles;
420 #undef FLD
421 }
422
423 static int
424 model_crisv10_cmp_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
425 {
426 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
427   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
428   const IDESC * UNUSED idesc = abuf->idesc;
429   int cycles = 0;
430   {
431     int referenced = 0;
432     int UNUSED insn_referenced = abuf->written;
433     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
434   }
435   {
436     int referenced = 0;
437     int UNUSED insn_referenced = abuf->written;
438     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
439   }
440   return cycles;
441 #undef FLD
442 }
443
444 static int
445 model_crisv10_cmp_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
446 {
447 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
448   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
449   const IDESC * UNUSED idesc = abuf->idesc;
450   int cycles = 0;
451   {
452     int referenced = 0;
453     int UNUSED insn_referenced = abuf->written;
454     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
455   }
456   {
457     int referenced = 0;
458     int UNUSED insn_referenced = abuf->written;
459     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
460   }
461   return cycles;
462 #undef FLD
463 }
464
465 static int
466 model_crisv10_cmp_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
467 {
468 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
469   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
470   const IDESC * UNUSED idesc = abuf->idesc;
471   int cycles = 0;
472   {
473     int referenced = 0;
474     int UNUSED insn_referenced = abuf->written;
475     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
476   }
477   {
478     int referenced = 0;
479     int UNUSED insn_referenced = abuf->written;
480     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
481   }
482   return cycles;
483 #undef FLD
484 }
485
486 static int
487 model_crisv10_cmpcbr (SIM_CPU *current_cpu, void *sem_arg)
488 {
489 #define FLD(f) abuf->fields.sfmt_bound_cb.f
490   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
491   const IDESC * UNUSED idesc = abuf->idesc;
492   int cycles = 0;
493   {
494     int referenced = 0;
495     int UNUSED insn_referenced = abuf->written;
496     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
497   }
498   {
499     int referenced = 0;
500     int UNUSED insn_referenced = abuf->written;
501     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
502   }
503   return cycles;
504 #undef FLD
505 }
506
507 static int
508 model_crisv10_cmpcwr (SIM_CPU *current_cpu, void *sem_arg)
509 {
510 #define FLD(f) abuf->fields.sfmt_bound_cw.f
511   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
512   const IDESC * UNUSED idesc = abuf->idesc;
513   int cycles = 0;
514   {
515     int referenced = 0;
516     int UNUSED insn_referenced = abuf->written;
517     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
518   }
519   {
520     int referenced = 0;
521     int UNUSED insn_referenced = abuf->written;
522     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
523   }
524   return cycles;
525 #undef FLD
526 }
527
528 static int
529 model_crisv10_cmpcdr (SIM_CPU *current_cpu, void *sem_arg)
530 {
531 #define FLD(f) abuf->fields.sfmt_bound_cd.f
532   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
533   const IDESC * UNUSED idesc = abuf->idesc;
534   int cycles = 0;
535   {
536     int referenced = 0;
537     int UNUSED insn_referenced = abuf->written;
538     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
539   }
540   {
541     int referenced = 0;
542     int UNUSED insn_referenced = abuf->written;
543     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
544   }
545   return cycles;
546 #undef FLD
547 }
548
549 static int
550 model_crisv10_cmpq (SIM_CPU *current_cpu, void *sem_arg)
551 {
552 #define FLD(f) abuf->fields.sfmt_andq.f
553   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
554   const IDESC * UNUSED idesc = abuf->idesc;
555   int cycles = 0;
556   {
557     int referenced = 0;
558     int UNUSED insn_referenced = abuf->written;
559     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
560   }
561   return cycles;
562 #undef FLD
563 }
564
565 static int
566 model_crisv10_cmps_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
567 {
568 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
569   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
570   const IDESC * UNUSED idesc = abuf->idesc;
571   int cycles = 0;
572   {
573     int referenced = 0;
574     int UNUSED insn_referenced = abuf->written;
575     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
576   }
577   {
578     int referenced = 0;
579     int UNUSED insn_referenced = abuf->written;
580     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
581   }
582   return cycles;
583 #undef FLD
584 }
585
586 static int
587 model_crisv10_cmps_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
588 {
589 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
590   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
591   const IDESC * UNUSED idesc = abuf->idesc;
592   int cycles = 0;
593   {
594     int referenced = 0;
595     int UNUSED insn_referenced = abuf->written;
596     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
597   }
598   {
599     int referenced = 0;
600     int UNUSED insn_referenced = abuf->written;
601     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
602   }
603   return cycles;
604 #undef FLD
605 }
606
607 static int
608 model_crisv10_cmpscbr (SIM_CPU *current_cpu, void *sem_arg)
609 {
610 #define FLD(f) abuf->fields.sfmt_bound_cb.f
611   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
612   const IDESC * UNUSED idesc = abuf->idesc;
613   int cycles = 0;
614   {
615     int referenced = 0;
616     int UNUSED insn_referenced = abuf->written;
617     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
618   }
619   {
620     int referenced = 0;
621     int UNUSED insn_referenced = abuf->written;
622     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
623   }
624   return cycles;
625 #undef FLD
626 }
627
628 static int
629 model_crisv10_cmpscwr (SIM_CPU *current_cpu, void *sem_arg)
630 {
631 #define FLD(f) abuf->fields.sfmt_bound_cw.f
632   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
633   const IDESC * UNUSED idesc = abuf->idesc;
634   int cycles = 0;
635   {
636     int referenced = 0;
637     int UNUSED insn_referenced = abuf->written;
638     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
639   }
640   {
641     int referenced = 0;
642     int UNUSED insn_referenced = abuf->written;
643     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
644   }
645   return cycles;
646 #undef FLD
647 }
648
649 static int
650 model_crisv10_cmpu_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
651 {
652 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
653   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
654   const IDESC * UNUSED idesc = abuf->idesc;
655   int cycles = 0;
656   {
657     int referenced = 0;
658     int UNUSED insn_referenced = abuf->written;
659     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
660   }
661   {
662     int referenced = 0;
663     int UNUSED insn_referenced = abuf->written;
664     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
665   }
666   return cycles;
667 #undef FLD
668 }
669
670 static int
671 model_crisv10_cmpu_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
672 {
673 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
674   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
675   const IDESC * UNUSED idesc = abuf->idesc;
676   int cycles = 0;
677   {
678     int referenced = 0;
679     int UNUSED insn_referenced = abuf->written;
680     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
681   }
682   {
683     int referenced = 0;
684     int UNUSED insn_referenced = abuf->written;
685     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
686   }
687   return cycles;
688 #undef FLD
689 }
690
691 static int
692 model_crisv10_cmpucbr (SIM_CPU *current_cpu, void *sem_arg)
693 {
694 #define FLD(f) abuf->fields.sfmt_bound_cb.f
695   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
696   const IDESC * UNUSED idesc = abuf->idesc;
697   int cycles = 0;
698   {
699     int referenced = 0;
700     int UNUSED insn_referenced = abuf->written;
701     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
702   }
703   {
704     int referenced = 0;
705     int UNUSED insn_referenced = abuf->written;
706     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
707   }
708   return cycles;
709 #undef FLD
710 }
711
712 static int
713 model_crisv10_cmpucwr (SIM_CPU *current_cpu, void *sem_arg)
714 {
715 #define FLD(f) abuf->fields.sfmt_bound_cw.f
716   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
717   const IDESC * UNUSED idesc = abuf->idesc;
718   int cycles = 0;
719   {
720     int referenced = 0;
721     int UNUSED insn_referenced = abuf->written;
722     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
723   }
724   {
725     int referenced = 0;
726     int UNUSED insn_referenced = abuf->written;
727     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
728   }
729   return cycles;
730 #undef FLD
731 }
732
733 static int
734 model_crisv10_move_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
735 {
736 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
737   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
738   const IDESC * UNUSED idesc = abuf->idesc;
739   int cycles = 0;
740   {
741     int referenced = 0;
742     int UNUSED insn_referenced = abuf->written;
743     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
744   }
745   {
746     int referenced = 0;
747     int UNUSED insn_referenced = abuf->written;
748     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
749   }
750   return cycles;
751 #undef FLD
752 }
753
754 static int
755 model_crisv10_move_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
756 {
757 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
758   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
759   const IDESC * UNUSED idesc = abuf->idesc;
760   int cycles = 0;
761   {
762     int referenced = 0;
763     int UNUSED insn_referenced = abuf->written;
764     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
765   }
766   {
767     int referenced = 0;
768     int UNUSED insn_referenced = abuf->written;
769     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
770   }
771   return cycles;
772 #undef FLD
773 }
774
775 static int
776 model_crisv10_move_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
777 {
778 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
779   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
780   const IDESC * UNUSED idesc = abuf->idesc;
781   int cycles = 0;
782   {
783     int referenced = 0;
784     int UNUSED insn_referenced = abuf->written;
785     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
786   }
787   {
788     int referenced = 0;
789     int UNUSED insn_referenced = abuf->written;
790     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
791   }
792   return cycles;
793 #undef FLD
794 }
795
796 static int
797 model_crisv10_movs_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
798 {
799 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
800   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
801   const IDESC * UNUSED idesc = abuf->idesc;
802   int cycles = 0;
803   {
804     int referenced = 0;
805     int UNUSED insn_referenced = abuf->written;
806     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
807   }
808   {
809     int referenced = 0;
810     int UNUSED insn_referenced = abuf->written;
811     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
812   }
813   return cycles;
814 #undef FLD
815 }
816
817 static int
818 model_crisv10_movs_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
819 {
820 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
821   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
822   const IDESC * UNUSED idesc = abuf->idesc;
823   int cycles = 0;
824   {
825     int referenced = 0;
826     int UNUSED insn_referenced = abuf->written;
827     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
828   }
829   {
830     int referenced = 0;
831     int UNUSED insn_referenced = abuf->written;
832     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
833   }
834   return cycles;
835 #undef FLD
836 }
837
838 static int
839 model_crisv10_movu_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
840 {
841 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
842   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
843   const IDESC * UNUSED idesc = abuf->idesc;
844   int cycles = 0;
845   {
846     int referenced = 0;
847     int UNUSED insn_referenced = abuf->written;
848     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
849   }
850   {
851     int referenced = 0;
852     int UNUSED insn_referenced = abuf->written;
853     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
854   }
855   return cycles;
856 #undef FLD
857 }
858
859 static int
860 model_crisv10_movu_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
861 {
862 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
863   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
864   const IDESC * UNUSED idesc = abuf->idesc;
865   int cycles = 0;
866   {
867     int referenced = 0;
868     int UNUSED insn_referenced = abuf->written;
869     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
870   }
871   {
872     int referenced = 0;
873     int UNUSED insn_referenced = abuf->written;
874     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
875   }
876   return cycles;
877 #undef FLD
878 }
879
880 static int
881 model_crisv10_move_r_sprv10 (SIM_CPU *current_cpu, void *sem_arg)
882 {
883 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
884   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
885   const IDESC * UNUSED idesc = abuf->idesc;
886   int cycles = 0;
887   {
888     int referenced = 0;
889     int UNUSED insn_referenced = abuf->written;
890     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
891   }
892   return cycles;
893 #undef FLD
894 }
895
896 static int
897 model_crisv10_move_spr_rv10 (SIM_CPU *current_cpu, void *sem_arg)
898 {
899 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
900   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
901   const IDESC * UNUSED idesc = abuf->idesc;
902   int cycles = 0;
903   {
904     int referenced = 0;
905     int UNUSED insn_referenced = abuf->written;
906     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
907   }
908   return cycles;
909 #undef FLD
910 }
911
912 static int
913 model_crisv10_ret_type (SIM_CPU *current_cpu, void *sem_arg)
914 {
915 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
916   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
917   const IDESC * UNUSED idesc = abuf->idesc;
918   int cycles = 0;
919   {
920     int referenced = 0;
921     int UNUSED insn_referenced = abuf->written;
922     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
923   }
924   return cycles;
925 #undef FLD
926 }
927
928 static int
929 model_crisv10_move_m_sprv10 (SIM_CPU *current_cpu, void *sem_arg)
930 {
931 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
932   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
933   const IDESC * UNUSED idesc = abuf->idesc;
934   int cycles = 0;
935   {
936     int referenced = 0;
937     int UNUSED insn_referenced = abuf->written;
938     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
939   }
940   {
941     int referenced = 0;
942     int UNUSED insn_referenced = abuf->written;
943     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
944   }
945   return cycles;
946 #undef FLD
947 }
948
949 static int
950 model_crisv10_move_c_sprv10_p5 (SIM_CPU *current_cpu, void *sem_arg)
951 {
952 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f
953   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
954   const IDESC * UNUSED idesc = abuf->idesc;
955   int cycles = 0;
956   {
957     int referenced = 0;
958     int UNUSED insn_referenced = abuf->written;
959     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
960   }
961   {
962     int referenced = 0;
963     int UNUSED insn_referenced = abuf->written;
964     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
965   }
966   return cycles;
967 #undef FLD
968 }
969
970 static int
971 model_crisv10_move_c_sprv10_p9 (SIM_CPU *current_cpu, void *sem_arg)
972 {
973 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
974   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
975   const IDESC * UNUSED idesc = abuf->idesc;
976   int cycles = 0;
977   {
978     int referenced = 0;
979     int UNUSED insn_referenced = abuf->written;
980     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
981   }
982   {
983     int referenced = 0;
984     int UNUSED insn_referenced = abuf->written;
985     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
986   }
987   return cycles;
988 #undef FLD
989 }
990
991 static int
992 model_crisv10_move_c_sprv10_p10 (SIM_CPU *current_cpu, void *sem_arg)
993 {
994 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
995   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
996   const IDESC * UNUSED idesc = abuf->idesc;
997   int cycles = 0;
998   {
999     int referenced = 0;
1000     int UNUSED insn_referenced = abuf->written;
1001     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1002   }
1003   {
1004     int referenced = 0;
1005     int UNUSED insn_referenced = abuf->written;
1006     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1007   }
1008   return cycles;
1009 #undef FLD
1010 }
1011
1012 static int
1013 model_crisv10_move_c_sprv10_p11 (SIM_CPU *current_cpu, void *sem_arg)
1014 {
1015 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
1016   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1017   const IDESC * UNUSED idesc = abuf->idesc;
1018   int cycles = 0;
1019   {
1020     int referenced = 0;
1021     int UNUSED insn_referenced = abuf->written;
1022     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1023   }
1024   {
1025     int referenced = 0;
1026     int UNUSED insn_referenced = abuf->written;
1027     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1028   }
1029   return cycles;
1030 #undef FLD
1031 }
1032
1033 static int
1034 model_crisv10_move_c_sprv10_p12 (SIM_CPU *current_cpu, void *sem_arg)
1035 {
1036 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
1037   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1038   const IDESC * UNUSED idesc = abuf->idesc;
1039   int cycles = 0;
1040   {
1041     int referenced = 0;
1042     int UNUSED insn_referenced = abuf->written;
1043     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1044   }
1045   {
1046     int referenced = 0;
1047     int UNUSED insn_referenced = abuf->written;
1048     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1049   }
1050   return cycles;
1051 #undef FLD
1052 }
1053
1054 static int
1055 model_crisv10_move_c_sprv10_p13 (SIM_CPU *current_cpu, void *sem_arg)
1056 {
1057 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
1058   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1059   const IDESC * UNUSED idesc = abuf->idesc;
1060   int cycles = 0;
1061   {
1062     int referenced = 0;
1063     int UNUSED insn_referenced = abuf->written;
1064     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1065   }
1066   {
1067     int referenced = 0;
1068     int UNUSED insn_referenced = abuf->written;
1069     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1070   }
1071   return cycles;
1072 #undef FLD
1073 }
1074
1075 static int
1076 model_crisv10_move_c_sprv10_p7 (SIM_CPU *current_cpu, void *sem_arg)
1077 {
1078 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
1079   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1080   const IDESC * UNUSED idesc = abuf->idesc;
1081   int cycles = 0;
1082   {
1083     int referenced = 0;
1084     int UNUSED insn_referenced = abuf->written;
1085     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1086   }
1087   {
1088     int referenced = 0;
1089     int UNUSED insn_referenced = abuf->written;
1090     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1091   }
1092   return cycles;
1093 #undef FLD
1094 }
1095
1096 static int
1097 model_crisv10_move_c_sprv10_p14 (SIM_CPU *current_cpu, void *sem_arg)
1098 {
1099 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
1100   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1101   const IDESC * UNUSED idesc = abuf->idesc;
1102   int cycles = 0;
1103   {
1104     int referenced = 0;
1105     int UNUSED insn_referenced = abuf->written;
1106     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1107   }
1108   {
1109     int referenced = 0;
1110     int UNUSED insn_referenced = abuf->written;
1111     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1112   }
1113   return cycles;
1114 #undef FLD
1115 }
1116
1117 static int
1118 model_crisv10_move_c_sprv10_p15 (SIM_CPU *current_cpu, void *sem_arg)
1119 {
1120 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
1121   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1122   const IDESC * UNUSED idesc = abuf->idesc;
1123   int cycles = 0;
1124   {
1125     int referenced = 0;
1126     int UNUSED insn_referenced = abuf->written;
1127     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1128   }
1129   {
1130     int referenced = 0;
1131     int UNUSED insn_referenced = abuf->written;
1132     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1133   }
1134   return cycles;
1135 #undef FLD
1136 }
1137
1138 static int
1139 model_crisv10_move_spr_mv10 (SIM_CPU *current_cpu, void *sem_arg)
1140 {
1141 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
1142   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1143   const IDESC * UNUSED idesc = abuf->idesc;
1144   int cycles = 0;
1145   {
1146     int referenced = 0;
1147     int UNUSED insn_referenced = abuf->written;
1148     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1149   }
1150   {
1151     int referenced = 0;
1152     int UNUSED insn_referenced = abuf->written;
1153     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1154   }
1155   return cycles;
1156 #undef FLD
1157 }
1158
1159 static int
1160 model_crisv10_sbfs (SIM_CPU *current_cpu, void *sem_arg)
1161 {
1162 #define FLD(f) abuf->fields.sfmt_empty.f
1163   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1164   const IDESC * UNUSED idesc = abuf->idesc;
1165   int cycles = 0;
1166   {
1167     int referenced = 0;
1168     int UNUSED insn_referenced = abuf->written;
1169     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1170   }
1171   return cycles;
1172 #undef FLD
1173 }
1174
1175 static int
1176 model_crisv10_movem_r_m (SIM_CPU *current_cpu, void *sem_arg)
1177 {
1178 #define FLD(f) abuf->fields.sfmt_movem_r_m.f
1179   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1180   const IDESC * UNUSED idesc = abuf->idesc;
1181   int cycles = 0;
1182   {
1183     int referenced = 0;
1184     int UNUSED insn_referenced = abuf->written;
1185     INT in_Rd = -1;
1186     in_Rd = FLD (in_Rd);
1187     referenced |= 1 << 0;
1188     cycles += crisv10f_model_crisv10_u_movem (current_cpu, idesc, 0, referenced, in_Rd);
1189   }
1190   {
1191     int referenced = 0;
1192     int UNUSED insn_referenced = abuf->written;
1193     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1194   }
1195   return cycles;
1196 #undef FLD
1197 }
1198
1199 static int
1200 model_crisv10_movem_m_r (SIM_CPU *current_cpu, void *sem_arg)
1201 {
1202 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
1203   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1204   const IDESC * UNUSED idesc = abuf->idesc;
1205   int cycles = 0;
1206   {
1207     int referenced = 0;
1208     int UNUSED insn_referenced = abuf->written;
1209     INT in_Rd = -1;
1210     in_Rd = FLD (in_Rd);
1211     referenced |= 1 << 0;
1212     cycles += crisv10f_model_crisv10_u_movem (current_cpu, idesc, 0, referenced, in_Rd);
1213   }
1214   {
1215     int referenced = 0;
1216     int UNUSED insn_referenced = abuf->written;
1217     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1218   }
1219   return cycles;
1220 #undef FLD
1221 }
1222
1223 static int
1224 model_crisv10_movem_m_pc (SIM_CPU *current_cpu, void *sem_arg)
1225 {
1226 #define FLD(f) abuf->fields.sfmt_movem_m_r.f
1227   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1228   const IDESC * UNUSED idesc = abuf->idesc;
1229   int cycles = 0;
1230   {
1231     int referenced = 0;
1232     int UNUSED insn_referenced = abuf->written;
1233     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1234   }
1235   {
1236     int referenced = 0;
1237     int UNUSED insn_referenced = abuf->written;
1238     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1239   }
1240   return cycles;
1241 #undef FLD
1242 }
1243
1244 static int
1245 model_crisv10_add_b_r (SIM_CPU *current_cpu, void *sem_arg)
1246 {
1247 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1248   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1249   const IDESC * UNUSED idesc = abuf->idesc;
1250   int cycles = 0;
1251   {
1252     int referenced = 0;
1253     int UNUSED insn_referenced = abuf->written;
1254     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1255   }
1256   return cycles;
1257 #undef FLD
1258 }
1259
1260 static int
1261 model_crisv10_add_w_r (SIM_CPU *current_cpu, void *sem_arg)
1262 {
1263 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1264   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1265   const IDESC * UNUSED idesc = abuf->idesc;
1266   int cycles = 0;
1267   {
1268     int referenced = 0;
1269     int UNUSED insn_referenced = abuf->written;
1270     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1271   }
1272   return cycles;
1273 #undef FLD
1274 }
1275
1276 static int
1277 model_crisv10_add_d_r (SIM_CPU *current_cpu, void *sem_arg)
1278 {
1279 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1280   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1281   const IDESC * UNUSED idesc = abuf->idesc;
1282   int cycles = 0;
1283   {
1284     int referenced = 0;
1285     int UNUSED insn_referenced = abuf->written;
1286     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1287   }
1288   return cycles;
1289 #undef FLD
1290 }
1291
1292 static int
1293 model_crisv10_add_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1294 {
1295 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1296   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1297   const IDESC * UNUSED idesc = abuf->idesc;
1298   int cycles = 0;
1299   {
1300     int referenced = 0;
1301     int UNUSED insn_referenced = abuf->written;
1302     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1303   }
1304   {
1305     int referenced = 0;
1306     int UNUSED insn_referenced = abuf->written;
1307     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1308   }
1309   return cycles;
1310 #undef FLD
1311 }
1312
1313 static int
1314 model_crisv10_add_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1315 {
1316 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1317   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1318   const IDESC * UNUSED idesc = abuf->idesc;
1319   int cycles = 0;
1320   {
1321     int referenced = 0;
1322     int UNUSED insn_referenced = abuf->written;
1323     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1324   }
1325   {
1326     int referenced = 0;
1327     int UNUSED insn_referenced = abuf->written;
1328     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1329   }
1330   return cycles;
1331 #undef FLD
1332 }
1333
1334 static int
1335 model_crisv10_add_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
1336 {
1337 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1338   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1339   const IDESC * UNUSED idesc = abuf->idesc;
1340   int cycles = 0;
1341   {
1342     int referenced = 0;
1343     int UNUSED insn_referenced = abuf->written;
1344     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1345   }
1346   {
1347     int referenced = 0;
1348     int UNUSED insn_referenced = abuf->written;
1349     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1350   }
1351   return cycles;
1352 #undef FLD
1353 }
1354
1355 static int
1356 model_crisv10_addcbr (SIM_CPU *current_cpu, void *sem_arg)
1357 {
1358 #define FLD(f) abuf->fields.sfmt_addcbr.f
1359   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1360   const IDESC * UNUSED idesc = abuf->idesc;
1361   int cycles = 0;
1362   {
1363     int referenced = 0;
1364     int UNUSED insn_referenced = abuf->written;
1365     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1366   }
1367   {
1368     int referenced = 0;
1369     int UNUSED insn_referenced = abuf->written;
1370     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1371   }
1372   return cycles;
1373 #undef FLD
1374 }
1375
1376 static int
1377 model_crisv10_addcwr (SIM_CPU *current_cpu, void *sem_arg)
1378 {
1379 #define FLD(f) abuf->fields.sfmt_addcwr.f
1380   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1381   const IDESC * UNUSED idesc = abuf->idesc;
1382   int cycles = 0;
1383   {
1384     int referenced = 0;
1385     int UNUSED insn_referenced = abuf->written;
1386     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1387   }
1388   {
1389     int referenced = 0;
1390     int UNUSED insn_referenced = abuf->written;
1391     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1392   }
1393   return cycles;
1394 #undef FLD
1395 }
1396
1397 static int
1398 model_crisv10_addcdr (SIM_CPU *current_cpu, void *sem_arg)
1399 {
1400 #define FLD(f) abuf->fields.sfmt_addcdr.f
1401   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1402   const IDESC * UNUSED idesc = abuf->idesc;
1403   int cycles = 0;
1404   {
1405     int referenced = 0;
1406     int UNUSED insn_referenced = abuf->written;
1407     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1408   }
1409   {
1410     int referenced = 0;
1411     int UNUSED insn_referenced = abuf->written;
1412     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1413   }
1414   return cycles;
1415 #undef FLD
1416 }
1417
1418 static int
1419 model_crisv10_addcpc (SIM_CPU *current_cpu, void *sem_arg)
1420 {
1421 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
1422   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1423   const IDESC * UNUSED idesc = abuf->idesc;
1424   int cycles = 0;
1425   {
1426     int referenced = 0;
1427     int UNUSED insn_referenced = abuf->written;
1428     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1429   }
1430   {
1431     int referenced = 0;
1432     int UNUSED insn_referenced = abuf->written;
1433     cycles += crisv10f_model_crisv10_u_stall (current_cpu, idesc, 1, referenced);
1434   }
1435   {
1436     int referenced = 0;
1437     int UNUSED insn_referenced = abuf->written;
1438     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 2, referenced);
1439   }
1440   return cycles;
1441 #undef FLD
1442 }
1443
1444 static int
1445 model_crisv10_adds_b_r (SIM_CPU *current_cpu, void *sem_arg)
1446 {
1447 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1448   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1449   const IDESC * UNUSED idesc = abuf->idesc;
1450   int cycles = 0;
1451   {
1452     int referenced = 0;
1453     int UNUSED insn_referenced = abuf->written;
1454     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1455   }
1456   return cycles;
1457 #undef FLD
1458 }
1459
1460 static int
1461 model_crisv10_adds_w_r (SIM_CPU *current_cpu, void *sem_arg)
1462 {
1463 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1464   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1465   const IDESC * UNUSED idesc = abuf->idesc;
1466   int cycles = 0;
1467   {
1468     int referenced = 0;
1469     int UNUSED insn_referenced = abuf->written;
1470     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1471   }
1472   return cycles;
1473 #undef FLD
1474 }
1475
1476 static int
1477 model_crisv10_adds_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1478 {
1479 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1480   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1481   const IDESC * UNUSED idesc = abuf->idesc;
1482   int cycles = 0;
1483   {
1484     int referenced = 0;
1485     int UNUSED insn_referenced = abuf->written;
1486     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1487   }
1488   {
1489     int referenced = 0;
1490     int UNUSED insn_referenced = abuf->written;
1491     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1492   }
1493   return cycles;
1494 #undef FLD
1495 }
1496
1497 static int
1498 model_crisv10_adds_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1499 {
1500 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1501   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1502   const IDESC * UNUSED idesc = abuf->idesc;
1503   int cycles = 0;
1504   {
1505     int referenced = 0;
1506     int UNUSED insn_referenced = abuf->written;
1507     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1508   }
1509   {
1510     int referenced = 0;
1511     int UNUSED insn_referenced = abuf->written;
1512     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1513   }
1514   return cycles;
1515 #undef FLD
1516 }
1517
1518 static int
1519 model_crisv10_addscbr (SIM_CPU *current_cpu, void *sem_arg)
1520 {
1521 #define FLD(f) abuf->fields.sfmt_addcbr.f
1522   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1523   const IDESC * UNUSED idesc = abuf->idesc;
1524   int cycles = 0;
1525   {
1526     int referenced = 0;
1527     int UNUSED insn_referenced = abuf->written;
1528     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1529   }
1530   {
1531     int referenced = 0;
1532     int UNUSED insn_referenced = abuf->written;
1533     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1534   }
1535   return cycles;
1536 #undef FLD
1537 }
1538
1539 static int
1540 model_crisv10_addscwr (SIM_CPU *current_cpu, void *sem_arg)
1541 {
1542 #define FLD(f) abuf->fields.sfmt_addcwr.f
1543   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1544   const IDESC * UNUSED idesc = abuf->idesc;
1545   int cycles = 0;
1546   {
1547     int referenced = 0;
1548     int UNUSED insn_referenced = abuf->written;
1549     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1550   }
1551   {
1552     int referenced = 0;
1553     int UNUSED insn_referenced = abuf->written;
1554     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1555   }
1556   return cycles;
1557 #undef FLD
1558 }
1559
1560 static int
1561 model_crisv10_addspcpc (SIM_CPU *current_cpu, void *sem_arg)
1562 {
1563 #define FLD(f) abuf->fields.sfmt_empty.f
1564   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1565   const IDESC * UNUSED idesc = abuf->idesc;
1566   int cycles = 0;
1567   {
1568     int referenced = 0;
1569     int UNUSED insn_referenced = abuf->written;
1570     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1571   }
1572   {
1573     int referenced = 0;
1574     int UNUSED insn_referenced = abuf->written;
1575     cycles += crisv10f_model_crisv10_u_stall (current_cpu, idesc, 1, referenced);
1576   }
1577   {
1578     int referenced = 0;
1579     int UNUSED insn_referenced = abuf->written;
1580     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 2, referenced);
1581   }
1582   return cycles;
1583 #undef FLD
1584 }
1585
1586 static int
1587 model_crisv10_addu_b_r (SIM_CPU *current_cpu, void *sem_arg)
1588 {
1589 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1590   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1591   const IDESC * UNUSED idesc = abuf->idesc;
1592   int cycles = 0;
1593   {
1594     int referenced = 0;
1595     int UNUSED insn_referenced = abuf->written;
1596     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1597   }
1598   return cycles;
1599 #undef FLD
1600 }
1601
1602 static int
1603 model_crisv10_addu_w_r (SIM_CPU *current_cpu, void *sem_arg)
1604 {
1605 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1606   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1607   const IDESC * UNUSED idesc = abuf->idesc;
1608   int cycles = 0;
1609   {
1610     int referenced = 0;
1611     int UNUSED insn_referenced = abuf->written;
1612     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1613   }
1614   return cycles;
1615 #undef FLD
1616 }
1617
1618 static int
1619 model_crisv10_addu_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1620 {
1621 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1622   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1623   const IDESC * UNUSED idesc = abuf->idesc;
1624   int cycles = 0;
1625   {
1626     int referenced = 0;
1627     int UNUSED insn_referenced = abuf->written;
1628     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1629   }
1630   {
1631     int referenced = 0;
1632     int UNUSED insn_referenced = abuf->written;
1633     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1634   }
1635   return cycles;
1636 #undef FLD
1637 }
1638
1639 static int
1640 model_crisv10_addu_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1641 {
1642 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1643   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1644   const IDESC * UNUSED idesc = abuf->idesc;
1645   int cycles = 0;
1646   {
1647     int referenced = 0;
1648     int UNUSED insn_referenced = abuf->written;
1649     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1650   }
1651   {
1652     int referenced = 0;
1653     int UNUSED insn_referenced = abuf->written;
1654     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1655   }
1656   return cycles;
1657 #undef FLD
1658 }
1659
1660 static int
1661 model_crisv10_adducbr (SIM_CPU *current_cpu, void *sem_arg)
1662 {
1663 #define FLD(f) abuf->fields.sfmt_addcbr.f
1664   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1665   const IDESC * UNUSED idesc = abuf->idesc;
1666   int cycles = 0;
1667   {
1668     int referenced = 0;
1669     int UNUSED insn_referenced = abuf->written;
1670     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1671   }
1672   {
1673     int referenced = 0;
1674     int UNUSED insn_referenced = abuf->written;
1675     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1676   }
1677   return cycles;
1678 #undef FLD
1679 }
1680
1681 static int
1682 model_crisv10_adducwr (SIM_CPU *current_cpu, void *sem_arg)
1683 {
1684 #define FLD(f) abuf->fields.sfmt_addcwr.f
1685   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1686   const IDESC * UNUSED idesc = abuf->idesc;
1687   int cycles = 0;
1688   {
1689     int referenced = 0;
1690     int UNUSED insn_referenced = abuf->written;
1691     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1692   }
1693   {
1694     int referenced = 0;
1695     int UNUSED insn_referenced = abuf->written;
1696     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1697   }
1698   return cycles;
1699 #undef FLD
1700 }
1701
1702 static int
1703 model_crisv10_sub_b_r (SIM_CPU *current_cpu, void *sem_arg)
1704 {
1705 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1706   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1707   const IDESC * UNUSED idesc = abuf->idesc;
1708   int cycles = 0;
1709   {
1710     int referenced = 0;
1711     int UNUSED insn_referenced = abuf->written;
1712     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1713   }
1714   return cycles;
1715 #undef FLD
1716 }
1717
1718 static int
1719 model_crisv10_sub_w_r (SIM_CPU *current_cpu, void *sem_arg)
1720 {
1721 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1722   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1723   const IDESC * UNUSED idesc = abuf->idesc;
1724   int cycles = 0;
1725   {
1726     int referenced = 0;
1727     int UNUSED insn_referenced = abuf->written;
1728     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1729   }
1730   return cycles;
1731 #undef FLD
1732 }
1733
1734 static int
1735 model_crisv10_sub_d_r (SIM_CPU *current_cpu, void *sem_arg)
1736 {
1737 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1738   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1739   const IDESC * UNUSED idesc = abuf->idesc;
1740   int cycles = 0;
1741   {
1742     int referenced = 0;
1743     int UNUSED insn_referenced = abuf->written;
1744     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1745   }
1746   return cycles;
1747 #undef FLD
1748 }
1749
1750 static int
1751 model_crisv10_sub_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1752 {
1753 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1754   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1755   const IDESC * UNUSED idesc = abuf->idesc;
1756   int cycles = 0;
1757   {
1758     int referenced = 0;
1759     int UNUSED insn_referenced = abuf->written;
1760     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1761   }
1762   {
1763     int referenced = 0;
1764     int UNUSED insn_referenced = abuf->written;
1765     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1766   }
1767   return cycles;
1768 #undef FLD
1769 }
1770
1771 static int
1772 model_crisv10_sub_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1773 {
1774 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1775   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1776   const IDESC * UNUSED idesc = abuf->idesc;
1777   int cycles = 0;
1778   {
1779     int referenced = 0;
1780     int UNUSED insn_referenced = abuf->written;
1781     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1782   }
1783   {
1784     int referenced = 0;
1785     int UNUSED insn_referenced = abuf->written;
1786     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1787   }
1788   return cycles;
1789 #undef FLD
1790 }
1791
1792 static int
1793 model_crisv10_sub_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
1794 {
1795 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1796   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1797   const IDESC * UNUSED idesc = abuf->idesc;
1798   int cycles = 0;
1799   {
1800     int referenced = 0;
1801     int UNUSED insn_referenced = abuf->written;
1802     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1803   }
1804   {
1805     int referenced = 0;
1806     int UNUSED insn_referenced = abuf->written;
1807     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1808   }
1809   return cycles;
1810 #undef FLD
1811 }
1812
1813 static int
1814 model_crisv10_subcbr (SIM_CPU *current_cpu, void *sem_arg)
1815 {
1816 #define FLD(f) abuf->fields.sfmt_addcbr.f
1817   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1818   const IDESC * UNUSED idesc = abuf->idesc;
1819   int cycles = 0;
1820   {
1821     int referenced = 0;
1822     int UNUSED insn_referenced = abuf->written;
1823     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1824   }
1825   {
1826     int referenced = 0;
1827     int UNUSED insn_referenced = abuf->written;
1828     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1829   }
1830   return cycles;
1831 #undef FLD
1832 }
1833
1834 static int
1835 model_crisv10_subcwr (SIM_CPU *current_cpu, void *sem_arg)
1836 {
1837 #define FLD(f) abuf->fields.sfmt_addcwr.f
1838   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1839   const IDESC * UNUSED idesc = abuf->idesc;
1840   int cycles = 0;
1841   {
1842     int referenced = 0;
1843     int UNUSED insn_referenced = abuf->written;
1844     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1845   }
1846   {
1847     int referenced = 0;
1848     int UNUSED insn_referenced = abuf->written;
1849     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1850   }
1851   return cycles;
1852 #undef FLD
1853 }
1854
1855 static int
1856 model_crisv10_subcdr (SIM_CPU *current_cpu, void *sem_arg)
1857 {
1858 #define FLD(f) abuf->fields.sfmt_addcdr.f
1859   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1860   const IDESC * UNUSED idesc = abuf->idesc;
1861   int cycles = 0;
1862   {
1863     int referenced = 0;
1864     int UNUSED insn_referenced = abuf->written;
1865     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1866   }
1867   {
1868     int referenced = 0;
1869     int UNUSED insn_referenced = abuf->written;
1870     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1871   }
1872   return cycles;
1873 #undef FLD
1874 }
1875
1876 static int
1877 model_crisv10_subs_b_r (SIM_CPU *current_cpu, void *sem_arg)
1878 {
1879 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1880   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1881   const IDESC * UNUSED idesc = abuf->idesc;
1882   int cycles = 0;
1883   {
1884     int referenced = 0;
1885     int UNUSED insn_referenced = abuf->written;
1886     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1887   }
1888   return cycles;
1889 #undef FLD
1890 }
1891
1892 static int
1893 model_crisv10_subs_w_r (SIM_CPU *current_cpu, void *sem_arg)
1894 {
1895 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1896   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1897   const IDESC * UNUSED idesc = abuf->idesc;
1898   int cycles = 0;
1899   {
1900     int referenced = 0;
1901     int UNUSED insn_referenced = abuf->written;
1902     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1903   }
1904   return cycles;
1905 #undef FLD
1906 }
1907
1908 static int
1909 model_crisv10_subs_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1910 {
1911 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1912   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1913   const IDESC * UNUSED idesc = abuf->idesc;
1914   int cycles = 0;
1915   {
1916     int referenced = 0;
1917     int UNUSED insn_referenced = abuf->written;
1918     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1919   }
1920   {
1921     int referenced = 0;
1922     int UNUSED insn_referenced = abuf->written;
1923     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1924   }
1925   return cycles;
1926 #undef FLD
1927 }
1928
1929 static int
1930 model_crisv10_subs_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1931 {
1932 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1933   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1934   const IDESC * UNUSED idesc = abuf->idesc;
1935   int cycles = 0;
1936   {
1937     int referenced = 0;
1938     int UNUSED insn_referenced = abuf->written;
1939     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1940   }
1941   {
1942     int referenced = 0;
1943     int UNUSED insn_referenced = abuf->written;
1944     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1945   }
1946   return cycles;
1947 #undef FLD
1948 }
1949
1950 static int
1951 model_crisv10_subscbr (SIM_CPU *current_cpu, void *sem_arg)
1952 {
1953 #define FLD(f) abuf->fields.sfmt_addcbr.f
1954   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1955   const IDESC * UNUSED idesc = abuf->idesc;
1956   int cycles = 0;
1957   {
1958     int referenced = 0;
1959     int UNUSED insn_referenced = abuf->written;
1960     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1961   }
1962   {
1963     int referenced = 0;
1964     int UNUSED insn_referenced = abuf->written;
1965     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1966   }
1967   return cycles;
1968 #undef FLD
1969 }
1970
1971 static int
1972 model_crisv10_subscwr (SIM_CPU *current_cpu, void *sem_arg)
1973 {
1974 #define FLD(f) abuf->fields.sfmt_addcwr.f
1975   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1976   const IDESC * UNUSED idesc = abuf->idesc;
1977   int cycles = 0;
1978   {
1979     int referenced = 0;
1980     int UNUSED insn_referenced = abuf->written;
1981     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1982   }
1983   {
1984     int referenced = 0;
1985     int UNUSED insn_referenced = abuf->written;
1986     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1987   }
1988   return cycles;
1989 #undef FLD
1990 }
1991
1992 static int
1993 model_crisv10_subu_b_r (SIM_CPU *current_cpu, void *sem_arg)
1994 {
1995 #define FLD(f) abuf->fields.sfmt_add_b_r.f
1996   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1997   const IDESC * UNUSED idesc = abuf->idesc;
1998   int cycles = 0;
1999   {
2000     int referenced = 0;
2001     int UNUSED insn_referenced = abuf->written;
2002     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2003   }
2004   return cycles;
2005 #undef FLD
2006 }
2007
2008 static int
2009 model_crisv10_subu_w_r (SIM_CPU *current_cpu, void *sem_arg)
2010 {
2011 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2012   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2013   const IDESC * UNUSED idesc = abuf->idesc;
2014   int cycles = 0;
2015   {
2016     int referenced = 0;
2017     int UNUSED insn_referenced = abuf->written;
2018     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2019   }
2020   return cycles;
2021 #undef FLD
2022 }
2023
2024 static int
2025 model_crisv10_subu_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2026 {
2027 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2028   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2029   const IDESC * UNUSED idesc = abuf->idesc;
2030   int cycles = 0;
2031   {
2032     int referenced = 0;
2033     int UNUSED insn_referenced = abuf->written;
2034     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2035   }
2036   {
2037     int referenced = 0;
2038     int UNUSED insn_referenced = abuf->written;
2039     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2040   }
2041   return cycles;
2042 #undef FLD
2043 }
2044
2045 static int
2046 model_crisv10_subu_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2047 {
2048 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2049   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2050   const IDESC * UNUSED idesc = abuf->idesc;
2051   int cycles = 0;
2052   {
2053     int referenced = 0;
2054     int UNUSED insn_referenced = abuf->written;
2055     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2056   }
2057   {
2058     int referenced = 0;
2059     int UNUSED insn_referenced = abuf->written;
2060     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2061   }
2062   return cycles;
2063 #undef FLD
2064 }
2065
2066 static int
2067 model_crisv10_subucbr (SIM_CPU *current_cpu, void *sem_arg)
2068 {
2069 #define FLD(f) abuf->fields.sfmt_addcbr.f
2070   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2071   const IDESC * UNUSED idesc = abuf->idesc;
2072   int cycles = 0;
2073   {
2074     int referenced = 0;
2075     int UNUSED insn_referenced = abuf->written;
2076     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2077   }
2078   {
2079     int referenced = 0;
2080     int UNUSED insn_referenced = abuf->written;
2081     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2082   }
2083   return cycles;
2084 #undef FLD
2085 }
2086
2087 static int
2088 model_crisv10_subucwr (SIM_CPU *current_cpu, void *sem_arg)
2089 {
2090 #define FLD(f) abuf->fields.sfmt_addcwr.f
2091   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2092   const IDESC * UNUSED idesc = abuf->idesc;
2093   int cycles = 0;
2094   {
2095     int referenced = 0;
2096     int UNUSED insn_referenced = abuf->written;
2097     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2098   }
2099   {
2100     int referenced = 0;
2101     int UNUSED insn_referenced = abuf->written;
2102     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2103   }
2104   return cycles;
2105 #undef FLD
2106 }
2107
2108 static int
2109 model_crisv10_addi_b_r (SIM_CPU *current_cpu, void *sem_arg)
2110 {
2111 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2112   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2113   const IDESC * UNUSED idesc = abuf->idesc;
2114   int cycles = 0;
2115   {
2116     int referenced = 0;
2117     int UNUSED insn_referenced = abuf->written;
2118     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2119   }
2120   return cycles;
2121 #undef FLD
2122 }
2123
2124 static int
2125 model_crisv10_addi_w_r (SIM_CPU *current_cpu, void *sem_arg)
2126 {
2127 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2128   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2129   const IDESC * UNUSED idesc = abuf->idesc;
2130   int cycles = 0;
2131   {
2132     int referenced = 0;
2133     int UNUSED insn_referenced = abuf->written;
2134     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2135   }
2136   return cycles;
2137 #undef FLD
2138 }
2139
2140 static int
2141 model_crisv10_addi_d_r (SIM_CPU *current_cpu, void *sem_arg)
2142 {
2143 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2144   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2145   const IDESC * UNUSED idesc = abuf->idesc;
2146   int cycles = 0;
2147   {
2148     int referenced = 0;
2149     int UNUSED insn_referenced = abuf->written;
2150     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2151   }
2152   return cycles;
2153 #undef FLD
2154 }
2155
2156 static int
2157 model_crisv10_neg_b_r (SIM_CPU *current_cpu, void *sem_arg)
2158 {
2159 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2160   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2161   const IDESC * UNUSED idesc = abuf->idesc;
2162   int cycles = 0;
2163   {
2164     int referenced = 0;
2165     int UNUSED insn_referenced = abuf->written;
2166     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2167   }
2168   return cycles;
2169 #undef FLD
2170 }
2171
2172 static int
2173 model_crisv10_neg_w_r (SIM_CPU *current_cpu, void *sem_arg)
2174 {
2175 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2176   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2177   const IDESC * UNUSED idesc = abuf->idesc;
2178   int cycles = 0;
2179   {
2180     int referenced = 0;
2181     int UNUSED insn_referenced = abuf->written;
2182     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2183   }
2184   return cycles;
2185 #undef FLD
2186 }
2187
2188 static int
2189 model_crisv10_neg_d_r (SIM_CPU *current_cpu, void *sem_arg)
2190 {
2191 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2192   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2193   const IDESC * UNUSED idesc = abuf->idesc;
2194   int cycles = 0;
2195   {
2196     int referenced = 0;
2197     int UNUSED insn_referenced = abuf->written;
2198     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2199   }
2200   return cycles;
2201 #undef FLD
2202 }
2203
2204 static int
2205 model_crisv10_test_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2206 {
2207 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
2208   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2209   const IDESC * UNUSED idesc = abuf->idesc;
2210   int cycles = 0;
2211   {
2212     int referenced = 0;
2213     int UNUSED insn_referenced = abuf->written;
2214     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2215   }
2216   {
2217     int referenced = 0;
2218     int UNUSED insn_referenced = abuf->written;
2219     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2220   }
2221   return cycles;
2222 #undef FLD
2223 }
2224
2225 static int
2226 model_crisv10_test_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2227 {
2228 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
2229   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2230   const IDESC * UNUSED idesc = abuf->idesc;
2231   int cycles = 0;
2232   {
2233     int referenced = 0;
2234     int UNUSED insn_referenced = abuf->written;
2235     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2236   }
2237   {
2238     int referenced = 0;
2239     int UNUSED insn_referenced = abuf->written;
2240     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2241   }
2242   return cycles;
2243 #undef FLD
2244 }
2245
2246 static int
2247 model_crisv10_test_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
2248 {
2249 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
2250   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2251   const IDESC * UNUSED idesc = abuf->idesc;
2252   int cycles = 0;
2253   {
2254     int referenced = 0;
2255     int UNUSED insn_referenced = abuf->written;
2256     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2257   }
2258   {
2259     int referenced = 0;
2260     int UNUSED insn_referenced = abuf->written;
2261     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2262   }
2263   return cycles;
2264 #undef FLD
2265 }
2266
2267 static int
2268 model_crisv10_move_r_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2269 {
2270 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2271   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2272   const IDESC * UNUSED idesc = abuf->idesc;
2273   int cycles = 0;
2274   {
2275     int referenced = 0;
2276     int UNUSED insn_referenced = abuf->written;
2277     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2278   }
2279   {
2280     int referenced = 0;
2281     int UNUSED insn_referenced = abuf->written;
2282     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2283   }
2284   return cycles;
2285 #undef FLD
2286 }
2287
2288 static int
2289 model_crisv10_move_r_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2290 {
2291 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2292   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2293   const IDESC * UNUSED idesc = abuf->idesc;
2294   int cycles = 0;
2295   {
2296     int referenced = 0;
2297     int UNUSED insn_referenced = abuf->written;
2298     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2299   }
2300   {
2301     int referenced = 0;
2302     int UNUSED insn_referenced = abuf->written;
2303     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2304   }
2305   return cycles;
2306 #undef FLD
2307 }
2308
2309 static int
2310 model_crisv10_move_r_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
2311 {
2312 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2313   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2314   const IDESC * UNUSED idesc = abuf->idesc;
2315   int cycles = 0;
2316   {
2317     int referenced = 0;
2318     int UNUSED insn_referenced = abuf->written;
2319     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2320   }
2321   {
2322     int referenced = 0;
2323     int UNUSED insn_referenced = abuf->written;
2324     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2325   }
2326   return cycles;
2327 #undef FLD
2328 }
2329
2330 static int
2331 model_crisv10_muls_b (SIM_CPU *current_cpu, void *sem_arg)
2332 {
2333 #define FLD(f) abuf->fields.sfmt_muls_b.f
2334   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2335   const IDESC * UNUSED idesc = abuf->idesc;
2336   int cycles = 0;
2337   {
2338     int referenced = 0;
2339     int UNUSED insn_referenced = abuf->written;
2340     cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2341   }
2342   {
2343     int referenced = 0;
2344     int UNUSED insn_referenced = abuf->written;
2345     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2346   }
2347   return cycles;
2348 #undef FLD
2349 }
2350
2351 static int
2352 model_crisv10_muls_w (SIM_CPU *current_cpu, void *sem_arg)
2353 {
2354 #define FLD(f) abuf->fields.sfmt_muls_b.f
2355   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2356   const IDESC * UNUSED idesc = abuf->idesc;
2357   int cycles = 0;
2358   {
2359     int referenced = 0;
2360     int UNUSED insn_referenced = abuf->written;
2361     cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2362   }
2363   {
2364     int referenced = 0;
2365     int UNUSED insn_referenced = abuf->written;
2366     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2367   }
2368   return cycles;
2369 #undef FLD
2370 }
2371
2372 static int
2373 model_crisv10_muls_d (SIM_CPU *current_cpu, void *sem_arg)
2374 {
2375 #define FLD(f) abuf->fields.sfmt_muls_b.f
2376   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2377   const IDESC * UNUSED idesc = abuf->idesc;
2378   int cycles = 0;
2379   {
2380     int referenced = 0;
2381     int UNUSED insn_referenced = abuf->written;
2382     cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2383   }
2384   {
2385     int referenced = 0;
2386     int UNUSED insn_referenced = abuf->written;
2387     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2388   }
2389   return cycles;
2390 #undef FLD
2391 }
2392
2393 static int
2394 model_crisv10_mulu_b (SIM_CPU *current_cpu, void *sem_arg)
2395 {
2396 #define FLD(f) abuf->fields.sfmt_muls_b.f
2397   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2398   const IDESC * UNUSED idesc = abuf->idesc;
2399   int cycles = 0;
2400   {
2401     int referenced = 0;
2402     int UNUSED insn_referenced = abuf->written;
2403     cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2404   }
2405   {
2406     int referenced = 0;
2407     int UNUSED insn_referenced = abuf->written;
2408     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2409   }
2410   return cycles;
2411 #undef FLD
2412 }
2413
2414 static int
2415 model_crisv10_mulu_w (SIM_CPU *current_cpu, void *sem_arg)
2416 {
2417 #define FLD(f) abuf->fields.sfmt_muls_b.f
2418   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2419   const IDESC * UNUSED idesc = abuf->idesc;
2420   int cycles = 0;
2421   {
2422     int referenced = 0;
2423     int UNUSED insn_referenced = abuf->written;
2424     cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2425   }
2426   {
2427     int referenced = 0;
2428     int UNUSED insn_referenced = abuf->written;
2429     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2430   }
2431   return cycles;
2432 #undef FLD
2433 }
2434
2435 static int
2436 model_crisv10_mulu_d (SIM_CPU *current_cpu, void *sem_arg)
2437 {
2438 #define FLD(f) abuf->fields.sfmt_muls_b.f
2439   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2440   const IDESC * UNUSED idesc = abuf->idesc;
2441   int cycles = 0;
2442   {
2443     int referenced = 0;
2444     int UNUSED insn_referenced = abuf->written;
2445     cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2446   }
2447   {
2448     int referenced = 0;
2449     int UNUSED insn_referenced = abuf->written;
2450     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2451   }
2452   return cycles;
2453 #undef FLD
2454 }
2455
2456 static int
2457 model_crisv10_mstep (SIM_CPU *current_cpu, void *sem_arg)
2458 {
2459 #define FLD(f) abuf->fields.sfmt_muls_b.f
2460   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2461   const IDESC * UNUSED idesc = abuf->idesc;
2462   int cycles = 0;
2463   {
2464     int referenced = 0;
2465     int UNUSED insn_referenced = abuf->written;
2466     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2467   }
2468   return cycles;
2469 #undef FLD
2470 }
2471
2472 static int
2473 model_crisv10_dstep (SIM_CPU *current_cpu, void *sem_arg)
2474 {
2475 #define FLD(f) abuf->fields.sfmt_muls_b.f
2476   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2477   const IDESC * UNUSED idesc = abuf->idesc;
2478   int cycles = 0;
2479   {
2480     int referenced = 0;
2481     int UNUSED insn_referenced = abuf->written;
2482     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2483   }
2484   return cycles;
2485 #undef FLD
2486 }
2487
2488 static int
2489 model_crisv10_abs (SIM_CPU *current_cpu, void *sem_arg)
2490 {
2491 #define FLD(f) abuf->fields.sfmt_muls_b.f
2492   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2493   const IDESC * UNUSED idesc = abuf->idesc;
2494   int cycles = 0;
2495   {
2496     int referenced = 0;
2497     int UNUSED insn_referenced = abuf->written;
2498     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2499   }
2500   return cycles;
2501 #undef FLD
2502 }
2503
2504 static int
2505 model_crisv10_and_b_r (SIM_CPU *current_cpu, void *sem_arg)
2506 {
2507 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2508   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2509   const IDESC * UNUSED idesc = abuf->idesc;
2510   int cycles = 0;
2511   {
2512     int referenced = 0;
2513     int UNUSED insn_referenced = abuf->written;
2514     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2515   }
2516   return cycles;
2517 #undef FLD
2518 }
2519
2520 static int
2521 model_crisv10_and_w_r (SIM_CPU *current_cpu, void *sem_arg)
2522 {
2523 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2524   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2525   const IDESC * UNUSED idesc = abuf->idesc;
2526   int cycles = 0;
2527   {
2528     int referenced = 0;
2529     int UNUSED insn_referenced = abuf->written;
2530     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2531   }
2532   return cycles;
2533 #undef FLD
2534 }
2535
2536 static int
2537 model_crisv10_and_d_r (SIM_CPU *current_cpu, void *sem_arg)
2538 {
2539 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2540   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2541   const IDESC * UNUSED idesc = abuf->idesc;
2542   int cycles = 0;
2543   {
2544     int referenced = 0;
2545     int UNUSED insn_referenced = abuf->written;
2546     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2547   }
2548   return cycles;
2549 #undef FLD
2550 }
2551
2552 static int
2553 model_crisv10_and_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2554 {
2555 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2556   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2557   const IDESC * UNUSED idesc = abuf->idesc;
2558   int cycles = 0;
2559   {
2560     int referenced = 0;
2561     int UNUSED insn_referenced = abuf->written;
2562     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2563   }
2564   {
2565     int referenced = 0;
2566     int UNUSED insn_referenced = abuf->written;
2567     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2568   }
2569   return cycles;
2570 #undef FLD
2571 }
2572
2573 static int
2574 model_crisv10_and_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2575 {
2576 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2577   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2578   const IDESC * UNUSED idesc = abuf->idesc;
2579   int cycles = 0;
2580   {
2581     int referenced = 0;
2582     int UNUSED insn_referenced = abuf->written;
2583     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2584   }
2585   {
2586     int referenced = 0;
2587     int UNUSED insn_referenced = abuf->written;
2588     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2589   }
2590   return cycles;
2591 #undef FLD
2592 }
2593
2594 static int
2595 model_crisv10_and_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
2596 {
2597 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2598   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2599   const IDESC * UNUSED idesc = abuf->idesc;
2600   int cycles = 0;
2601   {
2602     int referenced = 0;
2603     int UNUSED insn_referenced = abuf->written;
2604     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2605   }
2606   {
2607     int referenced = 0;
2608     int UNUSED insn_referenced = abuf->written;
2609     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2610   }
2611   return cycles;
2612 #undef FLD
2613 }
2614
2615 static int
2616 model_crisv10_andcbr (SIM_CPU *current_cpu, void *sem_arg)
2617 {
2618 #define FLD(f) abuf->fields.sfmt_addcbr.f
2619   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2620   const IDESC * UNUSED idesc = abuf->idesc;
2621   int cycles = 0;
2622   {
2623     int referenced = 0;
2624     int UNUSED insn_referenced = abuf->written;
2625     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2626   }
2627   {
2628     int referenced = 0;
2629     int UNUSED insn_referenced = abuf->written;
2630     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2631   }
2632   return cycles;
2633 #undef FLD
2634 }
2635
2636 static int
2637 model_crisv10_andcwr (SIM_CPU *current_cpu, void *sem_arg)
2638 {
2639 #define FLD(f) abuf->fields.sfmt_addcwr.f
2640   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2641   const IDESC * UNUSED idesc = abuf->idesc;
2642   int cycles = 0;
2643   {
2644     int referenced = 0;
2645     int UNUSED insn_referenced = abuf->written;
2646     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2647   }
2648   {
2649     int referenced = 0;
2650     int UNUSED insn_referenced = abuf->written;
2651     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2652   }
2653   return cycles;
2654 #undef FLD
2655 }
2656
2657 static int
2658 model_crisv10_andcdr (SIM_CPU *current_cpu, void *sem_arg)
2659 {
2660 #define FLD(f) abuf->fields.sfmt_addcdr.f
2661   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2662   const IDESC * UNUSED idesc = abuf->idesc;
2663   int cycles = 0;
2664   {
2665     int referenced = 0;
2666     int UNUSED insn_referenced = abuf->written;
2667     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
2668   }
2669   {
2670     int referenced = 0;
2671     int UNUSED insn_referenced = abuf->written;
2672     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2673   }
2674   return cycles;
2675 #undef FLD
2676 }
2677
2678 static int
2679 model_crisv10_andq (SIM_CPU *current_cpu, void *sem_arg)
2680 {
2681 #define FLD(f) abuf->fields.sfmt_andq.f
2682   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2683   const IDESC * UNUSED idesc = abuf->idesc;
2684   int cycles = 0;
2685   {
2686     int referenced = 0;
2687     int UNUSED insn_referenced = abuf->written;
2688     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2689   }
2690   return cycles;
2691 #undef FLD
2692 }
2693
2694 static int
2695 model_crisv10_orr_b_r (SIM_CPU *current_cpu, void *sem_arg)
2696 {
2697 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2698   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2699   const IDESC * UNUSED idesc = abuf->idesc;
2700   int cycles = 0;
2701   {
2702     int referenced = 0;
2703     int UNUSED insn_referenced = abuf->written;
2704     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2705   }
2706   return cycles;
2707 #undef FLD
2708 }
2709
2710 static int
2711 model_crisv10_orr_w_r (SIM_CPU *current_cpu, void *sem_arg)
2712 {
2713 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2714   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2715   const IDESC * UNUSED idesc = abuf->idesc;
2716   int cycles = 0;
2717   {
2718     int referenced = 0;
2719     int UNUSED insn_referenced = abuf->written;
2720     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2721   }
2722   return cycles;
2723 #undef FLD
2724 }
2725
2726 static int
2727 model_crisv10_orr_d_r (SIM_CPU *current_cpu, void *sem_arg)
2728 {
2729 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2730   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2731   const IDESC * UNUSED idesc = abuf->idesc;
2732   int cycles = 0;
2733   {
2734     int referenced = 0;
2735     int UNUSED insn_referenced = abuf->written;
2736     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2737   }
2738   return cycles;
2739 #undef FLD
2740 }
2741
2742 static int
2743 model_crisv10_or_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2744 {
2745 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2746   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2747   const IDESC * UNUSED idesc = abuf->idesc;
2748   int cycles = 0;
2749   {
2750     int referenced = 0;
2751     int UNUSED insn_referenced = abuf->written;
2752     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2753   }
2754   {
2755     int referenced = 0;
2756     int UNUSED insn_referenced = abuf->written;
2757     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2758   }
2759   return cycles;
2760 #undef FLD
2761 }
2762
2763 static int
2764 model_crisv10_or_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2765 {
2766 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2767   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2768   const IDESC * UNUSED idesc = abuf->idesc;
2769   int cycles = 0;
2770   {
2771     int referenced = 0;
2772     int UNUSED insn_referenced = abuf->written;
2773     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2774   }
2775   {
2776     int referenced = 0;
2777     int UNUSED insn_referenced = abuf->written;
2778     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2779   }
2780   return cycles;
2781 #undef FLD
2782 }
2783
2784 static int
2785 model_crisv10_or_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
2786 {
2787 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2788   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2789   const IDESC * UNUSED idesc = abuf->idesc;
2790   int cycles = 0;
2791   {
2792     int referenced = 0;
2793     int UNUSED insn_referenced = abuf->written;
2794     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2795   }
2796   {
2797     int referenced = 0;
2798     int UNUSED insn_referenced = abuf->written;
2799     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2800   }
2801   return cycles;
2802 #undef FLD
2803 }
2804
2805 static int
2806 model_crisv10_orcbr (SIM_CPU *current_cpu, void *sem_arg)
2807 {
2808 #define FLD(f) abuf->fields.sfmt_addcbr.f
2809   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2810   const IDESC * UNUSED idesc = abuf->idesc;
2811   int cycles = 0;
2812   {
2813     int referenced = 0;
2814     int UNUSED insn_referenced = abuf->written;
2815     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2816   }
2817   {
2818     int referenced = 0;
2819     int UNUSED insn_referenced = abuf->written;
2820     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2821   }
2822   return cycles;
2823 #undef FLD
2824 }
2825
2826 static int
2827 model_crisv10_orcwr (SIM_CPU *current_cpu, void *sem_arg)
2828 {
2829 #define FLD(f) abuf->fields.sfmt_addcwr.f
2830   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2831   const IDESC * UNUSED idesc = abuf->idesc;
2832   int cycles = 0;
2833   {
2834     int referenced = 0;
2835     int UNUSED insn_referenced = abuf->written;
2836     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2837   }
2838   {
2839     int referenced = 0;
2840     int UNUSED insn_referenced = abuf->written;
2841     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2842   }
2843   return cycles;
2844 #undef FLD
2845 }
2846
2847 static int
2848 model_crisv10_orcdr (SIM_CPU *current_cpu, void *sem_arg)
2849 {
2850 #define FLD(f) abuf->fields.sfmt_addcdr.f
2851   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2852   const IDESC * UNUSED idesc = abuf->idesc;
2853   int cycles = 0;
2854   {
2855     int referenced = 0;
2856     int UNUSED insn_referenced = abuf->written;
2857     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
2858   }
2859   {
2860     int referenced = 0;
2861     int UNUSED insn_referenced = abuf->written;
2862     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2863   }
2864   return cycles;
2865 #undef FLD
2866 }
2867
2868 static int
2869 model_crisv10_orq (SIM_CPU *current_cpu, void *sem_arg)
2870 {
2871 #define FLD(f) abuf->fields.sfmt_andq.f
2872   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2873   const IDESC * UNUSED idesc = abuf->idesc;
2874   int cycles = 0;
2875   {
2876     int referenced = 0;
2877     int UNUSED insn_referenced = abuf->written;
2878     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2879   }
2880   return cycles;
2881 #undef FLD
2882 }
2883
2884 static int
2885 model_crisv10_xor (SIM_CPU *current_cpu, void *sem_arg)
2886 {
2887 #define FLD(f) abuf->fields.sfmt_muls_b.f
2888   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2889   const IDESC * UNUSED idesc = abuf->idesc;
2890   int cycles = 0;
2891   {
2892     int referenced = 0;
2893     int UNUSED insn_referenced = abuf->written;
2894     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2895   }
2896   return cycles;
2897 #undef FLD
2898 }
2899
2900 static int
2901 model_crisv10_swap (SIM_CPU *current_cpu, void *sem_arg)
2902 {
2903 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
2904   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2905   const IDESC * UNUSED idesc = abuf->idesc;
2906   int cycles = 0;
2907   {
2908     int referenced = 0;
2909     int UNUSED insn_referenced = abuf->written;
2910     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2911   }
2912   return cycles;
2913 #undef FLD
2914 }
2915
2916 static int
2917 model_crisv10_asrr_b_r (SIM_CPU *current_cpu, void *sem_arg)
2918 {
2919 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2920   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2921   const IDESC * UNUSED idesc = abuf->idesc;
2922   int cycles = 0;
2923   {
2924     int referenced = 0;
2925     int UNUSED insn_referenced = abuf->written;
2926     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2927   }
2928   return cycles;
2929 #undef FLD
2930 }
2931
2932 static int
2933 model_crisv10_asrr_w_r (SIM_CPU *current_cpu, void *sem_arg)
2934 {
2935 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2936   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2937   const IDESC * UNUSED idesc = abuf->idesc;
2938   int cycles = 0;
2939   {
2940     int referenced = 0;
2941     int UNUSED insn_referenced = abuf->written;
2942     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2943   }
2944   return cycles;
2945 #undef FLD
2946 }
2947
2948 static int
2949 model_crisv10_asrr_d_r (SIM_CPU *current_cpu, void *sem_arg)
2950 {
2951 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2952   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2953   const IDESC * UNUSED idesc = abuf->idesc;
2954   int cycles = 0;
2955   {
2956     int referenced = 0;
2957     int UNUSED insn_referenced = abuf->written;
2958     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2959   }
2960   return cycles;
2961 #undef FLD
2962 }
2963
2964 static int
2965 model_crisv10_asrq (SIM_CPU *current_cpu, void *sem_arg)
2966 {
2967 #define FLD(f) abuf->fields.sfmt_asrq.f
2968   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2969   const IDESC * UNUSED idesc = abuf->idesc;
2970   int cycles = 0;
2971   {
2972     int referenced = 0;
2973     int UNUSED insn_referenced = abuf->written;
2974     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2975   }
2976   return cycles;
2977 #undef FLD
2978 }
2979
2980 static int
2981 model_crisv10_lsrr_b_r (SIM_CPU *current_cpu, void *sem_arg)
2982 {
2983 #define FLD(f) abuf->fields.sfmt_add_b_r.f
2984   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2985   const IDESC * UNUSED idesc = abuf->idesc;
2986   int cycles = 0;
2987   {
2988     int referenced = 0;
2989     int UNUSED insn_referenced = abuf->written;
2990     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2991   }
2992   return cycles;
2993 #undef FLD
2994 }
2995
2996 static int
2997 model_crisv10_lsrr_w_r (SIM_CPU *current_cpu, void *sem_arg)
2998 {
2999 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3000   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3001   const IDESC * UNUSED idesc = abuf->idesc;
3002   int cycles = 0;
3003   {
3004     int referenced = 0;
3005     int UNUSED insn_referenced = abuf->written;
3006     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3007   }
3008   return cycles;
3009 #undef FLD
3010 }
3011
3012 static int
3013 model_crisv10_lsrr_d_r (SIM_CPU *current_cpu, void *sem_arg)
3014 {
3015 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3016   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3017   const IDESC * UNUSED idesc = abuf->idesc;
3018   int cycles = 0;
3019   {
3020     int referenced = 0;
3021     int UNUSED insn_referenced = abuf->written;
3022     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3023   }
3024   return cycles;
3025 #undef FLD
3026 }
3027
3028 static int
3029 model_crisv10_lsrq (SIM_CPU *current_cpu, void *sem_arg)
3030 {
3031 #define FLD(f) abuf->fields.sfmt_asrq.f
3032   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3033   const IDESC * UNUSED idesc = abuf->idesc;
3034   int cycles = 0;
3035   {
3036     int referenced = 0;
3037     int UNUSED insn_referenced = abuf->written;
3038     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3039   }
3040   return cycles;
3041 #undef FLD
3042 }
3043
3044 static int
3045 model_crisv10_lslr_b_r (SIM_CPU *current_cpu, void *sem_arg)
3046 {
3047 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3048   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3049   const IDESC * UNUSED idesc = abuf->idesc;
3050   int cycles = 0;
3051   {
3052     int referenced = 0;
3053     int UNUSED insn_referenced = abuf->written;
3054     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3055   }
3056   return cycles;
3057 #undef FLD
3058 }
3059
3060 static int
3061 model_crisv10_lslr_w_r (SIM_CPU *current_cpu, void *sem_arg)
3062 {
3063 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3064   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3065   const IDESC * UNUSED idesc = abuf->idesc;
3066   int cycles = 0;
3067   {
3068     int referenced = 0;
3069     int UNUSED insn_referenced = abuf->written;
3070     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3071   }
3072   return cycles;
3073 #undef FLD
3074 }
3075
3076 static int
3077 model_crisv10_lslr_d_r (SIM_CPU *current_cpu, void *sem_arg)
3078 {
3079 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3080   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3081   const IDESC * UNUSED idesc = abuf->idesc;
3082   int cycles = 0;
3083   {
3084     int referenced = 0;
3085     int UNUSED insn_referenced = abuf->written;
3086     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3087   }
3088   return cycles;
3089 #undef FLD
3090 }
3091
3092 static int
3093 model_crisv10_lslq (SIM_CPU *current_cpu, void *sem_arg)
3094 {
3095 #define FLD(f) abuf->fields.sfmt_asrq.f
3096   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3097   const IDESC * UNUSED idesc = abuf->idesc;
3098   int cycles = 0;
3099   {
3100     int referenced = 0;
3101     int UNUSED insn_referenced = abuf->written;
3102     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3103   }
3104   return cycles;
3105 #undef FLD
3106 }
3107
3108 static int
3109 model_crisv10_btst (SIM_CPU *current_cpu, void *sem_arg)
3110 {
3111 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3112   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3113   const IDESC * UNUSED idesc = abuf->idesc;
3114   int cycles = 0;
3115   {
3116     int referenced = 0;
3117     int UNUSED insn_referenced = abuf->written;
3118     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3119   }
3120   return cycles;
3121 #undef FLD
3122 }
3123
3124 static int
3125 model_crisv10_btstq (SIM_CPU *current_cpu, void *sem_arg)
3126 {
3127 #define FLD(f) abuf->fields.sfmt_asrq.f
3128   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3129   const IDESC * UNUSED idesc = abuf->idesc;
3130   int cycles = 0;
3131   {
3132     int referenced = 0;
3133     int UNUSED insn_referenced = abuf->written;
3134     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3135   }
3136   return cycles;
3137 #undef FLD
3138 }
3139
3140 static int
3141 model_crisv10_setf (SIM_CPU *current_cpu, void *sem_arg)
3142 {
3143 #define FLD(f) abuf->fields.sfmt_setf.f
3144   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3145   const IDESC * UNUSED idesc = abuf->idesc;
3146   int cycles = 0;
3147   {
3148     int referenced = 0;
3149     int UNUSED insn_referenced = abuf->written;
3150     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3151   }
3152   return cycles;
3153 #undef FLD
3154 }
3155
3156 static int
3157 model_crisv10_clearf (SIM_CPU *current_cpu, void *sem_arg)
3158 {
3159 #define FLD(f) abuf->fields.sfmt_setf.f
3160   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3161   const IDESC * UNUSED idesc = abuf->idesc;
3162   int cycles = 0;
3163   {
3164     int referenced = 0;
3165     int UNUSED insn_referenced = abuf->written;
3166     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3167   }
3168   return cycles;
3169 #undef FLD
3170 }
3171
3172 static int
3173 model_crisv10_bcc_b (SIM_CPU *current_cpu, void *sem_arg)
3174 {
3175 #define FLD(f) abuf->fields.sfmt_bcc_b.f
3176   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3177   const IDESC * UNUSED idesc = abuf->idesc;
3178   int cycles = 0;
3179   {
3180     int referenced = 0;
3181     int UNUSED insn_referenced = abuf->written;
3182     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3183   }
3184   return cycles;
3185 #undef FLD
3186 }
3187
3188 static int
3189 model_crisv10_ba_b (SIM_CPU *current_cpu, void *sem_arg)
3190 {
3191 #define FLD(f) abuf->fields.sfmt_bcc_b.f
3192   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3193   const IDESC * UNUSED idesc = abuf->idesc;
3194   int cycles = 0;
3195   {
3196     int referenced = 0;
3197     int UNUSED insn_referenced = abuf->written;
3198     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3199   }
3200   return cycles;
3201 #undef FLD
3202 }
3203
3204 static int
3205 model_crisv10_bcc_w (SIM_CPU *current_cpu, void *sem_arg)
3206 {
3207 #define FLD(f) abuf->fields.sfmt_bcc_w.f
3208   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3209   const IDESC * UNUSED idesc = abuf->idesc;
3210   int cycles = 0;
3211   {
3212     int referenced = 0;
3213     int UNUSED insn_referenced = abuf->written;
3214     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3215   }
3216   {
3217     int referenced = 0;
3218     int UNUSED insn_referenced = abuf->written;
3219     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3220   }
3221   return cycles;
3222 #undef FLD
3223 }
3224
3225 static int
3226 model_crisv10_ba_w (SIM_CPU *current_cpu, void *sem_arg)
3227 {
3228 #define FLD(f) abuf->fields.sfmt_bcc_w.f
3229   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3230   const IDESC * UNUSED idesc = abuf->idesc;
3231   int cycles = 0;
3232   {
3233     int referenced = 0;
3234     int UNUSED insn_referenced = abuf->written;
3235     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3236   }
3237   {
3238     int referenced = 0;
3239     int UNUSED insn_referenced = abuf->written;
3240     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3241   }
3242   return cycles;
3243 #undef FLD
3244 }
3245
3246 static int
3247 model_crisv10_jump_r (SIM_CPU *current_cpu, void *sem_arg)
3248 {
3249 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3250   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3251   const IDESC * UNUSED idesc = abuf->idesc;
3252   int cycles = 0;
3253   {
3254     int referenced = 0;
3255     int UNUSED insn_referenced = abuf->written;
3256     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3257   }
3258   return cycles;
3259 #undef FLD
3260 }
3261
3262 static int
3263 model_crisv10_jump_m (SIM_CPU *current_cpu, void *sem_arg)
3264 {
3265 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3266   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3267   const IDESC * UNUSED idesc = abuf->idesc;
3268   int cycles = 0;
3269   {
3270     int referenced = 0;
3271     int UNUSED insn_referenced = abuf->written;
3272     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3273   }
3274   {
3275     int referenced = 0;
3276     int UNUSED insn_referenced = abuf->written;
3277     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3278   }
3279   return cycles;
3280 #undef FLD
3281 }
3282
3283 static int
3284 model_crisv10_jump_c (SIM_CPU *current_cpu, void *sem_arg)
3285 {
3286 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3287   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3288   const IDESC * UNUSED idesc = abuf->idesc;
3289   int cycles = 0;
3290   {
3291     int referenced = 0;
3292     int UNUSED insn_referenced = abuf->written;
3293     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3294   }
3295   {
3296     int referenced = 0;
3297     int UNUSED insn_referenced = abuf->written;
3298     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3299   }
3300   return cycles;
3301 #undef FLD
3302 }
3303
3304 static int
3305 model_crisv10_break (SIM_CPU *current_cpu, void *sem_arg)
3306 {
3307 #define FLD(f) abuf->fields.sfmt_break.f
3308   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3309   const IDESC * UNUSED idesc = abuf->idesc;
3310   int cycles = 0;
3311   {
3312     int referenced = 0;
3313     int UNUSED insn_referenced = abuf->written;
3314     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3315   }
3316   return cycles;
3317 #undef FLD
3318 }
3319
3320 static int
3321 model_crisv10_bound_r_b_r (SIM_CPU *current_cpu, void *sem_arg)
3322 {
3323 #define FLD(f) abuf->fields.sfmt_muls_b.f
3324   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3325   const IDESC * UNUSED idesc = abuf->idesc;
3326   int cycles = 0;
3327   {
3328     int referenced = 0;
3329     int UNUSED insn_referenced = abuf->written;
3330     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3331   }
3332   return cycles;
3333 #undef FLD
3334 }
3335
3336 static int
3337 model_crisv10_bound_r_w_r (SIM_CPU *current_cpu, void *sem_arg)
3338 {
3339 #define FLD(f) abuf->fields.sfmt_muls_b.f
3340   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3341   const IDESC * UNUSED idesc = abuf->idesc;
3342   int cycles = 0;
3343   {
3344     int referenced = 0;
3345     int UNUSED insn_referenced = abuf->written;
3346     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3347   }
3348   return cycles;
3349 #undef FLD
3350 }
3351
3352 static int
3353 model_crisv10_bound_r_d_r (SIM_CPU *current_cpu, void *sem_arg)
3354 {
3355 #define FLD(f) abuf->fields.sfmt_muls_b.f
3356   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3357   const IDESC * UNUSED idesc = abuf->idesc;
3358   int cycles = 0;
3359   {
3360     int referenced = 0;
3361     int UNUSED insn_referenced = abuf->written;
3362     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3363   }
3364   return cycles;
3365 #undef FLD
3366 }
3367
3368 static int
3369 model_crisv10_bound_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
3370 {
3371 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3372   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3373   const IDESC * UNUSED idesc = abuf->idesc;
3374   int cycles = 0;
3375   {
3376     int referenced = 0;
3377     int UNUSED insn_referenced = abuf->written;
3378     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3379   }
3380   {
3381     int referenced = 0;
3382     int UNUSED insn_referenced = abuf->written;
3383     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3384   }
3385   return cycles;
3386 #undef FLD
3387 }
3388
3389 static int
3390 model_crisv10_bound_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
3391 {
3392 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3393   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3394   const IDESC * UNUSED idesc = abuf->idesc;
3395   int cycles = 0;
3396   {
3397     int referenced = 0;
3398     int UNUSED insn_referenced = abuf->written;
3399     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3400   }
3401   {
3402     int referenced = 0;
3403     int UNUSED insn_referenced = abuf->written;
3404     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3405   }
3406   return cycles;
3407 #undef FLD
3408 }
3409
3410 static int
3411 model_crisv10_bound_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
3412 {
3413 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3414   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3415   const IDESC * UNUSED idesc = abuf->idesc;
3416   int cycles = 0;
3417   {
3418     int referenced = 0;
3419     int UNUSED insn_referenced = abuf->written;
3420     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3421   }
3422   {
3423     int referenced = 0;
3424     int UNUSED insn_referenced = abuf->written;
3425     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3426   }
3427   return cycles;
3428 #undef FLD
3429 }
3430
3431 static int
3432 model_crisv10_bound_cb (SIM_CPU *current_cpu, void *sem_arg)
3433 {
3434 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3435   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3436   const IDESC * UNUSED idesc = abuf->idesc;
3437   int cycles = 0;
3438   {
3439     int referenced = 0;
3440     int UNUSED insn_referenced = abuf->written;
3441     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3442   }
3443   {
3444     int referenced = 0;
3445     int UNUSED insn_referenced = abuf->written;
3446     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3447   }
3448   return cycles;
3449 #undef FLD
3450 }
3451
3452 static int
3453 model_crisv10_bound_cw (SIM_CPU *current_cpu, void *sem_arg)
3454 {
3455 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3456   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3457   const IDESC * UNUSED idesc = abuf->idesc;
3458   int cycles = 0;
3459   {
3460     int referenced = 0;
3461     int UNUSED insn_referenced = abuf->written;
3462     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3463   }
3464   {
3465     int referenced = 0;
3466     int UNUSED insn_referenced = abuf->written;
3467     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3468   }
3469   return cycles;
3470 #undef FLD
3471 }
3472
3473 static int
3474 model_crisv10_bound_cd (SIM_CPU *current_cpu, void *sem_arg)
3475 {
3476 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3477   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3478   const IDESC * UNUSED idesc = abuf->idesc;
3479   int cycles = 0;
3480   {
3481     int referenced = 0;
3482     int UNUSED insn_referenced = abuf->written;
3483     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3484   }
3485   {
3486     int referenced = 0;
3487     int UNUSED insn_referenced = abuf->written;
3488     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3489   }
3490   return cycles;
3491 #undef FLD
3492 }
3493
3494 static int
3495 model_crisv10_scc (SIM_CPU *current_cpu, void *sem_arg)
3496 {
3497 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
3498   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3499   const IDESC * UNUSED idesc = abuf->idesc;
3500   int cycles = 0;
3501   {
3502     int referenced = 0;
3503     int UNUSED insn_referenced = abuf->written;
3504     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3505   }
3506   return cycles;
3507 #undef FLD
3508 }
3509
3510 static int
3511 model_crisv10_lz (SIM_CPU *current_cpu, void *sem_arg)
3512 {
3513 #define FLD(f) abuf->fields.sfmt_muls_b.f
3514   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3515   const IDESC * UNUSED idesc = abuf->idesc;
3516   int cycles = 0;
3517   {
3518     int referenced = 0;
3519     int UNUSED insn_referenced = abuf->written;
3520     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3521   }
3522   return cycles;
3523 #undef FLD
3524 }
3525
3526 static int
3527 model_crisv10_addoq (SIM_CPU *current_cpu, void *sem_arg)
3528 {
3529 #define FLD(f) abuf->fields.sfmt_addoq.f
3530   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3531   const IDESC * UNUSED idesc = abuf->idesc;
3532   int cycles = 0;
3533   {
3534     int referenced = 0;
3535     int UNUSED insn_referenced = abuf->written;
3536     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3537   }
3538   return cycles;
3539 #undef FLD
3540 }
3541
3542 static int
3543 model_crisv10_bdapqpc (SIM_CPU *current_cpu, void *sem_arg)
3544 {
3545 #define FLD(f) abuf->fields.sfmt_addoq.f
3546   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3547   const IDESC * UNUSED idesc = abuf->idesc;
3548   int cycles = 0;
3549   {
3550     int referenced = 0;
3551     int UNUSED insn_referenced = abuf->written;
3552     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3553   }
3554   return cycles;
3555 #undef FLD
3556 }
3557
3558 static int
3559 model_crisv10_bdap_32_pc (SIM_CPU *current_cpu, void *sem_arg)
3560 {
3561 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3562   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3563   const IDESC * UNUSED idesc = abuf->idesc;
3564   int cycles = 0;
3565   {
3566     int referenced = 0;
3567     int UNUSED insn_referenced = abuf->written;
3568     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3569   }
3570   {
3571     int referenced = 0;
3572     int UNUSED insn_referenced = abuf->written;
3573     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3574   }
3575   return cycles;
3576 #undef FLD
3577 }
3578
3579 static int
3580 model_crisv10_move_m_pcplus_p0 (SIM_CPU *current_cpu, void *sem_arg)
3581 {
3582 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
3583   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3584   const IDESC * UNUSED idesc = abuf->idesc;
3585   int cycles = 0;
3586   {
3587     int referenced = 0;
3588     int UNUSED insn_referenced = abuf->written;
3589     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3590   }
3591   {
3592     int referenced = 0;
3593     int UNUSED insn_referenced = abuf->written;
3594     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3595   }
3596   return cycles;
3597 #undef FLD
3598 }
3599
3600 static int
3601 model_crisv10_move_m_spplus_p8 (SIM_CPU *current_cpu, void *sem_arg)
3602 {
3603 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
3604   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3605   const IDESC * UNUSED idesc = abuf->idesc;
3606   int cycles = 0;
3607   {
3608     int referenced = 0;
3609     int UNUSED insn_referenced = abuf->written;
3610     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3611   }
3612   {
3613     int referenced = 0;
3614     int UNUSED insn_referenced = abuf->written;
3615     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3616   }
3617   return cycles;
3618 #undef FLD
3619 }
3620
3621 static int
3622 model_crisv10_addo_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
3623 {
3624 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3625   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3626   const IDESC * UNUSED idesc = abuf->idesc;
3627   int cycles = 0;
3628   {
3629     int referenced = 0;
3630     int UNUSED insn_referenced = abuf->written;
3631     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3632   }
3633   {
3634     int referenced = 0;
3635     int UNUSED insn_referenced = abuf->written;
3636     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3637   }
3638   return cycles;
3639 #undef FLD
3640 }
3641
3642 static int
3643 model_crisv10_addo_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
3644 {
3645 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3646   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3647   const IDESC * UNUSED idesc = abuf->idesc;
3648   int cycles = 0;
3649   {
3650     int referenced = 0;
3651     int UNUSED insn_referenced = abuf->written;
3652     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3653   }
3654   {
3655     int referenced = 0;
3656     int UNUSED insn_referenced = abuf->written;
3657     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3658   }
3659   return cycles;
3660 #undef FLD
3661 }
3662
3663 static int
3664 model_crisv10_addo_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
3665 {
3666 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3667   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3668   const IDESC * UNUSED idesc = abuf->idesc;
3669   int cycles = 0;
3670   {
3671     int referenced = 0;
3672     int UNUSED insn_referenced = abuf->written;
3673     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3674   }
3675   {
3676     int referenced = 0;
3677     int UNUSED insn_referenced = abuf->written;
3678     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3679   }
3680   return cycles;
3681 #undef FLD
3682 }
3683
3684 static int
3685 model_crisv10_addo_cb (SIM_CPU *current_cpu, void *sem_arg)
3686 {
3687 #define FLD(f) abuf->fields.sfmt_bound_cb.f
3688   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3689   const IDESC * UNUSED idesc = abuf->idesc;
3690   int cycles = 0;
3691   {
3692     int referenced = 0;
3693     int UNUSED insn_referenced = abuf->written;
3694     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3695   }
3696   {
3697     int referenced = 0;
3698     int UNUSED insn_referenced = abuf->written;
3699     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3700   }
3701   return cycles;
3702 #undef FLD
3703 }
3704
3705 static int
3706 model_crisv10_addo_cw (SIM_CPU *current_cpu, void *sem_arg)
3707 {
3708 #define FLD(f) abuf->fields.sfmt_bound_cw.f
3709   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3710   const IDESC * UNUSED idesc = abuf->idesc;
3711   int cycles = 0;
3712   {
3713     int referenced = 0;
3714     int UNUSED insn_referenced = abuf->written;
3715     cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3716   }
3717   {
3718     int referenced = 0;
3719     int UNUSED insn_referenced = abuf->written;
3720     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3721   }
3722   return cycles;
3723 #undef FLD
3724 }
3725
3726 static int
3727 model_crisv10_addo_cd (SIM_CPU *current_cpu, void *sem_arg)
3728 {
3729 #define FLD(f) abuf->fields.sfmt_bound_cd.f
3730   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3731   const IDESC * UNUSED idesc = abuf->idesc;
3732   int cycles = 0;
3733   {
3734     int referenced = 0;
3735     int UNUSED insn_referenced = abuf->written;
3736     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3737   }
3738   {
3739     int referenced = 0;
3740     int UNUSED insn_referenced = abuf->written;
3741     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3742   }
3743   return cycles;
3744 #undef FLD
3745 }
3746
3747 static int
3748 model_crisv10_dip_m (SIM_CPU *current_cpu, void *sem_arg)
3749 {
3750 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
3751   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3752   const IDESC * UNUSED idesc = abuf->idesc;
3753   int cycles = 0;
3754   {
3755     int referenced = 0;
3756     int UNUSED insn_referenced = abuf->written;
3757     cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3758   }
3759   {
3760     int referenced = 0;
3761     int UNUSED insn_referenced = abuf->written;
3762     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3763   }
3764   return cycles;
3765 #undef FLD
3766 }
3767
3768 static int
3769 model_crisv10_dip_c (SIM_CPU *current_cpu, void *sem_arg)
3770 {
3771 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3772   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3773   const IDESC * UNUSED idesc = abuf->idesc;
3774   int cycles = 0;
3775   {
3776     int referenced = 0;
3777     int UNUSED insn_referenced = abuf->written;
3778     cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3779   }
3780   {
3781     int referenced = 0;
3782     int UNUSED insn_referenced = abuf->written;
3783     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3784   }
3785   return cycles;
3786 #undef FLD
3787 }
3788
3789 static int
3790 model_crisv10_addi_acr_b_r (SIM_CPU *current_cpu, void *sem_arg)
3791 {
3792 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3793   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3794   const IDESC * UNUSED idesc = abuf->idesc;
3795   int cycles = 0;
3796   {
3797     int referenced = 0;
3798     int UNUSED insn_referenced = abuf->written;
3799     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3800   }
3801   return cycles;
3802 #undef FLD
3803 }
3804
3805 static int
3806 model_crisv10_addi_acr_w_r (SIM_CPU *current_cpu, void *sem_arg)
3807 {
3808 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3809   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3810   const IDESC * UNUSED idesc = abuf->idesc;
3811   int cycles = 0;
3812   {
3813     int referenced = 0;
3814     int UNUSED insn_referenced = abuf->written;
3815     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3816   }
3817   return cycles;
3818 #undef FLD
3819 }
3820
3821 static int
3822 model_crisv10_addi_acr_d_r (SIM_CPU *current_cpu, void *sem_arg)
3823 {
3824 #define FLD(f) abuf->fields.sfmt_add_b_r.f
3825   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3826   const IDESC * UNUSED idesc = abuf->idesc;
3827   int cycles = 0;
3828   {
3829     int referenced = 0;
3830     int UNUSED insn_referenced = abuf->written;
3831     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3832   }
3833   return cycles;
3834 #undef FLD
3835 }
3836
3837 static int
3838 model_crisv10_biap_pc_b_r (SIM_CPU *current_cpu, void *sem_arg)
3839 {
3840 #define FLD(f) abuf->fields.sfmt_addoq.f
3841   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3842   const IDESC * UNUSED idesc = abuf->idesc;
3843   int cycles = 0;
3844   {
3845     int referenced = 0;
3846     int UNUSED insn_referenced = abuf->written;
3847     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3848   }
3849   return cycles;
3850 #undef FLD
3851 }
3852
3853 static int
3854 model_crisv10_biap_pc_w_r (SIM_CPU *current_cpu, void *sem_arg)
3855 {
3856 #define FLD(f) abuf->fields.sfmt_addoq.f
3857   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3858   const IDESC * UNUSED idesc = abuf->idesc;
3859   int cycles = 0;
3860   {
3861     int referenced = 0;
3862     int UNUSED insn_referenced = abuf->written;
3863     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3864   }
3865   return cycles;
3866 #undef FLD
3867 }
3868
3869 static int
3870 model_crisv10_biap_pc_d_r (SIM_CPU *current_cpu, void *sem_arg)
3871 {
3872 #define FLD(f) abuf->fields.sfmt_addoq.f
3873   const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3874   const IDESC * UNUSED idesc = abuf->idesc;
3875   int cycles = 0;
3876   {
3877     int referenced = 0;
3878     int UNUSED insn_referenced = abuf->written;
3879     cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3880   }
3881   return cycles;
3882 #undef FLD
3883 }
3884
3885 /* We assume UNIT_NONE == 0 because the tables don't always terminate
3886    entries with it.  */
3887
3888 /* Model timing data for `crisv10'.  */
3889
3890 static const INSN_TIMING crisv10_timing[] = {
3891   { CRISV10F_INSN_X_INVALID, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3892   { CRISV10F_INSN_X_AFTER, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3893   { CRISV10F_INSN_X_BEFORE, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3894   { CRISV10F_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3895   { CRISV10F_INSN_X_CHAIN, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3896   { CRISV10F_INSN_X_BEGIN, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3897   { CRISV10F_INSN_NOP, model_crisv10_nop, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3898   { CRISV10F_INSN_MOVE_B_R, model_crisv10_move_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3899   { CRISV10F_INSN_MOVE_W_R, model_crisv10_move_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3900   { CRISV10F_INSN_MOVE_D_R, model_crisv10_move_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3901   { CRISV10F_INSN_MOVEPCR, model_crisv10_movepcr, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3902   { CRISV10F_INSN_MOVEQ, model_crisv10_moveq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3903   { CRISV10F_INSN_MOVS_B_R, model_crisv10_movs_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3904   { CRISV10F_INSN_MOVS_W_R, model_crisv10_movs_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3905   { CRISV10F_INSN_MOVU_B_R, model_crisv10_movu_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3906   { CRISV10F_INSN_MOVU_W_R, model_crisv10_movu_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3907   { CRISV10F_INSN_MOVECBR, model_crisv10_movecbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3908   { CRISV10F_INSN_MOVECWR, model_crisv10_movecwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3909   { CRISV10F_INSN_MOVECDR, model_crisv10_movecdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3910   { CRISV10F_INSN_MOVSCBR, model_crisv10_movscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3911   { CRISV10F_INSN_MOVSCWR, model_crisv10_movscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3912   { CRISV10F_INSN_MOVUCBR, model_crisv10_movucbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3913   { CRISV10F_INSN_MOVUCWR, model_crisv10_movucwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3914   { CRISV10F_INSN_ADDQ, model_crisv10_addq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3915   { CRISV10F_INSN_SUBQ, model_crisv10_subq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3916   { CRISV10F_INSN_CMP_R_B_R, model_crisv10_cmp_r_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3917   { CRISV10F_INSN_CMP_R_W_R, model_crisv10_cmp_r_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3918   { CRISV10F_INSN_CMP_R_D_R, model_crisv10_cmp_r_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3919   { CRISV10F_INSN_CMP_M_B_M, model_crisv10_cmp_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3920   { CRISV10F_INSN_CMP_M_W_M, model_crisv10_cmp_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3921   { CRISV10F_INSN_CMP_M_D_M, model_crisv10_cmp_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3922   { CRISV10F_INSN_CMPCBR, model_crisv10_cmpcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3923   { CRISV10F_INSN_CMPCWR, model_crisv10_cmpcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3924   { CRISV10F_INSN_CMPCDR, model_crisv10_cmpcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3925   { CRISV10F_INSN_CMPQ, model_crisv10_cmpq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3926   { CRISV10F_INSN_CMPS_M_B_M, model_crisv10_cmps_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3927   { CRISV10F_INSN_CMPS_M_W_M, model_crisv10_cmps_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3928   { CRISV10F_INSN_CMPSCBR, model_crisv10_cmpscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3929   { CRISV10F_INSN_CMPSCWR, model_crisv10_cmpscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3930   { CRISV10F_INSN_CMPU_M_B_M, model_crisv10_cmpu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3931   { CRISV10F_INSN_CMPU_M_W_M, model_crisv10_cmpu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3932   { CRISV10F_INSN_CMPUCBR, model_crisv10_cmpucbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3933   { CRISV10F_INSN_CMPUCWR, model_crisv10_cmpucwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3934   { CRISV10F_INSN_MOVE_M_B_M, model_crisv10_move_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3935   { CRISV10F_INSN_MOVE_M_W_M, model_crisv10_move_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3936   { CRISV10F_INSN_MOVE_M_D_M, model_crisv10_move_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3937   { CRISV10F_INSN_MOVS_M_B_M, model_crisv10_movs_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3938   { CRISV10F_INSN_MOVS_M_W_M, model_crisv10_movs_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3939   { CRISV10F_INSN_MOVU_M_B_M, model_crisv10_movu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3940   { CRISV10F_INSN_MOVU_M_W_M, model_crisv10_movu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3941   { CRISV10F_INSN_MOVE_R_SPRV10, model_crisv10_move_r_sprv10, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3942   { CRISV10F_INSN_MOVE_SPR_RV10, model_crisv10_move_spr_rv10, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3943   { CRISV10F_INSN_RET_TYPE, model_crisv10_ret_type, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3944   { CRISV10F_INSN_MOVE_M_SPRV10, model_crisv10_move_m_sprv10, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3945   { CRISV10F_INSN_MOVE_C_SPRV10_P5, model_crisv10_move_c_sprv10_p5, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3946   { CRISV10F_INSN_MOVE_C_SPRV10_P9, model_crisv10_move_c_sprv10_p9, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3947   { CRISV10F_INSN_MOVE_C_SPRV10_P10, model_crisv10_move_c_sprv10_p10, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3948   { CRISV10F_INSN_MOVE_C_SPRV10_P11, model_crisv10_move_c_sprv10_p11, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3949   { CRISV10F_INSN_MOVE_C_SPRV10_P12, model_crisv10_move_c_sprv10_p12, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3950   { CRISV10F_INSN_MOVE_C_SPRV10_P13, model_crisv10_move_c_sprv10_p13, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3951   { CRISV10F_INSN_MOVE_C_SPRV10_P7, model_crisv10_move_c_sprv10_p7, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3952   { CRISV10F_INSN_MOVE_C_SPRV10_P14, model_crisv10_move_c_sprv10_p14, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3953   { CRISV10F_INSN_MOVE_C_SPRV10_P15, model_crisv10_move_c_sprv10_p15, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3954   { CRISV10F_INSN_MOVE_SPR_MV10, model_crisv10_move_spr_mv10, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3955   { CRISV10F_INSN_SBFS, model_crisv10_sbfs, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3956   { CRISV10F_INSN_MOVEM_R_M, model_crisv10_movem_r_m, { { (int) UNIT_CRISV10_U_MOVEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3957   { CRISV10F_INSN_MOVEM_M_R, model_crisv10_movem_m_r, { { (int) UNIT_CRISV10_U_MOVEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3958   { CRISV10F_INSN_MOVEM_M_PC, model_crisv10_movem_m_pc, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3959   { CRISV10F_INSN_ADD_B_R, model_crisv10_add_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3960   { CRISV10F_INSN_ADD_W_R, model_crisv10_add_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3961   { CRISV10F_INSN_ADD_D_R, model_crisv10_add_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3962   { CRISV10F_INSN_ADD_M_B_M, model_crisv10_add_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3963   { CRISV10F_INSN_ADD_M_W_M, model_crisv10_add_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3964   { CRISV10F_INSN_ADD_M_D_M, model_crisv10_add_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3965   { CRISV10F_INSN_ADDCBR, model_crisv10_addcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3966   { CRISV10F_INSN_ADDCWR, model_crisv10_addcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3967   { CRISV10F_INSN_ADDCDR, model_crisv10_addcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3968   { CRISV10F_INSN_ADDCPC, model_crisv10_addcpc, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_STALL, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3969   { CRISV10F_INSN_ADDS_B_R, model_crisv10_adds_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3970   { CRISV10F_INSN_ADDS_W_R, model_crisv10_adds_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3971   { CRISV10F_INSN_ADDS_M_B_M, model_crisv10_adds_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3972   { CRISV10F_INSN_ADDS_M_W_M, model_crisv10_adds_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3973   { CRISV10F_INSN_ADDSCBR, model_crisv10_addscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3974   { CRISV10F_INSN_ADDSCWR, model_crisv10_addscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3975   { CRISV10F_INSN_ADDSPCPC, model_crisv10_addspcpc, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_STALL, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3976   { CRISV10F_INSN_ADDU_B_R, model_crisv10_addu_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3977   { CRISV10F_INSN_ADDU_W_R, model_crisv10_addu_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3978   { CRISV10F_INSN_ADDU_M_B_M, model_crisv10_addu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3979   { CRISV10F_INSN_ADDU_M_W_M, model_crisv10_addu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3980   { CRISV10F_INSN_ADDUCBR, model_crisv10_adducbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3981   { CRISV10F_INSN_ADDUCWR, model_crisv10_adducwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3982   { CRISV10F_INSN_SUB_B_R, model_crisv10_sub_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3983   { CRISV10F_INSN_SUB_W_R, model_crisv10_sub_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3984   { CRISV10F_INSN_SUB_D_R, model_crisv10_sub_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3985   { CRISV10F_INSN_SUB_M_B_M, model_crisv10_sub_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3986   { CRISV10F_INSN_SUB_M_W_M, model_crisv10_sub_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3987   { CRISV10F_INSN_SUB_M_D_M, model_crisv10_sub_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3988   { CRISV10F_INSN_SUBCBR, model_crisv10_subcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3989   { CRISV10F_INSN_SUBCWR, model_crisv10_subcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3990   { CRISV10F_INSN_SUBCDR, model_crisv10_subcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3991   { CRISV10F_INSN_SUBS_B_R, model_crisv10_subs_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3992   { CRISV10F_INSN_SUBS_W_R, model_crisv10_subs_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3993   { CRISV10F_INSN_SUBS_M_B_M, model_crisv10_subs_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3994   { CRISV10F_INSN_SUBS_M_W_M, model_crisv10_subs_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3995   { CRISV10F_INSN_SUBSCBR, model_crisv10_subscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3996   { CRISV10F_INSN_SUBSCWR, model_crisv10_subscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3997   { CRISV10F_INSN_SUBU_B_R, model_crisv10_subu_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3998   { CRISV10F_INSN_SUBU_W_R, model_crisv10_subu_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3999   { CRISV10F_INSN_SUBU_M_B_M, model_crisv10_subu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4000   { CRISV10F_INSN_SUBU_M_W_M, model_crisv10_subu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4001   { CRISV10F_INSN_SUBUCBR, model_crisv10_subucbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4002   { CRISV10F_INSN_SUBUCWR, model_crisv10_subucwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4003   { CRISV10F_INSN_ADDI_B_R, model_crisv10_addi_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4004   { CRISV10F_INSN_ADDI_W_R, model_crisv10_addi_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4005   { CRISV10F_INSN_ADDI_D_R, model_crisv10_addi_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4006   { CRISV10F_INSN_NEG_B_R, model_crisv10_neg_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4007   { CRISV10F_INSN_NEG_W_R, model_crisv10_neg_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4008   { CRISV10F_INSN_NEG_D_R, model_crisv10_neg_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4009   { CRISV10F_INSN_TEST_M_B_M, model_crisv10_test_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4010   { CRISV10F_INSN_TEST_M_W_M, model_crisv10_test_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4011   { CRISV10F_INSN_TEST_M_D_M, model_crisv10_test_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4012   { CRISV10F_INSN_MOVE_R_M_B_M, model_crisv10_move_r_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4013   { CRISV10F_INSN_MOVE_R_M_W_M, model_crisv10_move_r_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4014   { CRISV10F_INSN_MOVE_R_M_D_M, model_crisv10_move_r_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4015   { CRISV10F_INSN_MULS_B, model_crisv10_muls_b, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4016   { CRISV10F_INSN_MULS_W, model_crisv10_muls_w, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4017   { CRISV10F_INSN_MULS_D, model_crisv10_muls_d, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4018   { CRISV10F_INSN_MULU_B, model_crisv10_mulu_b, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4019   { CRISV10F_INSN_MULU_W, model_crisv10_mulu_w, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4020   { CRISV10F_INSN_MULU_D, model_crisv10_mulu_d, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4021   { CRISV10F_INSN_MSTEP, model_crisv10_mstep, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4022   { CRISV10F_INSN_DSTEP, model_crisv10_dstep, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4023   { CRISV10F_INSN_ABS, model_crisv10_abs, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4024   { CRISV10F_INSN_AND_B_R, model_crisv10_and_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4025   { CRISV10F_INSN_AND_W_R, model_crisv10_and_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4026   { CRISV10F_INSN_AND_D_R, model_crisv10_and_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4027   { CRISV10F_INSN_AND_M_B_M, model_crisv10_and_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4028   { CRISV10F_INSN_AND_M_W_M, model_crisv10_and_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4029   { CRISV10F_INSN_AND_M_D_M, model_crisv10_and_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4030   { CRISV10F_INSN_ANDCBR, model_crisv10_andcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4031   { CRISV10F_INSN_ANDCWR, model_crisv10_andcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4032   { CRISV10F_INSN_ANDCDR, model_crisv10_andcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4033   { CRISV10F_INSN_ANDQ, model_crisv10_andq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4034   { CRISV10F_INSN_ORR_B_R, model_crisv10_orr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4035   { CRISV10F_INSN_ORR_W_R, model_crisv10_orr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4036   { CRISV10F_INSN_ORR_D_R, model_crisv10_orr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4037   { CRISV10F_INSN_OR_M_B_M, model_crisv10_or_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4038   { CRISV10F_INSN_OR_M_W_M, model_crisv10_or_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4039   { CRISV10F_INSN_OR_M_D_M, model_crisv10_or_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4040   { CRISV10F_INSN_ORCBR, model_crisv10_orcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4041   { CRISV10F_INSN_ORCWR, model_crisv10_orcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4042   { CRISV10F_INSN_ORCDR, model_crisv10_orcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4043   { CRISV10F_INSN_ORQ, model_crisv10_orq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4044   { CRISV10F_INSN_XOR, model_crisv10_xor, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4045   { CRISV10F_INSN_SWAP, model_crisv10_swap, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4046   { CRISV10F_INSN_ASRR_B_R, model_crisv10_asrr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4047   { CRISV10F_INSN_ASRR_W_R, model_crisv10_asrr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4048   { CRISV10F_INSN_ASRR_D_R, model_crisv10_asrr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4049   { CRISV10F_INSN_ASRQ, model_crisv10_asrq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4050   { CRISV10F_INSN_LSRR_B_R, model_crisv10_lsrr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4051   { CRISV10F_INSN_LSRR_W_R, model_crisv10_lsrr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4052   { CRISV10F_INSN_LSRR_D_R, model_crisv10_lsrr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4053   { CRISV10F_INSN_LSRQ, model_crisv10_lsrq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4054   { CRISV10F_INSN_LSLR_B_R, model_crisv10_lslr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4055   { CRISV10F_INSN_LSLR_W_R, model_crisv10_lslr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4056   { CRISV10F_INSN_LSLR_D_R, model_crisv10_lslr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4057   { CRISV10F_INSN_LSLQ, model_crisv10_lslq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4058   { CRISV10F_INSN_BTST, model_crisv10_btst, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4059   { CRISV10F_INSN_BTSTQ, model_crisv10_btstq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4060   { CRISV10F_INSN_SETF, model_crisv10_setf, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4061   { CRISV10F_INSN_CLEARF, model_crisv10_clearf, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4062   { CRISV10F_INSN_BCC_B, model_crisv10_bcc_b, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4063   { CRISV10F_INSN_BA_B, model_crisv10_ba_b, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4064   { CRISV10F_INSN_BCC_W, model_crisv10_bcc_w, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4065   { CRISV10F_INSN_BA_W, model_crisv10_ba_w, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4066   { CRISV10F_INSN_JUMP_R, model_crisv10_jump_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4067   { CRISV10F_INSN_JUMP_M, model_crisv10_jump_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4068   { CRISV10F_INSN_JUMP_C, model_crisv10_jump_c, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4069   { CRISV10F_INSN_BREAK, model_crisv10_break, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4070   { CRISV10F_INSN_BOUND_R_B_R, model_crisv10_bound_r_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4071   { CRISV10F_INSN_BOUND_R_W_R, model_crisv10_bound_r_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4072   { CRISV10F_INSN_BOUND_R_D_R, model_crisv10_bound_r_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4073   { CRISV10F_INSN_BOUND_M_B_M, model_crisv10_bound_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4074   { CRISV10F_INSN_BOUND_M_W_M, model_crisv10_bound_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4075   { CRISV10F_INSN_BOUND_M_D_M, model_crisv10_bound_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4076   { CRISV10F_INSN_BOUND_CB, model_crisv10_bound_cb, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4077   { CRISV10F_INSN_BOUND_CW, model_crisv10_bound_cw, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4078   { CRISV10F_INSN_BOUND_CD, model_crisv10_bound_cd, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4079   { CRISV10F_INSN_SCC, model_crisv10_scc, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4080   { CRISV10F_INSN_LZ, model_crisv10_lz, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4081   { CRISV10F_INSN_ADDOQ, model_crisv10_addoq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4082   { CRISV10F_INSN_BDAPQPC, model_crisv10_bdapqpc, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4083   { CRISV10F_INSN_BDAP_32_PC, model_crisv10_bdap_32_pc, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4084   { CRISV10F_INSN_MOVE_M_PCPLUS_P0, model_crisv10_move_m_pcplus_p0, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4085   { CRISV10F_INSN_MOVE_M_SPPLUS_P8, model_crisv10_move_m_spplus_p8, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4086   { CRISV10F_INSN_ADDO_M_B_M, model_crisv10_addo_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4087   { CRISV10F_INSN_ADDO_M_W_M, model_crisv10_addo_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4088   { CRISV10F_INSN_ADDO_M_D_M, model_crisv10_addo_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4089   { CRISV10F_INSN_ADDO_CB, model_crisv10_addo_cb, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4090   { CRISV10F_INSN_ADDO_CW, model_crisv10_addo_cw, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4091   { CRISV10F_INSN_ADDO_CD, model_crisv10_addo_cd, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4092   { CRISV10F_INSN_DIP_M, model_crisv10_dip_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4093   { CRISV10F_INSN_DIP_C, model_crisv10_dip_c, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4094   { CRISV10F_INSN_ADDI_ACR_B_R, model_crisv10_addi_acr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4095   { CRISV10F_INSN_ADDI_ACR_W_R, model_crisv10_addi_acr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4096   { CRISV10F_INSN_ADDI_ACR_D_R, model_crisv10_addi_acr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4097   { CRISV10F_INSN_BIAP_PC_B_R, model_crisv10_biap_pc_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4098   { CRISV10F_INSN_BIAP_PC_W_R, model_crisv10_biap_pc_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4099   { CRISV10F_INSN_BIAP_PC_D_R, model_crisv10_biap_pc_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4100 };
4101
4102 #endif /* WITH_PROFILE_MODEL_P */
4103
4104 static void
4105 crisv10_model_init (SIM_CPU *cpu)
4106 {
4107   CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_CRISV10_DATA));
4108 }
4109
4110 #if WITH_PROFILE_MODEL_P
4111 #define TIMING_DATA(td) td
4112 #else
4113 #define TIMING_DATA(td) 0
4114 #endif
4115
4116 static const MODEL crisv10_models[] =
4117 {
4118   { "crisv10", & crisv10_mach, MODEL_CRISV10, TIMING_DATA (& crisv10_timing[0]), crisv10_model_init },
4119   { 0 }
4120 };
4121
4122 /* The properties of this cpu's implementation.  */
4123
4124 static const MACH_IMP_PROPERTIES crisv10f_imp_properties =
4125 {
4126   sizeof (SIM_CPU),
4127 #if WITH_SCACHE
4128   sizeof (SCACHE)
4129 #else
4130   0
4131 #endif
4132 };
4133
4134
4135 static void
4136 crisv10f_prepare_run (SIM_CPU *cpu)
4137 {
4138   if (CPU_IDESC (cpu) == NULL)
4139     crisv10f_init_idesc_table (cpu);
4140 }
4141
4142 static const CGEN_INSN *
4143 crisv10f_get_idata (SIM_CPU *cpu, int inum)
4144 {
4145   return CPU_IDESC (cpu) [inum].idata;
4146 }
4147
4148 static void
4149 crisv10_init_cpu (SIM_CPU *cpu)
4150 {
4151   CPU_REG_FETCH (cpu) = crisv10f_fetch_register;
4152   CPU_REG_STORE (cpu) = crisv10f_store_register;
4153   CPU_PC_FETCH (cpu) = crisv10f_h_pc_get;
4154   CPU_PC_STORE (cpu) = crisv10f_h_pc_set;
4155   CPU_GET_IDATA (cpu) = crisv10f_get_idata;
4156   CPU_MAX_INSNS (cpu) = CRISV10F_INSN__MAX;
4157   CPU_INSN_NAME (cpu) = cgen_insn_name;
4158   CPU_FULL_ENGINE_FN (cpu) = crisv10f_engine_run_full;
4159 #if WITH_FAST
4160   CPU_FAST_ENGINE_FN (cpu) = crisv10f_engine_run_fast;
4161 #else
4162   CPU_FAST_ENGINE_FN (cpu) = crisv10f_engine_run_full;
4163 #endif
4164 }
4165
4166 const MACH crisv10_mach =
4167 {
4168   "crisv10", "cris", MACH_CRISV10,
4169   32, 32, & crisv10_models[0], & crisv10f_imp_properties,
4170   crisv10_init_cpu,
4171   crisv10f_prepare_run
4172 };
4173