model.c revision 1.1.1.9
1/* Simulator model support for iq2000bf.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright 1996-2023 Free Software Foundation, Inc.
6
7This file is part of the GNU simulators.
8
9   This file is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License as published by
11   the Free Software Foundation; either version 3, or (at your option)
12   any later version.
13
14   It is distributed in the hope that it will be useful, but WITHOUT
15   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
17   License for more details.
18
19   You should have received a copy of the GNU General Public License along
20   with this program; if not, see <http://www.gnu.org/licenses/>.
21
22*/
23
24#define WANT_CPU iq2000bf
25#define WANT_CPU_IQ2000BF
26
27#include "sim-main.h"
28
29/* The profiling data is recorded here, but is accessed via the profiling
30   mechanism.  After all, this is information for profiling.  */
31
32#if WITH_PROFILE_MODEL_P
33
34/* Model handlers for each insn.  */
35
36static int
37model_iq2000_add (SIM_CPU *current_cpu, void *sem_arg)
38{
39#define FLD(f) abuf->fields.sfmt_mrgb.f
40  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
41  const IDESC * UNUSED idesc = abuf->idesc;
42  int cycles = 0;
43  {
44    int referenced = 0;
45    int UNUSED insn_referenced = abuf->written;
46    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
47  }
48  return cycles;
49#undef FLD
50}
51
52static int
53model_iq2000_addi (SIM_CPU *current_cpu, void *sem_arg)
54{
55#define FLD(f) abuf->fields.sfmt_addi.f
56  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
57  const IDESC * UNUSED idesc = abuf->idesc;
58  int cycles = 0;
59  {
60    int referenced = 0;
61    int UNUSED insn_referenced = abuf->written;
62    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
63  }
64  return cycles;
65#undef FLD
66}
67
68static int
69model_iq2000_addiu (SIM_CPU *current_cpu, void *sem_arg)
70{
71#define FLD(f) abuf->fields.sfmt_addi.f
72  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
73  const IDESC * UNUSED idesc = abuf->idesc;
74  int cycles = 0;
75  {
76    int referenced = 0;
77    int UNUSED insn_referenced = abuf->written;
78    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
79  }
80  return cycles;
81#undef FLD
82}
83
84static int
85model_iq2000_addu (SIM_CPU *current_cpu, void *sem_arg)
86{
87#define FLD(f) abuf->fields.sfmt_mrgb.f
88  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
89  const IDESC * UNUSED idesc = abuf->idesc;
90  int cycles = 0;
91  {
92    int referenced = 0;
93    int UNUSED insn_referenced = abuf->written;
94    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
95  }
96  return cycles;
97#undef FLD
98}
99
100static int
101model_iq2000_ado16 (SIM_CPU *current_cpu, void *sem_arg)
102{
103#define FLD(f) abuf->fields.sfmt_mrgb.f
104  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
105  const IDESC * UNUSED idesc = abuf->idesc;
106  int cycles = 0;
107  {
108    int referenced = 0;
109    int UNUSED insn_referenced = abuf->written;
110    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
111  }
112  return cycles;
113#undef FLD
114}
115
116static int
117model_iq2000_and (SIM_CPU *current_cpu, void *sem_arg)
118{
119#define FLD(f) abuf->fields.sfmt_mrgb.f
120  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
121  const IDESC * UNUSED idesc = abuf->idesc;
122  int cycles = 0;
123  {
124    int referenced = 0;
125    int UNUSED insn_referenced = abuf->written;
126    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
127  }
128  return cycles;
129#undef FLD
130}
131
132static int
133model_iq2000_andi (SIM_CPU *current_cpu, void *sem_arg)
134{
135#define FLD(f) abuf->fields.sfmt_addi.f
136  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
137  const IDESC * UNUSED idesc = abuf->idesc;
138  int cycles = 0;
139  {
140    int referenced = 0;
141    int UNUSED insn_referenced = abuf->written;
142    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
143  }
144  return cycles;
145#undef FLD
146}
147
148static int
149model_iq2000_andoi (SIM_CPU *current_cpu, void *sem_arg)
150{
151#define FLD(f) abuf->fields.sfmt_addi.f
152  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
153  const IDESC * UNUSED idesc = abuf->idesc;
154  int cycles = 0;
155  {
156    int referenced = 0;
157    int UNUSED insn_referenced = abuf->written;
158    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
159  }
160  return cycles;
161#undef FLD
162}
163
164static int
165model_iq2000_nor (SIM_CPU *current_cpu, void *sem_arg)
166{
167#define FLD(f) abuf->fields.sfmt_mrgb.f
168  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
169  const IDESC * UNUSED idesc = abuf->idesc;
170  int cycles = 0;
171  {
172    int referenced = 0;
173    int UNUSED insn_referenced = abuf->written;
174    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
175  }
176  return cycles;
177#undef FLD
178}
179
180static int
181model_iq2000_or (SIM_CPU *current_cpu, void *sem_arg)
182{
183#define FLD(f) abuf->fields.sfmt_mrgb.f
184  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
185  const IDESC * UNUSED idesc = abuf->idesc;
186  int cycles = 0;
187  {
188    int referenced = 0;
189    int UNUSED insn_referenced = abuf->written;
190    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
191  }
192  return cycles;
193#undef FLD
194}
195
196static int
197model_iq2000_ori (SIM_CPU *current_cpu, void *sem_arg)
198{
199#define FLD(f) abuf->fields.sfmt_addi.f
200  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
201  const IDESC * UNUSED idesc = abuf->idesc;
202  int cycles = 0;
203  {
204    int referenced = 0;
205    int UNUSED insn_referenced = abuf->written;
206    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
207  }
208  return cycles;
209#undef FLD
210}
211
212static int
213model_iq2000_ram (SIM_CPU *current_cpu, void *sem_arg)
214{
215#define FLD(f) abuf->fields.sfmt_ram.f
216  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
217  const IDESC * UNUSED idesc = abuf->idesc;
218  int cycles = 0;
219  {
220    int referenced = 0;
221    int UNUSED insn_referenced = abuf->written;
222    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
223  }
224  return cycles;
225#undef FLD
226}
227
228static int
229model_iq2000_sll (SIM_CPU *current_cpu, void *sem_arg)
230{
231#define FLD(f) abuf->fields.sfmt_ram.f
232  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
233  const IDESC * UNUSED idesc = abuf->idesc;
234  int cycles = 0;
235  {
236    int referenced = 0;
237    int UNUSED insn_referenced = abuf->written;
238    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
239  }
240  return cycles;
241#undef FLD
242}
243
244static int
245model_iq2000_sllv (SIM_CPU *current_cpu, void *sem_arg)
246{
247#define FLD(f) abuf->fields.sfmt_mrgb.f
248  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
249  const IDESC * UNUSED idesc = abuf->idesc;
250  int cycles = 0;
251  {
252    int referenced = 0;
253    int UNUSED insn_referenced = abuf->written;
254    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
255  }
256  return cycles;
257#undef FLD
258}
259
260static int
261model_iq2000_slmv (SIM_CPU *current_cpu, void *sem_arg)
262{
263#define FLD(f) abuf->fields.sfmt_ram.f
264  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
265  const IDESC * UNUSED idesc = abuf->idesc;
266  int cycles = 0;
267  {
268    int referenced = 0;
269    int UNUSED insn_referenced = abuf->written;
270    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
271  }
272  return cycles;
273#undef FLD
274}
275
276static int
277model_iq2000_slt (SIM_CPU *current_cpu, void *sem_arg)
278{
279#define FLD(f) abuf->fields.sfmt_mrgb.f
280  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
281  const IDESC * UNUSED idesc = abuf->idesc;
282  int cycles = 0;
283  {
284    int referenced = 0;
285    int UNUSED insn_referenced = abuf->written;
286    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
287  }
288  return cycles;
289#undef FLD
290}
291
292static int
293model_iq2000_slti (SIM_CPU *current_cpu, void *sem_arg)
294{
295#define FLD(f) abuf->fields.sfmt_addi.f
296  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
297  const IDESC * UNUSED idesc = abuf->idesc;
298  int cycles = 0;
299  {
300    int referenced = 0;
301    int UNUSED insn_referenced = abuf->written;
302    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
303  }
304  return cycles;
305#undef FLD
306}
307
308static int
309model_iq2000_sltiu (SIM_CPU *current_cpu, void *sem_arg)
310{
311#define FLD(f) abuf->fields.sfmt_addi.f
312  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
313  const IDESC * UNUSED idesc = abuf->idesc;
314  int cycles = 0;
315  {
316    int referenced = 0;
317    int UNUSED insn_referenced = abuf->written;
318    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
319  }
320  return cycles;
321#undef FLD
322}
323
324static int
325model_iq2000_sltu (SIM_CPU *current_cpu, void *sem_arg)
326{
327#define FLD(f) abuf->fields.sfmt_mrgb.f
328  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
329  const IDESC * UNUSED idesc = abuf->idesc;
330  int cycles = 0;
331  {
332    int referenced = 0;
333    int UNUSED insn_referenced = abuf->written;
334    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
335  }
336  return cycles;
337#undef FLD
338}
339
340static int
341model_iq2000_sra (SIM_CPU *current_cpu, void *sem_arg)
342{
343#define FLD(f) abuf->fields.sfmt_ram.f
344  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
345  const IDESC * UNUSED idesc = abuf->idesc;
346  int cycles = 0;
347  {
348    int referenced = 0;
349    int UNUSED insn_referenced = abuf->written;
350    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
351  }
352  return cycles;
353#undef FLD
354}
355
356static int
357model_iq2000_srav (SIM_CPU *current_cpu, void *sem_arg)
358{
359#define FLD(f) abuf->fields.sfmt_mrgb.f
360  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
361  const IDESC * UNUSED idesc = abuf->idesc;
362  int cycles = 0;
363  {
364    int referenced = 0;
365    int UNUSED insn_referenced = abuf->written;
366    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
367  }
368  return cycles;
369#undef FLD
370}
371
372static int
373model_iq2000_srl (SIM_CPU *current_cpu, void *sem_arg)
374{
375#define FLD(f) abuf->fields.sfmt_ram.f
376  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
377  const IDESC * UNUSED idesc = abuf->idesc;
378  int cycles = 0;
379  {
380    int referenced = 0;
381    int UNUSED insn_referenced = abuf->written;
382    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
383  }
384  return cycles;
385#undef FLD
386}
387
388static int
389model_iq2000_srlv (SIM_CPU *current_cpu, void *sem_arg)
390{
391#define FLD(f) abuf->fields.sfmt_mrgb.f
392  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
393  const IDESC * UNUSED idesc = abuf->idesc;
394  int cycles = 0;
395  {
396    int referenced = 0;
397    int UNUSED insn_referenced = abuf->written;
398    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
399  }
400  return cycles;
401#undef FLD
402}
403
404static int
405model_iq2000_srmv (SIM_CPU *current_cpu, void *sem_arg)
406{
407#define FLD(f) abuf->fields.sfmt_ram.f
408  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
409  const IDESC * UNUSED idesc = abuf->idesc;
410  int cycles = 0;
411  {
412    int referenced = 0;
413    int UNUSED insn_referenced = abuf->written;
414    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
415  }
416  return cycles;
417#undef FLD
418}
419
420static int
421model_iq2000_sub (SIM_CPU *current_cpu, void *sem_arg)
422{
423#define FLD(f) abuf->fields.sfmt_mrgb.f
424  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
425  const IDESC * UNUSED idesc = abuf->idesc;
426  int cycles = 0;
427  {
428    int referenced = 0;
429    int UNUSED insn_referenced = abuf->written;
430    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
431  }
432  return cycles;
433#undef FLD
434}
435
436static int
437model_iq2000_subu (SIM_CPU *current_cpu, void *sem_arg)
438{
439#define FLD(f) abuf->fields.sfmt_mrgb.f
440  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
441  const IDESC * UNUSED idesc = abuf->idesc;
442  int cycles = 0;
443  {
444    int referenced = 0;
445    int UNUSED insn_referenced = abuf->written;
446    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
447  }
448  return cycles;
449#undef FLD
450}
451
452static int
453model_iq2000_xor (SIM_CPU *current_cpu, void *sem_arg)
454{
455#define FLD(f) abuf->fields.sfmt_mrgb.f
456  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
457  const IDESC * UNUSED idesc = abuf->idesc;
458  int cycles = 0;
459  {
460    int referenced = 0;
461    int UNUSED insn_referenced = abuf->written;
462    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
463  }
464  return cycles;
465#undef FLD
466}
467
468static int
469model_iq2000_xori (SIM_CPU *current_cpu, void *sem_arg)
470{
471#define FLD(f) abuf->fields.sfmt_addi.f
472  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
473  const IDESC * UNUSED idesc = abuf->idesc;
474  int cycles = 0;
475  {
476    int referenced = 0;
477    int UNUSED insn_referenced = abuf->written;
478    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
479  }
480  return cycles;
481#undef FLD
482}
483
484static int
485model_iq2000_bbi (SIM_CPU *current_cpu, void *sem_arg)
486{
487#define FLD(f) abuf->fields.sfmt_bbi.f
488  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
489  const IDESC * UNUSED idesc = abuf->idesc;
490  int cycles = 0;
491  {
492    int referenced = 0;
493    int UNUSED insn_referenced = abuf->written;
494    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
495  }
496  return cycles;
497#undef FLD
498}
499
500static int
501model_iq2000_bbin (SIM_CPU *current_cpu, void *sem_arg)
502{
503#define FLD(f) abuf->fields.sfmt_bbi.f
504  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
505  const IDESC * UNUSED idesc = abuf->idesc;
506  int cycles = 0;
507  {
508    int referenced = 0;
509    int UNUSED insn_referenced = abuf->written;
510    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
511  }
512  return cycles;
513#undef FLD
514}
515
516static int
517model_iq2000_bbv (SIM_CPU *current_cpu, void *sem_arg)
518{
519#define FLD(f) abuf->fields.sfmt_bbi.f
520  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
521  const IDESC * UNUSED idesc = abuf->idesc;
522  int cycles = 0;
523  {
524    int referenced = 0;
525    int UNUSED insn_referenced = abuf->written;
526    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
527  }
528  return cycles;
529#undef FLD
530}
531
532static int
533model_iq2000_bbvn (SIM_CPU *current_cpu, void *sem_arg)
534{
535#define FLD(f) abuf->fields.sfmt_bbi.f
536  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
537  const IDESC * UNUSED idesc = abuf->idesc;
538  int cycles = 0;
539  {
540    int referenced = 0;
541    int UNUSED insn_referenced = abuf->written;
542    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
543  }
544  return cycles;
545#undef FLD
546}
547
548static int
549model_iq2000_beq (SIM_CPU *current_cpu, void *sem_arg)
550{
551#define FLD(f) abuf->fields.sfmt_bbi.f
552  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
553  const IDESC * UNUSED idesc = abuf->idesc;
554  int cycles = 0;
555  {
556    int referenced = 0;
557    int UNUSED insn_referenced = abuf->written;
558    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
559  }
560  return cycles;
561#undef FLD
562}
563
564static int
565model_iq2000_beql (SIM_CPU *current_cpu, void *sem_arg)
566{
567#define FLD(f) abuf->fields.sfmt_bbi.f
568  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
569  const IDESC * UNUSED idesc = abuf->idesc;
570  int cycles = 0;
571  {
572    int referenced = 0;
573    int UNUSED insn_referenced = abuf->written;
574    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
575  }
576  return cycles;
577#undef FLD
578}
579
580static int
581model_iq2000_bgez (SIM_CPU *current_cpu, void *sem_arg)
582{
583#define FLD(f) abuf->fields.sfmt_bbi.f
584  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
585  const IDESC * UNUSED idesc = abuf->idesc;
586  int cycles = 0;
587  {
588    int referenced = 0;
589    int UNUSED insn_referenced = abuf->written;
590    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
591  }
592  return cycles;
593#undef FLD
594}
595
596static int
597model_iq2000_bgezal (SIM_CPU *current_cpu, void *sem_arg)
598{
599#define FLD(f) abuf->fields.sfmt_bbi.f
600  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
601  const IDESC * UNUSED idesc = abuf->idesc;
602  int cycles = 0;
603  {
604    int referenced = 0;
605    int UNUSED insn_referenced = abuf->written;
606    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
607  }
608  return cycles;
609#undef FLD
610}
611
612static int
613model_iq2000_bgezall (SIM_CPU *current_cpu, void *sem_arg)
614{
615#define FLD(f) abuf->fields.sfmt_bbi.f
616  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
617  const IDESC * UNUSED idesc = abuf->idesc;
618  int cycles = 0;
619  {
620    int referenced = 0;
621    int UNUSED insn_referenced = abuf->written;
622    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
623  }
624  return cycles;
625#undef FLD
626}
627
628static int
629model_iq2000_bgezl (SIM_CPU *current_cpu, void *sem_arg)
630{
631#define FLD(f) abuf->fields.sfmt_bbi.f
632  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
633  const IDESC * UNUSED idesc = abuf->idesc;
634  int cycles = 0;
635  {
636    int referenced = 0;
637    int UNUSED insn_referenced = abuf->written;
638    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
639  }
640  return cycles;
641#undef FLD
642}
643
644static int
645model_iq2000_bltz (SIM_CPU *current_cpu, void *sem_arg)
646{
647#define FLD(f) abuf->fields.sfmt_bbi.f
648  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
649  const IDESC * UNUSED idesc = abuf->idesc;
650  int cycles = 0;
651  {
652    int referenced = 0;
653    int UNUSED insn_referenced = abuf->written;
654    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
655  }
656  return cycles;
657#undef FLD
658}
659
660static int
661model_iq2000_bltzl (SIM_CPU *current_cpu, void *sem_arg)
662{
663#define FLD(f) abuf->fields.sfmt_bbi.f
664  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
665  const IDESC * UNUSED idesc = abuf->idesc;
666  int cycles = 0;
667  {
668    int referenced = 0;
669    int UNUSED insn_referenced = abuf->written;
670    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
671  }
672  return cycles;
673#undef FLD
674}
675
676static int
677model_iq2000_bltzal (SIM_CPU *current_cpu, void *sem_arg)
678{
679#define FLD(f) abuf->fields.sfmt_bbi.f
680  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
681  const IDESC * UNUSED idesc = abuf->idesc;
682  int cycles = 0;
683  {
684    int referenced = 0;
685    int UNUSED insn_referenced = abuf->written;
686    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
687  }
688  return cycles;
689#undef FLD
690}
691
692static int
693model_iq2000_bltzall (SIM_CPU *current_cpu, void *sem_arg)
694{
695#define FLD(f) abuf->fields.sfmt_bbi.f
696  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
697  const IDESC * UNUSED idesc = abuf->idesc;
698  int cycles = 0;
699  {
700    int referenced = 0;
701    int UNUSED insn_referenced = abuf->written;
702    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
703  }
704  return cycles;
705#undef FLD
706}
707
708static int
709model_iq2000_bmb0 (SIM_CPU *current_cpu, void *sem_arg)
710{
711#define FLD(f) abuf->fields.sfmt_bbi.f
712  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
713  const IDESC * UNUSED idesc = abuf->idesc;
714  int cycles = 0;
715  {
716    int referenced = 0;
717    int UNUSED insn_referenced = abuf->written;
718    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
719  }
720  return cycles;
721#undef FLD
722}
723
724static int
725model_iq2000_bmb1 (SIM_CPU *current_cpu, void *sem_arg)
726{
727#define FLD(f) abuf->fields.sfmt_bbi.f
728  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
729  const IDESC * UNUSED idesc = abuf->idesc;
730  int cycles = 0;
731  {
732    int referenced = 0;
733    int UNUSED insn_referenced = abuf->written;
734    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
735  }
736  return cycles;
737#undef FLD
738}
739
740static int
741model_iq2000_bmb2 (SIM_CPU *current_cpu, void *sem_arg)
742{
743#define FLD(f) abuf->fields.sfmt_bbi.f
744  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
745  const IDESC * UNUSED idesc = abuf->idesc;
746  int cycles = 0;
747  {
748    int referenced = 0;
749    int UNUSED insn_referenced = abuf->written;
750    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
751  }
752  return cycles;
753#undef FLD
754}
755
756static int
757model_iq2000_bmb3 (SIM_CPU *current_cpu, void *sem_arg)
758{
759#define FLD(f) abuf->fields.sfmt_bbi.f
760  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
761  const IDESC * UNUSED idesc = abuf->idesc;
762  int cycles = 0;
763  {
764    int referenced = 0;
765    int UNUSED insn_referenced = abuf->written;
766    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
767  }
768  return cycles;
769#undef FLD
770}
771
772static int
773model_iq2000_bne (SIM_CPU *current_cpu, void *sem_arg)
774{
775#define FLD(f) abuf->fields.sfmt_bbi.f
776  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
777  const IDESC * UNUSED idesc = abuf->idesc;
778  int cycles = 0;
779  {
780    int referenced = 0;
781    int UNUSED insn_referenced = abuf->written;
782    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
783  }
784  return cycles;
785#undef FLD
786}
787
788static int
789model_iq2000_bnel (SIM_CPU *current_cpu, void *sem_arg)
790{
791#define FLD(f) abuf->fields.sfmt_bbi.f
792  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
793  const IDESC * UNUSED idesc = abuf->idesc;
794  int cycles = 0;
795  {
796    int referenced = 0;
797    int UNUSED insn_referenced = abuf->written;
798    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
799  }
800  return cycles;
801#undef FLD
802}
803
804static int
805model_iq2000_jalr (SIM_CPU *current_cpu, void *sem_arg)
806{
807#define FLD(f) abuf->fields.sfmt_mrgb.f
808  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
809  const IDESC * UNUSED idesc = abuf->idesc;
810  int cycles = 0;
811  {
812    int referenced = 0;
813    int UNUSED insn_referenced = abuf->written;
814    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
815  }
816  return cycles;
817#undef FLD
818}
819
820static int
821model_iq2000_jr (SIM_CPU *current_cpu, void *sem_arg)
822{
823#define FLD(f) abuf->fields.sfmt_bbi.f
824  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
825  const IDESC * UNUSED idesc = abuf->idesc;
826  int cycles = 0;
827  {
828    int referenced = 0;
829    int UNUSED insn_referenced = abuf->written;
830    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
831  }
832  return cycles;
833#undef FLD
834}
835
836static int
837model_iq2000_lb (SIM_CPU *current_cpu, void *sem_arg)
838{
839#define FLD(f) abuf->fields.sfmt_addi.f
840  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
841  const IDESC * UNUSED idesc = abuf->idesc;
842  int cycles = 0;
843  {
844    int referenced = 0;
845    int UNUSED insn_referenced = abuf->written;
846    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
847  }
848  return cycles;
849#undef FLD
850}
851
852static int
853model_iq2000_lbu (SIM_CPU *current_cpu, void *sem_arg)
854{
855#define FLD(f) abuf->fields.sfmt_addi.f
856  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
857  const IDESC * UNUSED idesc = abuf->idesc;
858  int cycles = 0;
859  {
860    int referenced = 0;
861    int UNUSED insn_referenced = abuf->written;
862    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
863  }
864  return cycles;
865#undef FLD
866}
867
868static int
869model_iq2000_lh (SIM_CPU *current_cpu, void *sem_arg)
870{
871#define FLD(f) abuf->fields.sfmt_addi.f
872  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
873  const IDESC * UNUSED idesc = abuf->idesc;
874  int cycles = 0;
875  {
876    int referenced = 0;
877    int UNUSED insn_referenced = abuf->written;
878    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
879  }
880  return cycles;
881#undef FLD
882}
883
884static int
885model_iq2000_lhu (SIM_CPU *current_cpu, void *sem_arg)
886{
887#define FLD(f) abuf->fields.sfmt_addi.f
888  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
889  const IDESC * UNUSED idesc = abuf->idesc;
890  int cycles = 0;
891  {
892    int referenced = 0;
893    int UNUSED insn_referenced = abuf->written;
894    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
895  }
896  return cycles;
897#undef FLD
898}
899
900static int
901model_iq2000_lui (SIM_CPU *current_cpu, void *sem_arg)
902{
903#define FLD(f) abuf->fields.sfmt_addi.f
904  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
905  const IDESC * UNUSED idesc = abuf->idesc;
906  int cycles = 0;
907  {
908    int referenced = 0;
909    int UNUSED insn_referenced = abuf->written;
910    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
911  }
912  return cycles;
913#undef FLD
914}
915
916static int
917model_iq2000_lw (SIM_CPU *current_cpu, void *sem_arg)
918{
919#define FLD(f) abuf->fields.sfmt_addi.f
920  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
921  const IDESC * UNUSED idesc = abuf->idesc;
922  int cycles = 0;
923  {
924    int referenced = 0;
925    int UNUSED insn_referenced = abuf->written;
926    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
927  }
928  return cycles;
929#undef FLD
930}
931
932static int
933model_iq2000_sb (SIM_CPU *current_cpu, void *sem_arg)
934{
935#define FLD(f) abuf->fields.sfmt_addi.f
936  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
937  const IDESC * UNUSED idesc = abuf->idesc;
938  int cycles = 0;
939  {
940    int referenced = 0;
941    int UNUSED insn_referenced = abuf->written;
942    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
943  }
944  return cycles;
945#undef FLD
946}
947
948static int
949model_iq2000_sh (SIM_CPU *current_cpu, void *sem_arg)
950{
951#define FLD(f) abuf->fields.sfmt_addi.f
952  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
953  const IDESC * UNUSED idesc = abuf->idesc;
954  int cycles = 0;
955  {
956    int referenced = 0;
957    int UNUSED insn_referenced = abuf->written;
958    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
959  }
960  return cycles;
961#undef FLD
962}
963
964static int
965model_iq2000_sw (SIM_CPU *current_cpu, void *sem_arg)
966{
967#define FLD(f) abuf->fields.sfmt_addi.f
968  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
969  const IDESC * UNUSED idesc = abuf->idesc;
970  int cycles = 0;
971  {
972    int referenced = 0;
973    int UNUSED insn_referenced = abuf->written;
974    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
975  }
976  return cycles;
977#undef FLD
978}
979
980static int
981model_iq2000_break (SIM_CPU *current_cpu, void *sem_arg)
982{
983#define FLD(f) abuf->fields.sfmt_empty.f
984  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
985  const IDESC * UNUSED idesc = abuf->idesc;
986  int cycles = 0;
987  {
988    int referenced = 0;
989    int UNUSED insn_referenced = abuf->written;
990    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
991  }
992  return cycles;
993#undef FLD
994}
995
996static int
997model_iq2000_syscall (SIM_CPU *current_cpu, void *sem_arg)
998{
999#define FLD(f) abuf->fields.sfmt_empty.f
1000  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1001  const IDESC * UNUSED idesc = abuf->idesc;
1002  int cycles = 0;
1003  {
1004    int referenced = 0;
1005    int UNUSED insn_referenced = abuf->written;
1006    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1007  }
1008  return cycles;
1009#undef FLD
1010}
1011
1012static int
1013model_iq2000_andoui (SIM_CPU *current_cpu, void *sem_arg)
1014{
1015#define FLD(f) abuf->fields.sfmt_addi.f
1016  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1017  const IDESC * UNUSED idesc = abuf->idesc;
1018  int cycles = 0;
1019  {
1020    int referenced = 0;
1021    int UNUSED insn_referenced = abuf->written;
1022    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1023  }
1024  return cycles;
1025#undef FLD
1026}
1027
1028static int
1029model_iq2000_orui (SIM_CPU *current_cpu, void *sem_arg)
1030{
1031#define FLD(f) abuf->fields.sfmt_addi.f
1032  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1033  const IDESC * UNUSED idesc = abuf->idesc;
1034  int cycles = 0;
1035  {
1036    int referenced = 0;
1037    int UNUSED insn_referenced = abuf->written;
1038    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1039  }
1040  return cycles;
1041#undef FLD
1042}
1043
1044static int
1045model_iq2000_bgtz (SIM_CPU *current_cpu, void *sem_arg)
1046{
1047#define FLD(f) abuf->fields.sfmt_bbi.f
1048  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1049  const IDESC * UNUSED idesc = abuf->idesc;
1050  int cycles = 0;
1051  {
1052    int referenced = 0;
1053    int UNUSED insn_referenced = abuf->written;
1054    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1055  }
1056  return cycles;
1057#undef FLD
1058}
1059
1060static int
1061model_iq2000_bgtzl (SIM_CPU *current_cpu, void *sem_arg)
1062{
1063#define FLD(f) abuf->fields.sfmt_bbi.f
1064  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1065  const IDESC * UNUSED idesc = abuf->idesc;
1066  int cycles = 0;
1067  {
1068    int referenced = 0;
1069    int UNUSED insn_referenced = abuf->written;
1070    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1071  }
1072  return cycles;
1073#undef FLD
1074}
1075
1076static int
1077model_iq2000_blez (SIM_CPU *current_cpu, void *sem_arg)
1078{
1079#define FLD(f) abuf->fields.sfmt_bbi.f
1080  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1081  const IDESC * UNUSED idesc = abuf->idesc;
1082  int cycles = 0;
1083  {
1084    int referenced = 0;
1085    int UNUSED insn_referenced = abuf->written;
1086    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1087  }
1088  return cycles;
1089#undef FLD
1090}
1091
1092static int
1093model_iq2000_blezl (SIM_CPU *current_cpu, void *sem_arg)
1094{
1095#define FLD(f) abuf->fields.sfmt_bbi.f
1096  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1097  const IDESC * UNUSED idesc = abuf->idesc;
1098  int cycles = 0;
1099  {
1100    int referenced = 0;
1101    int UNUSED insn_referenced = abuf->written;
1102    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1103  }
1104  return cycles;
1105#undef FLD
1106}
1107
1108static int
1109model_iq2000_mrgb (SIM_CPU *current_cpu, void *sem_arg)
1110{
1111#define FLD(f) abuf->fields.sfmt_mrgb.f
1112  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1113  const IDESC * UNUSED idesc = abuf->idesc;
1114  int cycles = 0;
1115  {
1116    int referenced = 0;
1117    int UNUSED insn_referenced = abuf->written;
1118    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1119  }
1120  return cycles;
1121#undef FLD
1122}
1123
1124static int
1125model_iq2000_bctxt (SIM_CPU *current_cpu, void *sem_arg)
1126{
1127#define FLD(f) abuf->fields.sfmt_empty.f
1128  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1129  const IDESC * UNUSED idesc = abuf->idesc;
1130  int cycles = 0;
1131  {
1132    int referenced = 0;
1133    int UNUSED insn_referenced = abuf->written;
1134    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1135  }
1136  return cycles;
1137#undef FLD
1138}
1139
1140static int
1141model_iq2000_bc0f (SIM_CPU *current_cpu, void *sem_arg)
1142{
1143#define FLD(f) abuf->fields.sfmt_empty.f
1144  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1145  const IDESC * UNUSED idesc = abuf->idesc;
1146  int cycles = 0;
1147  {
1148    int referenced = 0;
1149    int UNUSED insn_referenced = abuf->written;
1150    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1151  }
1152  return cycles;
1153#undef FLD
1154}
1155
1156static int
1157model_iq2000_bc0fl (SIM_CPU *current_cpu, void *sem_arg)
1158{
1159#define FLD(f) abuf->fields.sfmt_empty.f
1160  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1161  const IDESC * UNUSED idesc = abuf->idesc;
1162  int cycles = 0;
1163  {
1164    int referenced = 0;
1165    int UNUSED insn_referenced = abuf->written;
1166    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1167  }
1168  return cycles;
1169#undef FLD
1170}
1171
1172static int
1173model_iq2000_bc3f (SIM_CPU *current_cpu, void *sem_arg)
1174{
1175#define FLD(f) abuf->fields.sfmt_empty.f
1176  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1177  const IDESC * UNUSED idesc = abuf->idesc;
1178  int cycles = 0;
1179  {
1180    int referenced = 0;
1181    int UNUSED insn_referenced = abuf->written;
1182    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1183  }
1184  return cycles;
1185#undef FLD
1186}
1187
1188static int
1189model_iq2000_bc3fl (SIM_CPU *current_cpu, void *sem_arg)
1190{
1191#define FLD(f) abuf->fields.sfmt_empty.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    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1199  }
1200  return cycles;
1201#undef FLD
1202}
1203
1204static int
1205model_iq2000_bc0t (SIM_CPU *current_cpu, void *sem_arg)
1206{
1207#define FLD(f) abuf->fields.sfmt_empty.f
1208  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1209  const IDESC * UNUSED idesc = abuf->idesc;
1210  int cycles = 0;
1211  {
1212    int referenced = 0;
1213    int UNUSED insn_referenced = abuf->written;
1214    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1215  }
1216  return cycles;
1217#undef FLD
1218}
1219
1220static int
1221model_iq2000_bc0tl (SIM_CPU *current_cpu, void *sem_arg)
1222{
1223#define FLD(f) abuf->fields.sfmt_empty.f
1224  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1225  const IDESC * UNUSED idesc = abuf->idesc;
1226  int cycles = 0;
1227  {
1228    int referenced = 0;
1229    int UNUSED insn_referenced = abuf->written;
1230    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1231  }
1232  return cycles;
1233#undef FLD
1234}
1235
1236static int
1237model_iq2000_bc3t (SIM_CPU *current_cpu, void *sem_arg)
1238{
1239#define FLD(f) abuf->fields.sfmt_empty.f
1240  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1241  const IDESC * UNUSED idesc = abuf->idesc;
1242  int cycles = 0;
1243  {
1244    int referenced = 0;
1245    int UNUSED insn_referenced = abuf->written;
1246    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1247  }
1248  return cycles;
1249#undef FLD
1250}
1251
1252static int
1253model_iq2000_bc3tl (SIM_CPU *current_cpu, void *sem_arg)
1254{
1255#define FLD(f) abuf->fields.sfmt_empty.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    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1263  }
1264  return cycles;
1265#undef FLD
1266}
1267
1268static int
1269model_iq2000_cfc0 (SIM_CPU *current_cpu, void *sem_arg)
1270{
1271#define FLD(f) abuf->fields.sfmt_empty.f
1272  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1273  const IDESC * UNUSED idesc = abuf->idesc;
1274  int cycles = 0;
1275  {
1276    int referenced = 0;
1277    int UNUSED insn_referenced = abuf->written;
1278    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1279  }
1280  return cycles;
1281#undef FLD
1282}
1283
1284static int
1285model_iq2000_cfc1 (SIM_CPU *current_cpu, void *sem_arg)
1286{
1287#define FLD(f) abuf->fields.sfmt_empty.f
1288  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1289  const IDESC * UNUSED idesc = abuf->idesc;
1290  int cycles = 0;
1291  {
1292    int referenced = 0;
1293    int UNUSED insn_referenced = abuf->written;
1294    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1295  }
1296  return cycles;
1297#undef FLD
1298}
1299
1300static int
1301model_iq2000_cfc2 (SIM_CPU *current_cpu, void *sem_arg)
1302{
1303#define FLD(f) abuf->fields.sfmt_empty.f
1304  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1305  const IDESC * UNUSED idesc = abuf->idesc;
1306  int cycles = 0;
1307  {
1308    int referenced = 0;
1309    int UNUSED insn_referenced = abuf->written;
1310    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1311  }
1312  return cycles;
1313#undef FLD
1314}
1315
1316static int
1317model_iq2000_cfc3 (SIM_CPU *current_cpu, void *sem_arg)
1318{
1319#define FLD(f) abuf->fields.sfmt_empty.f
1320  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1321  const IDESC * UNUSED idesc = abuf->idesc;
1322  int cycles = 0;
1323  {
1324    int referenced = 0;
1325    int UNUSED insn_referenced = abuf->written;
1326    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1327  }
1328  return cycles;
1329#undef FLD
1330}
1331
1332static int
1333model_iq2000_chkhdr (SIM_CPU *current_cpu, void *sem_arg)
1334{
1335#define FLD(f) abuf->fields.sfmt_empty.f
1336  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1337  const IDESC * UNUSED idesc = abuf->idesc;
1338  int cycles = 0;
1339  {
1340    int referenced = 0;
1341    int UNUSED insn_referenced = abuf->written;
1342    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1343  }
1344  return cycles;
1345#undef FLD
1346}
1347
1348static int
1349model_iq2000_ctc0 (SIM_CPU *current_cpu, void *sem_arg)
1350{
1351#define FLD(f) abuf->fields.sfmt_empty.f
1352  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1353  const IDESC * UNUSED idesc = abuf->idesc;
1354  int cycles = 0;
1355  {
1356    int referenced = 0;
1357    int UNUSED insn_referenced = abuf->written;
1358    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1359  }
1360  return cycles;
1361#undef FLD
1362}
1363
1364static int
1365model_iq2000_ctc1 (SIM_CPU *current_cpu, void *sem_arg)
1366{
1367#define FLD(f) abuf->fields.sfmt_empty.f
1368  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1369  const IDESC * UNUSED idesc = abuf->idesc;
1370  int cycles = 0;
1371  {
1372    int referenced = 0;
1373    int UNUSED insn_referenced = abuf->written;
1374    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1375  }
1376  return cycles;
1377#undef FLD
1378}
1379
1380static int
1381model_iq2000_ctc2 (SIM_CPU *current_cpu, void *sem_arg)
1382{
1383#define FLD(f) abuf->fields.sfmt_empty.f
1384  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1385  const IDESC * UNUSED idesc = abuf->idesc;
1386  int cycles = 0;
1387  {
1388    int referenced = 0;
1389    int UNUSED insn_referenced = abuf->written;
1390    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1391  }
1392  return cycles;
1393#undef FLD
1394}
1395
1396static int
1397model_iq2000_ctc3 (SIM_CPU *current_cpu, void *sem_arg)
1398{
1399#define FLD(f) abuf->fields.sfmt_empty.f
1400  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1401  const IDESC * UNUSED idesc = abuf->idesc;
1402  int cycles = 0;
1403  {
1404    int referenced = 0;
1405    int UNUSED insn_referenced = abuf->written;
1406    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1407  }
1408  return cycles;
1409#undef FLD
1410}
1411
1412static int
1413model_iq2000_jcr (SIM_CPU *current_cpu, void *sem_arg)
1414{
1415#define FLD(f) abuf->fields.sfmt_empty.f
1416  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1417  const IDESC * UNUSED idesc = abuf->idesc;
1418  int cycles = 0;
1419  {
1420    int referenced = 0;
1421    int UNUSED insn_referenced = abuf->written;
1422    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1423  }
1424  return cycles;
1425#undef FLD
1426}
1427
1428static int
1429model_iq2000_luc32 (SIM_CPU *current_cpu, void *sem_arg)
1430{
1431#define FLD(f) abuf->fields.sfmt_empty.f
1432  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1433  const IDESC * UNUSED idesc = abuf->idesc;
1434  int cycles = 0;
1435  {
1436    int referenced = 0;
1437    int UNUSED insn_referenced = abuf->written;
1438    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1439  }
1440  return cycles;
1441#undef FLD
1442}
1443
1444static int
1445model_iq2000_luc32l (SIM_CPU *current_cpu, void *sem_arg)
1446{
1447#define FLD(f) abuf->fields.sfmt_empty.f
1448  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1449  const IDESC * UNUSED idesc = abuf->idesc;
1450  int cycles = 0;
1451  {
1452    int referenced = 0;
1453    int UNUSED insn_referenced = abuf->written;
1454    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1455  }
1456  return cycles;
1457#undef FLD
1458}
1459
1460static int
1461model_iq2000_luc64 (SIM_CPU *current_cpu, void *sem_arg)
1462{
1463#define FLD(f) abuf->fields.sfmt_empty.f
1464  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1465  const IDESC * UNUSED idesc = abuf->idesc;
1466  int cycles = 0;
1467  {
1468    int referenced = 0;
1469    int UNUSED insn_referenced = abuf->written;
1470    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1471  }
1472  return cycles;
1473#undef FLD
1474}
1475
1476static int
1477model_iq2000_luc64l (SIM_CPU *current_cpu, void *sem_arg)
1478{
1479#define FLD(f) abuf->fields.sfmt_empty.f
1480  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1481  const IDESC * UNUSED idesc = abuf->idesc;
1482  int cycles = 0;
1483  {
1484    int referenced = 0;
1485    int UNUSED insn_referenced = abuf->written;
1486    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1487  }
1488  return cycles;
1489#undef FLD
1490}
1491
1492static int
1493model_iq2000_luk (SIM_CPU *current_cpu, void *sem_arg)
1494{
1495#define FLD(f) abuf->fields.sfmt_empty.f
1496  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1497  const IDESC * UNUSED idesc = abuf->idesc;
1498  int cycles = 0;
1499  {
1500    int referenced = 0;
1501    int UNUSED insn_referenced = abuf->written;
1502    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1503  }
1504  return cycles;
1505#undef FLD
1506}
1507
1508static int
1509model_iq2000_lulck (SIM_CPU *current_cpu, void *sem_arg)
1510{
1511#define FLD(f) abuf->fields.sfmt_empty.f
1512  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1513  const IDESC * UNUSED idesc = abuf->idesc;
1514  int cycles = 0;
1515  {
1516    int referenced = 0;
1517    int UNUSED insn_referenced = abuf->written;
1518    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1519  }
1520  return cycles;
1521#undef FLD
1522}
1523
1524static int
1525model_iq2000_lum32 (SIM_CPU *current_cpu, void *sem_arg)
1526{
1527#define FLD(f) abuf->fields.sfmt_empty.f
1528  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1529  const IDESC * UNUSED idesc = abuf->idesc;
1530  int cycles = 0;
1531  {
1532    int referenced = 0;
1533    int UNUSED insn_referenced = abuf->written;
1534    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1535  }
1536  return cycles;
1537#undef FLD
1538}
1539
1540static int
1541model_iq2000_lum32l (SIM_CPU *current_cpu, void *sem_arg)
1542{
1543#define FLD(f) abuf->fields.sfmt_empty.f
1544  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1545  const IDESC * UNUSED idesc = abuf->idesc;
1546  int cycles = 0;
1547  {
1548    int referenced = 0;
1549    int UNUSED insn_referenced = abuf->written;
1550    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1551  }
1552  return cycles;
1553#undef FLD
1554}
1555
1556static int
1557model_iq2000_lum64 (SIM_CPU *current_cpu, void *sem_arg)
1558{
1559#define FLD(f) abuf->fields.sfmt_empty.f
1560  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1561  const IDESC * UNUSED idesc = abuf->idesc;
1562  int cycles = 0;
1563  {
1564    int referenced = 0;
1565    int UNUSED insn_referenced = abuf->written;
1566    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1567  }
1568  return cycles;
1569#undef FLD
1570}
1571
1572static int
1573model_iq2000_lum64l (SIM_CPU *current_cpu, void *sem_arg)
1574{
1575#define FLD(f) abuf->fields.sfmt_empty.f
1576  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1577  const IDESC * UNUSED idesc = abuf->idesc;
1578  int cycles = 0;
1579  {
1580    int referenced = 0;
1581    int UNUSED insn_referenced = abuf->written;
1582    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1583  }
1584  return cycles;
1585#undef FLD
1586}
1587
1588static int
1589model_iq2000_lur (SIM_CPU *current_cpu, void *sem_arg)
1590{
1591#define FLD(f) abuf->fields.sfmt_empty.f
1592  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1593  const IDESC * UNUSED idesc = abuf->idesc;
1594  int cycles = 0;
1595  {
1596    int referenced = 0;
1597    int UNUSED insn_referenced = abuf->written;
1598    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1599  }
1600  return cycles;
1601#undef FLD
1602}
1603
1604static int
1605model_iq2000_lurl (SIM_CPU *current_cpu, void *sem_arg)
1606{
1607#define FLD(f) abuf->fields.sfmt_empty.f
1608  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1609  const IDESC * UNUSED idesc = abuf->idesc;
1610  int cycles = 0;
1611  {
1612    int referenced = 0;
1613    int UNUSED insn_referenced = abuf->written;
1614    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1615  }
1616  return cycles;
1617#undef FLD
1618}
1619
1620static int
1621model_iq2000_luulck (SIM_CPU *current_cpu, void *sem_arg)
1622{
1623#define FLD(f) abuf->fields.sfmt_empty.f
1624  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1625  const IDESC * UNUSED idesc = abuf->idesc;
1626  int cycles = 0;
1627  {
1628    int referenced = 0;
1629    int UNUSED insn_referenced = abuf->written;
1630    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1631  }
1632  return cycles;
1633#undef FLD
1634}
1635
1636static int
1637model_iq2000_mfc0 (SIM_CPU *current_cpu, void *sem_arg)
1638{
1639#define FLD(f) abuf->fields.sfmt_empty.f
1640  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1641  const IDESC * UNUSED idesc = abuf->idesc;
1642  int cycles = 0;
1643  {
1644    int referenced = 0;
1645    int UNUSED insn_referenced = abuf->written;
1646    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1647  }
1648  return cycles;
1649#undef FLD
1650}
1651
1652static int
1653model_iq2000_mfc1 (SIM_CPU *current_cpu, void *sem_arg)
1654{
1655#define FLD(f) abuf->fields.sfmt_empty.f
1656  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1657  const IDESC * UNUSED idesc = abuf->idesc;
1658  int cycles = 0;
1659  {
1660    int referenced = 0;
1661    int UNUSED insn_referenced = abuf->written;
1662    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1663  }
1664  return cycles;
1665#undef FLD
1666}
1667
1668static int
1669model_iq2000_mfc2 (SIM_CPU *current_cpu, void *sem_arg)
1670{
1671#define FLD(f) abuf->fields.sfmt_empty.f
1672  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1673  const IDESC * UNUSED idesc = abuf->idesc;
1674  int cycles = 0;
1675  {
1676    int referenced = 0;
1677    int UNUSED insn_referenced = abuf->written;
1678    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1679  }
1680  return cycles;
1681#undef FLD
1682}
1683
1684static int
1685model_iq2000_mfc3 (SIM_CPU *current_cpu, void *sem_arg)
1686{
1687#define FLD(f) abuf->fields.sfmt_empty.f
1688  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1689  const IDESC * UNUSED idesc = abuf->idesc;
1690  int cycles = 0;
1691  {
1692    int referenced = 0;
1693    int UNUSED insn_referenced = abuf->written;
1694    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1695  }
1696  return cycles;
1697#undef FLD
1698}
1699
1700static int
1701model_iq2000_mtc0 (SIM_CPU *current_cpu, void *sem_arg)
1702{
1703#define FLD(f) abuf->fields.sfmt_empty.f
1704  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1705  const IDESC * UNUSED idesc = abuf->idesc;
1706  int cycles = 0;
1707  {
1708    int referenced = 0;
1709    int UNUSED insn_referenced = abuf->written;
1710    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1711  }
1712  return cycles;
1713#undef FLD
1714}
1715
1716static int
1717model_iq2000_mtc1 (SIM_CPU *current_cpu, void *sem_arg)
1718{
1719#define FLD(f) abuf->fields.sfmt_empty.f
1720  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1721  const IDESC * UNUSED idesc = abuf->idesc;
1722  int cycles = 0;
1723  {
1724    int referenced = 0;
1725    int UNUSED insn_referenced = abuf->written;
1726    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1727  }
1728  return cycles;
1729#undef FLD
1730}
1731
1732static int
1733model_iq2000_mtc2 (SIM_CPU *current_cpu, void *sem_arg)
1734{
1735#define FLD(f) abuf->fields.sfmt_empty.f
1736  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1737  const IDESC * UNUSED idesc = abuf->idesc;
1738  int cycles = 0;
1739  {
1740    int referenced = 0;
1741    int UNUSED insn_referenced = abuf->written;
1742    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1743  }
1744  return cycles;
1745#undef FLD
1746}
1747
1748static int
1749model_iq2000_mtc3 (SIM_CPU *current_cpu, void *sem_arg)
1750{
1751#define FLD(f) abuf->fields.sfmt_empty.f
1752  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1753  const IDESC * UNUSED idesc = abuf->idesc;
1754  int cycles = 0;
1755  {
1756    int referenced = 0;
1757    int UNUSED insn_referenced = abuf->written;
1758    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1759  }
1760  return cycles;
1761#undef FLD
1762}
1763
1764static int
1765model_iq2000_pkrl (SIM_CPU *current_cpu, void *sem_arg)
1766{
1767#define FLD(f) abuf->fields.sfmt_empty.f
1768  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1769  const IDESC * UNUSED idesc = abuf->idesc;
1770  int cycles = 0;
1771  {
1772    int referenced = 0;
1773    int UNUSED insn_referenced = abuf->written;
1774    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1775  }
1776  return cycles;
1777#undef FLD
1778}
1779
1780static int
1781model_iq2000_pkrlr1 (SIM_CPU *current_cpu, void *sem_arg)
1782{
1783#define FLD(f) abuf->fields.sfmt_empty.f
1784  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1785  const IDESC * UNUSED idesc = abuf->idesc;
1786  int cycles = 0;
1787  {
1788    int referenced = 0;
1789    int UNUSED insn_referenced = abuf->written;
1790    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1791  }
1792  return cycles;
1793#undef FLD
1794}
1795
1796static int
1797model_iq2000_pkrlr30 (SIM_CPU *current_cpu, void *sem_arg)
1798{
1799#define FLD(f) abuf->fields.sfmt_empty.f
1800  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1801  const IDESC * UNUSED idesc = abuf->idesc;
1802  int cycles = 0;
1803  {
1804    int referenced = 0;
1805    int UNUSED insn_referenced = abuf->written;
1806    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1807  }
1808  return cycles;
1809#undef FLD
1810}
1811
1812static int
1813model_iq2000_rb (SIM_CPU *current_cpu, void *sem_arg)
1814{
1815#define FLD(f) abuf->fields.sfmt_empty.f
1816  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1817  const IDESC * UNUSED idesc = abuf->idesc;
1818  int cycles = 0;
1819  {
1820    int referenced = 0;
1821    int UNUSED insn_referenced = abuf->written;
1822    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1823  }
1824  return cycles;
1825#undef FLD
1826}
1827
1828static int
1829model_iq2000_rbr1 (SIM_CPU *current_cpu, void *sem_arg)
1830{
1831#define FLD(f) abuf->fields.sfmt_empty.f
1832  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1833  const IDESC * UNUSED idesc = abuf->idesc;
1834  int cycles = 0;
1835  {
1836    int referenced = 0;
1837    int UNUSED insn_referenced = abuf->written;
1838    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1839  }
1840  return cycles;
1841#undef FLD
1842}
1843
1844static int
1845model_iq2000_rbr30 (SIM_CPU *current_cpu, void *sem_arg)
1846{
1847#define FLD(f) abuf->fields.sfmt_empty.f
1848  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1849  const IDESC * UNUSED idesc = abuf->idesc;
1850  int cycles = 0;
1851  {
1852    int referenced = 0;
1853    int UNUSED insn_referenced = abuf->written;
1854    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1855  }
1856  return cycles;
1857#undef FLD
1858}
1859
1860static int
1861model_iq2000_rfe (SIM_CPU *current_cpu, void *sem_arg)
1862{
1863#define FLD(f) abuf->fields.sfmt_empty.f
1864  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1865  const IDESC * UNUSED idesc = abuf->idesc;
1866  int cycles = 0;
1867  {
1868    int referenced = 0;
1869    int UNUSED insn_referenced = abuf->written;
1870    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1871  }
1872  return cycles;
1873#undef FLD
1874}
1875
1876static int
1877model_iq2000_rx (SIM_CPU *current_cpu, void *sem_arg)
1878{
1879#define FLD(f) abuf->fields.sfmt_empty.f
1880  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1881  const IDESC * UNUSED idesc = abuf->idesc;
1882  int cycles = 0;
1883  {
1884    int referenced = 0;
1885    int UNUSED insn_referenced = abuf->written;
1886    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1887  }
1888  return cycles;
1889#undef FLD
1890}
1891
1892static int
1893model_iq2000_rxr1 (SIM_CPU *current_cpu, void *sem_arg)
1894{
1895#define FLD(f) abuf->fields.sfmt_empty.f
1896  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1897  const IDESC * UNUSED idesc = abuf->idesc;
1898  int cycles = 0;
1899  {
1900    int referenced = 0;
1901    int UNUSED insn_referenced = abuf->written;
1902    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1903  }
1904  return cycles;
1905#undef FLD
1906}
1907
1908static int
1909model_iq2000_rxr30 (SIM_CPU *current_cpu, void *sem_arg)
1910{
1911#define FLD(f) abuf->fields.sfmt_empty.f
1912  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1913  const IDESC * UNUSED idesc = abuf->idesc;
1914  int cycles = 0;
1915  {
1916    int referenced = 0;
1917    int UNUSED insn_referenced = abuf->written;
1918    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1919  }
1920  return cycles;
1921#undef FLD
1922}
1923
1924static int
1925model_iq2000_sleep (SIM_CPU *current_cpu, void *sem_arg)
1926{
1927#define FLD(f) abuf->fields.sfmt_empty.f
1928  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1929  const IDESC * UNUSED idesc = abuf->idesc;
1930  int cycles = 0;
1931  {
1932    int referenced = 0;
1933    int UNUSED insn_referenced = abuf->written;
1934    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1935  }
1936  return cycles;
1937#undef FLD
1938}
1939
1940static int
1941model_iq2000_srrd (SIM_CPU *current_cpu, void *sem_arg)
1942{
1943#define FLD(f) abuf->fields.sfmt_empty.f
1944  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1945  const IDESC * UNUSED idesc = abuf->idesc;
1946  int cycles = 0;
1947  {
1948    int referenced = 0;
1949    int UNUSED insn_referenced = abuf->written;
1950    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1951  }
1952  return cycles;
1953#undef FLD
1954}
1955
1956static int
1957model_iq2000_srrdl (SIM_CPU *current_cpu, void *sem_arg)
1958{
1959#define FLD(f) abuf->fields.sfmt_empty.f
1960  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1961  const IDESC * UNUSED idesc = abuf->idesc;
1962  int cycles = 0;
1963  {
1964    int referenced = 0;
1965    int UNUSED insn_referenced = abuf->written;
1966    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1967  }
1968  return cycles;
1969#undef FLD
1970}
1971
1972static int
1973model_iq2000_srulck (SIM_CPU *current_cpu, void *sem_arg)
1974{
1975#define FLD(f) abuf->fields.sfmt_empty.f
1976  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1977  const IDESC * UNUSED idesc = abuf->idesc;
1978  int cycles = 0;
1979  {
1980    int referenced = 0;
1981    int UNUSED insn_referenced = abuf->written;
1982    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1983  }
1984  return cycles;
1985#undef FLD
1986}
1987
1988static int
1989model_iq2000_srwr (SIM_CPU *current_cpu, void *sem_arg)
1990{
1991#define FLD(f) abuf->fields.sfmt_empty.f
1992  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1993  const IDESC * UNUSED idesc = abuf->idesc;
1994  int cycles = 0;
1995  {
1996    int referenced = 0;
1997    int UNUSED insn_referenced = abuf->written;
1998    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1999  }
2000  return cycles;
2001#undef FLD
2002}
2003
2004static int
2005model_iq2000_srwru (SIM_CPU *current_cpu, void *sem_arg)
2006{
2007#define FLD(f) abuf->fields.sfmt_empty.f
2008  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2009  const IDESC * UNUSED idesc = abuf->idesc;
2010  int cycles = 0;
2011  {
2012    int referenced = 0;
2013    int UNUSED insn_referenced = abuf->written;
2014    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2015  }
2016  return cycles;
2017#undef FLD
2018}
2019
2020static int
2021model_iq2000_trapqfl (SIM_CPU *current_cpu, void *sem_arg)
2022{
2023#define FLD(f) abuf->fields.sfmt_empty.f
2024  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2025  const IDESC * UNUSED idesc = abuf->idesc;
2026  int cycles = 0;
2027  {
2028    int referenced = 0;
2029    int UNUSED insn_referenced = abuf->written;
2030    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2031  }
2032  return cycles;
2033#undef FLD
2034}
2035
2036static int
2037model_iq2000_trapqne (SIM_CPU *current_cpu, void *sem_arg)
2038{
2039#define FLD(f) abuf->fields.sfmt_empty.f
2040  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2041  const IDESC * UNUSED idesc = abuf->idesc;
2042  int cycles = 0;
2043  {
2044    int referenced = 0;
2045    int UNUSED insn_referenced = abuf->written;
2046    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2047  }
2048  return cycles;
2049#undef FLD
2050}
2051
2052static int
2053model_iq2000_traprel (SIM_CPU *current_cpu, void *sem_arg)
2054{
2055#define FLD(f) abuf->fields.sfmt_empty.f
2056  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2057  const IDESC * UNUSED idesc = abuf->idesc;
2058  int cycles = 0;
2059  {
2060    int referenced = 0;
2061    int UNUSED insn_referenced = abuf->written;
2062    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2063  }
2064  return cycles;
2065#undef FLD
2066}
2067
2068static int
2069model_iq2000_wb (SIM_CPU *current_cpu, void *sem_arg)
2070{
2071#define FLD(f) abuf->fields.sfmt_empty.f
2072  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2073  const IDESC * UNUSED idesc = abuf->idesc;
2074  int cycles = 0;
2075  {
2076    int referenced = 0;
2077    int UNUSED insn_referenced = abuf->written;
2078    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2079  }
2080  return cycles;
2081#undef FLD
2082}
2083
2084static int
2085model_iq2000_wbu (SIM_CPU *current_cpu, void *sem_arg)
2086{
2087#define FLD(f) abuf->fields.sfmt_empty.f
2088  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2089  const IDESC * UNUSED idesc = abuf->idesc;
2090  int cycles = 0;
2091  {
2092    int referenced = 0;
2093    int UNUSED insn_referenced = abuf->written;
2094    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2095  }
2096  return cycles;
2097#undef FLD
2098}
2099
2100static int
2101model_iq2000_wbr1 (SIM_CPU *current_cpu, void *sem_arg)
2102{
2103#define FLD(f) abuf->fields.sfmt_empty.f
2104  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2105  const IDESC * UNUSED idesc = abuf->idesc;
2106  int cycles = 0;
2107  {
2108    int referenced = 0;
2109    int UNUSED insn_referenced = abuf->written;
2110    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2111  }
2112  return cycles;
2113#undef FLD
2114}
2115
2116static int
2117model_iq2000_wbr1u (SIM_CPU *current_cpu, void *sem_arg)
2118{
2119#define FLD(f) abuf->fields.sfmt_empty.f
2120  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2121  const IDESC * UNUSED idesc = abuf->idesc;
2122  int cycles = 0;
2123  {
2124    int referenced = 0;
2125    int UNUSED insn_referenced = abuf->written;
2126    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2127  }
2128  return cycles;
2129#undef FLD
2130}
2131
2132static int
2133model_iq2000_wbr30 (SIM_CPU *current_cpu, void *sem_arg)
2134{
2135#define FLD(f) abuf->fields.sfmt_empty.f
2136  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2137  const IDESC * UNUSED idesc = abuf->idesc;
2138  int cycles = 0;
2139  {
2140    int referenced = 0;
2141    int UNUSED insn_referenced = abuf->written;
2142    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2143  }
2144  return cycles;
2145#undef FLD
2146}
2147
2148static int
2149model_iq2000_wbr30u (SIM_CPU *current_cpu, void *sem_arg)
2150{
2151#define FLD(f) abuf->fields.sfmt_empty.f
2152  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2153  const IDESC * UNUSED idesc = abuf->idesc;
2154  int cycles = 0;
2155  {
2156    int referenced = 0;
2157    int UNUSED insn_referenced = abuf->written;
2158    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2159  }
2160  return cycles;
2161#undef FLD
2162}
2163
2164static int
2165model_iq2000_wx (SIM_CPU *current_cpu, void *sem_arg)
2166{
2167#define FLD(f) abuf->fields.sfmt_empty.f
2168  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2169  const IDESC * UNUSED idesc = abuf->idesc;
2170  int cycles = 0;
2171  {
2172    int referenced = 0;
2173    int UNUSED insn_referenced = abuf->written;
2174    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2175  }
2176  return cycles;
2177#undef FLD
2178}
2179
2180static int
2181model_iq2000_wxu (SIM_CPU *current_cpu, void *sem_arg)
2182{
2183#define FLD(f) abuf->fields.sfmt_empty.f
2184  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2185  const IDESC * UNUSED idesc = abuf->idesc;
2186  int cycles = 0;
2187  {
2188    int referenced = 0;
2189    int UNUSED insn_referenced = abuf->written;
2190    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2191  }
2192  return cycles;
2193#undef FLD
2194}
2195
2196static int
2197model_iq2000_wxr1 (SIM_CPU *current_cpu, void *sem_arg)
2198{
2199#define FLD(f) abuf->fields.sfmt_empty.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    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2207  }
2208  return cycles;
2209#undef FLD
2210}
2211
2212static int
2213model_iq2000_wxr1u (SIM_CPU *current_cpu, void *sem_arg)
2214{
2215#define FLD(f) abuf->fields.sfmt_empty.f
2216  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2217  const IDESC * UNUSED idesc = abuf->idesc;
2218  int cycles = 0;
2219  {
2220    int referenced = 0;
2221    int UNUSED insn_referenced = abuf->written;
2222    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2223  }
2224  return cycles;
2225#undef FLD
2226}
2227
2228static int
2229model_iq2000_wxr30 (SIM_CPU *current_cpu, void *sem_arg)
2230{
2231#define FLD(f) abuf->fields.sfmt_empty.f
2232  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2233  const IDESC * UNUSED idesc = abuf->idesc;
2234  int cycles = 0;
2235  {
2236    int referenced = 0;
2237    int UNUSED insn_referenced = abuf->written;
2238    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2239  }
2240  return cycles;
2241#undef FLD
2242}
2243
2244static int
2245model_iq2000_wxr30u (SIM_CPU *current_cpu, void *sem_arg)
2246{
2247#define FLD(f) abuf->fields.sfmt_empty.f
2248  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2249  const IDESC * UNUSED idesc = abuf->idesc;
2250  int cycles = 0;
2251  {
2252    int referenced = 0;
2253    int UNUSED insn_referenced = abuf->written;
2254    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2255  }
2256  return cycles;
2257#undef FLD
2258}
2259
2260static int
2261model_iq2000_ldw (SIM_CPU *current_cpu, void *sem_arg)
2262{
2263#define FLD(f) abuf->fields.sfmt_addi.f
2264  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2265  const IDESC * UNUSED idesc = abuf->idesc;
2266  int cycles = 0;
2267  {
2268    int referenced = 0;
2269    int UNUSED insn_referenced = abuf->written;
2270    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2271  }
2272  return cycles;
2273#undef FLD
2274}
2275
2276static int
2277model_iq2000_sdw (SIM_CPU *current_cpu, void *sem_arg)
2278{
2279#define FLD(f) abuf->fields.sfmt_addi.f
2280  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2281  const IDESC * UNUSED idesc = abuf->idesc;
2282  int cycles = 0;
2283  {
2284    int referenced = 0;
2285    int UNUSED insn_referenced = abuf->written;
2286    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2287  }
2288  return cycles;
2289#undef FLD
2290}
2291
2292static int
2293model_iq2000_j (SIM_CPU *current_cpu, void *sem_arg)
2294{
2295#define FLD(f) abuf->fields.sfmt_j.f
2296  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2297  const IDESC * UNUSED idesc = abuf->idesc;
2298  int cycles = 0;
2299  {
2300    int referenced = 0;
2301    int UNUSED insn_referenced = abuf->written;
2302    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2303  }
2304  return cycles;
2305#undef FLD
2306}
2307
2308static int
2309model_iq2000_jal (SIM_CPU *current_cpu, void *sem_arg)
2310{
2311#define FLD(f) abuf->fields.sfmt_j.f
2312  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2313  const IDESC * UNUSED idesc = abuf->idesc;
2314  int cycles = 0;
2315  {
2316    int referenced = 0;
2317    int UNUSED insn_referenced = abuf->written;
2318    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2319  }
2320  return cycles;
2321#undef FLD
2322}
2323
2324static int
2325model_iq2000_bmb (SIM_CPU *current_cpu, void *sem_arg)
2326{
2327#define FLD(f) abuf->fields.sfmt_bbi.f
2328  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2329  const IDESC * UNUSED idesc = abuf->idesc;
2330  int cycles = 0;
2331  {
2332    int referenced = 0;
2333    int UNUSED insn_referenced = abuf->written;
2334    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2335  }
2336  return cycles;
2337#undef FLD
2338}
2339
2340/* We assume UNIT_NONE == 0 because the tables don't always terminate
2341   entries with it.  */
2342
2343/* Model timing data for `iq2000'.  */
2344
2345static const INSN_TIMING iq2000_timing[] = {
2346  { IQ2000BF_INSN_X_INVALID, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2347  { IQ2000BF_INSN_X_AFTER, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2348  { IQ2000BF_INSN_X_BEFORE, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2349  { IQ2000BF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2350  { IQ2000BF_INSN_X_CHAIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2351  { IQ2000BF_INSN_X_BEGIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2352  { IQ2000BF_INSN_ADD, model_iq2000_add, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2353  { IQ2000BF_INSN_ADDI, model_iq2000_addi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2354  { IQ2000BF_INSN_ADDIU, model_iq2000_addiu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2355  { IQ2000BF_INSN_ADDU, model_iq2000_addu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2356  { IQ2000BF_INSN_ADO16, model_iq2000_ado16, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2357  { IQ2000BF_INSN_AND, model_iq2000_and, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2358  { IQ2000BF_INSN_ANDI, model_iq2000_andi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2359  { IQ2000BF_INSN_ANDOI, model_iq2000_andoi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2360  { IQ2000BF_INSN_NOR, model_iq2000_nor, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2361  { IQ2000BF_INSN_OR, model_iq2000_or, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2362  { IQ2000BF_INSN_ORI, model_iq2000_ori, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2363  { IQ2000BF_INSN_RAM, model_iq2000_ram, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2364  { IQ2000BF_INSN_SLL, model_iq2000_sll, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2365  { IQ2000BF_INSN_SLLV, model_iq2000_sllv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2366  { IQ2000BF_INSN_SLMV, model_iq2000_slmv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2367  { IQ2000BF_INSN_SLT, model_iq2000_slt, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2368  { IQ2000BF_INSN_SLTI, model_iq2000_slti, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2369  { IQ2000BF_INSN_SLTIU, model_iq2000_sltiu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2370  { IQ2000BF_INSN_SLTU, model_iq2000_sltu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2371  { IQ2000BF_INSN_SRA, model_iq2000_sra, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2372  { IQ2000BF_INSN_SRAV, model_iq2000_srav, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2373  { IQ2000BF_INSN_SRL, model_iq2000_srl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2374  { IQ2000BF_INSN_SRLV, model_iq2000_srlv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2375  { IQ2000BF_INSN_SRMV, model_iq2000_srmv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2376  { IQ2000BF_INSN_SUB, model_iq2000_sub, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2377  { IQ2000BF_INSN_SUBU, model_iq2000_subu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2378  { IQ2000BF_INSN_XOR, model_iq2000_xor, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2379  { IQ2000BF_INSN_XORI, model_iq2000_xori, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2380  { IQ2000BF_INSN_BBI, model_iq2000_bbi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2381  { IQ2000BF_INSN_BBIN, model_iq2000_bbin, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2382  { IQ2000BF_INSN_BBV, model_iq2000_bbv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2383  { IQ2000BF_INSN_BBVN, model_iq2000_bbvn, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2384  { IQ2000BF_INSN_BEQ, model_iq2000_beq, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2385  { IQ2000BF_INSN_BEQL, model_iq2000_beql, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2386  { IQ2000BF_INSN_BGEZ, model_iq2000_bgez, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2387  { IQ2000BF_INSN_BGEZAL, model_iq2000_bgezal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2388  { IQ2000BF_INSN_BGEZALL, model_iq2000_bgezall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2389  { IQ2000BF_INSN_BGEZL, model_iq2000_bgezl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2390  { IQ2000BF_INSN_BLTZ, model_iq2000_bltz, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2391  { IQ2000BF_INSN_BLTZL, model_iq2000_bltzl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2392  { IQ2000BF_INSN_BLTZAL, model_iq2000_bltzal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2393  { IQ2000BF_INSN_BLTZALL, model_iq2000_bltzall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2394  { IQ2000BF_INSN_BMB0, model_iq2000_bmb0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2395  { IQ2000BF_INSN_BMB1, model_iq2000_bmb1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2396  { IQ2000BF_INSN_BMB2, model_iq2000_bmb2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2397  { IQ2000BF_INSN_BMB3, model_iq2000_bmb3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2398  { IQ2000BF_INSN_BNE, model_iq2000_bne, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2399  { IQ2000BF_INSN_BNEL, model_iq2000_bnel, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2400  { IQ2000BF_INSN_JALR, model_iq2000_jalr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2401  { IQ2000BF_INSN_JR, model_iq2000_jr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2402  { IQ2000BF_INSN_LB, model_iq2000_lb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2403  { IQ2000BF_INSN_LBU, model_iq2000_lbu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2404  { IQ2000BF_INSN_LH, model_iq2000_lh, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2405  { IQ2000BF_INSN_LHU, model_iq2000_lhu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2406  { IQ2000BF_INSN_LUI, model_iq2000_lui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2407  { IQ2000BF_INSN_LW, model_iq2000_lw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2408  { IQ2000BF_INSN_SB, model_iq2000_sb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2409  { IQ2000BF_INSN_SH, model_iq2000_sh, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2410  { IQ2000BF_INSN_SW, model_iq2000_sw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2411  { IQ2000BF_INSN_BREAK, model_iq2000_break, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2412  { IQ2000BF_INSN_SYSCALL, model_iq2000_syscall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2413  { IQ2000BF_INSN_ANDOUI, model_iq2000_andoui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2414  { IQ2000BF_INSN_ORUI, model_iq2000_orui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2415  { IQ2000BF_INSN_BGTZ, model_iq2000_bgtz, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2416  { IQ2000BF_INSN_BGTZL, model_iq2000_bgtzl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2417  { IQ2000BF_INSN_BLEZ, model_iq2000_blez, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2418  { IQ2000BF_INSN_BLEZL, model_iq2000_blezl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2419  { IQ2000BF_INSN_MRGB, model_iq2000_mrgb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2420  { IQ2000BF_INSN_BCTXT, model_iq2000_bctxt, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2421  { IQ2000BF_INSN_BC0F, model_iq2000_bc0f, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2422  { IQ2000BF_INSN_BC0FL, model_iq2000_bc0fl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2423  { IQ2000BF_INSN_BC3F, model_iq2000_bc3f, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2424  { IQ2000BF_INSN_BC3FL, model_iq2000_bc3fl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2425  { IQ2000BF_INSN_BC0T, model_iq2000_bc0t, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2426  { IQ2000BF_INSN_BC0TL, model_iq2000_bc0tl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2427  { IQ2000BF_INSN_BC3T, model_iq2000_bc3t, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2428  { IQ2000BF_INSN_BC3TL, model_iq2000_bc3tl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2429  { IQ2000BF_INSN_CFC0, model_iq2000_cfc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2430  { IQ2000BF_INSN_CFC1, model_iq2000_cfc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2431  { IQ2000BF_INSN_CFC2, model_iq2000_cfc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2432  { IQ2000BF_INSN_CFC3, model_iq2000_cfc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2433  { IQ2000BF_INSN_CHKHDR, model_iq2000_chkhdr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2434  { IQ2000BF_INSN_CTC0, model_iq2000_ctc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2435  { IQ2000BF_INSN_CTC1, model_iq2000_ctc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2436  { IQ2000BF_INSN_CTC2, model_iq2000_ctc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2437  { IQ2000BF_INSN_CTC3, model_iq2000_ctc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2438  { IQ2000BF_INSN_JCR, model_iq2000_jcr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2439  { IQ2000BF_INSN_LUC32, model_iq2000_luc32, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2440  { IQ2000BF_INSN_LUC32L, model_iq2000_luc32l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2441  { IQ2000BF_INSN_LUC64, model_iq2000_luc64, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2442  { IQ2000BF_INSN_LUC64L, model_iq2000_luc64l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2443  { IQ2000BF_INSN_LUK, model_iq2000_luk, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2444  { IQ2000BF_INSN_LULCK, model_iq2000_lulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2445  { IQ2000BF_INSN_LUM32, model_iq2000_lum32, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2446  { IQ2000BF_INSN_LUM32L, model_iq2000_lum32l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2447  { IQ2000BF_INSN_LUM64, model_iq2000_lum64, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2448  { IQ2000BF_INSN_LUM64L, model_iq2000_lum64l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2449  { IQ2000BF_INSN_LUR, model_iq2000_lur, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2450  { IQ2000BF_INSN_LURL, model_iq2000_lurl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2451  { IQ2000BF_INSN_LUULCK, model_iq2000_luulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2452  { IQ2000BF_INSN_MFC0, model_iq2000_mfc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2453  { IQ2000BF_INSN_MFC1, model_iq2000_mfc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2454  { IQ2000BF_INSN_MFC2, model_iq2000_mfc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2455  { IQ2000BF_INSN_MFC3, model_iq2000_mfc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2456  { IQ2000BF_INSN_MTC0, model_iq2000_mtc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2457  { IQ2000BF_INSN_MTC1, model_iq2000_mtc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2458  { IQ2000BF_INSN_MTC2, model_iq2000_mtc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2459  { IQ2000BF_INSN_MTC3, model_iq2000_mtc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2460  { IQ2000BF_INSN_PKRL, model_iq2000_pkrl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2461  { IQ2000BF_INSN_PKRLR1, model_iq2000_pkrlr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2462  { IQ2000BF_INSN_PKRLR30, model_iq2000_pkrlr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2463  { IQ2000BF_INSN_RB, model_iq2000_rb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2464  { IQ2000BF_INSN_RBR1, model_iq2000_rbr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2465  { IQ2000BF_INSN_RBR30, model_iq2000_rbr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2466  { IQ2000BF_INSN_RFE, model_iq2000_rfe, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2467  { IQ2000BF_INSN_RX, model_iq2000_rx, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2468  { IQ2000BF_INSN_RXR1, model_iq2000_rxr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2469  { IQ2000BF_INSN_RXR30, model_iq2000_rxr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2470  { IQ2000BF_INSN_SLEEP, model_iq2000_sleep, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2471  { IQ2000BF_INSN_SRRD, model_iq2000_srrd, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2472  { IQ2000BF_INSN_SRRDL, model_iq2000_srrdl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2473  { IQ2000BF_INSN_SRULCK, model_iq2000_srulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2474  { IQ2000BF_INSN_SRWR, model_iq2000_srwr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2475  { IQ2000BF_INSN_SRWRU, model_iq2000_srwru, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2476  { IQ2000BF_INSN_TRAPQFL, model_iq2000_trapqfl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2477  { IQ2000BF_INSN_TRAPQNE, model_iq2000_trapqne, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2478  { IQ2000BF_INSN_TRAPREL, model_iq2000_traprel, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2479  { IQ2000BF_INSN_WB, model_iq2000_wb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2480  { IQ2000BF_INSN_WBU, model_iq2000_wbu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2481  { IQ2000BF_INSN_WBR1, model_iq2000_wbr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2482  { IQ2000BF_INSN_WBR1U, model_iq2000_wbr1u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2483  { IQ2000BF_INSN_WBR30, model_iq2000_wbr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2484  { IQ2000BF_INSN_WBR30U, model_iq2000_wbr30u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2485  { IQ2000BF_INSN_WX, model_iq2000_wx, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2486  { IQ2000BF_INSN_WXU, model_iq2000_wxu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2487  { IQ2000BF_INSN_WXR1, model_iq2000_wxr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2488  { IQ2000BF_INSN_WXR1U, model_iq2000_wxr1u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2489  { IQ2000BF_INSN_WXR30, model_iq2000_wxr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2490  { IQ2000BF_INSN_WXR30U, model_iq2000_wxr30u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2491  { IQ2000BF_INSN_LDW, model_iq2000_ldw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2492  { IQ2000BF_INSN_SDW, model_iq2000_sdw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2493  { IQ2000BF_INSN_J, model_iq2000_j, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2494  { IQ2000BF_INSN_JAL, model_iq2000_jal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2495  { IQ2000BF_INSN_BMB, model_iq2000_bmb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2496};
2497
2498#endif /* WITH_PROFILE_MODEL_P */
2499
2500static void
2501iq2000_model_init (SIM_CPU *cpu)
2502{
2503  CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_IQ2000_DATA));
2504}
2505
2506#if WITH_PROFILE_MODEL_P
2507#define TIMING_DATA(td) td
2508#else
2509#define TIMING_DATA(td) 0
2510#endif
2511
2512static const SIM_MODEL iq2000_models[] =
2513{
2514  { "iq2000", & iq2000_mach, MODEL_IQ2000, TIMING_DATA (& iq2000_timing[0]), iq2000_model_init },
2515  { 0 }
2516};
2517
2518/* The properties of this cpu's implementation.  */
2519
2520static const SIM_MACH_IMP_PROPERTIES iq2000bf_imp_properties =
2521{
2522  sizeof (SIM_CPU),
2523#if WITH_SCACHE
2524  sizeof (SCACHE)
2525#else
2526  0
2527#endif
2528};
2529
2530
2531static void
2532iq2000bf_prepare_run (SIM_CPU *cpu)
2533{
2534  if (CPU_IDESC (cpu) == NULL)
2535    iq2000bf_init_idesc_table (cpu);
2536}
2537
2538static const CGEN_INSN *
2539iq2000bf_get_idata (SIM_CPU *cpu, int inum)
2540{
2541  return CPU_IDESC (cpu) [inum].idata;
2542}
2543
2544static void
2545iq2000_init_cpu (SIM_CPU *cpu)
2546{
2547  CPU_REG_FETCH (cpu) = iq2000bf_fetch_register;
2548  CPU_REG_STORE (cpu) = iq2000bf_store_register;
2549  CPU_PC_FETCH (cpu) = iq2000bf_h_pc_get;
2550  CPU_PC_STORE (cpu) = iq2000bf_h_pc_set;
2551  CPU_GET_IDATA (cpu) = iq2000bf_get_idata;
2552  CPU_MAX_INSNS (cpu) = IQ2000BF_INSN__MAX;
2553  CPU_INSN_NAME (cpu) = cgen_insn_name;
2554  CPU_FULL_ENGINE_FN (cpu) = iq2000bf_engine_run_full;
2555#if WITH_FAST
2556  CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_fast;
2557#else
2558  CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_full;
2559#endif
2560}
2561
2562const SIM_MACH iq2000_mach =
2563{
2564  "iq2000", "iq2000", MACH_IQ2000,
2565  32, 32, & iq2000_models[0], & iq2000bf_imp_properties,
2566  iq2000_init_cpu,
2567  iq2000bf_prepare_run
2568};
2569
2570