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