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