]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/iq2000/model.c
* arch.c: Regenerate.
[thirdparty/binutils-gdb.git] / sim / iq2000 / model.c
CommitLineData
edece237
CV
1/* Simulator model support for iq2000bf.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
6
7This file is part of the GNU simulators.
8
9This program is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
4744ac1b
JB
11the Free Software Foundation; either version 3 of the License, or
12(at your option) any later version.
edece237
CV
13
14This program is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
4744ac1b
JB
19You should have received a copy of the GNU General Public License
20along with this program. If not, see <http://www.gnu.org/licenses/>.
edece237
CV
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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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.fmt_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 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 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_BMB + 1;
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 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