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