include: Sync lto-symtab.h and plugin-api.h with GCC
[deliverable/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
b811d2c2 5Copyright 1996-2020 Free Software Foundation, Inc.
edece237
CV
6
7This file is part of the GNU simulators.
8
1a5691a5
DE
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.
edece237 13
1a5691a5
DE
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.
edece237 18
1a5691a5 19 You should have received a copy of the GNU General Public License along
51b318de 20 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{
2310652a 983#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 999#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1127#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1143#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1159#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1175#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1191#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1207#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1223#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1239#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1255#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1271#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1287#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1303#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1319#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1335#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1351#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1367#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1383#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1399#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1415#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1431#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1447#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1463#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1479#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1495#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1511#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1527#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1543#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1559#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1575#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1591#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1607#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1623#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1639#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1655#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1671#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1687#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1703#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1719#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1735#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1751#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1767#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1783#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1799#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1815#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1831#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1847#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1863#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1879#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1895#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1911#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1927#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1943#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1959#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1975#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 1991#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2007#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2023#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2039#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2055#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2071#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2087#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2103#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2119#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2135#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2151#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2167#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2183#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2199#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2215#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2231#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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{
2310652a 2247#define FLD(f) abuf->fields.sfmt_empty.f
edece237
CV
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
8a0ebee6 2512static const SIM_MODEL iq2000_models[] =
edece237
CV
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
8a0ebee6 2520static const SIM_MACH_IMP_PROPERTIES iq2000bf_imp_properties =
edece237
CV
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;
1a5691a5 2552 CPU_MAX_INSNS (cpu) = IQ2000BF_INSN__MAX;
edece237
CV
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
8a0ebee6 2562const SIM_MACH iq2000_mach =
edece237
CV
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
This page took 0.796945 seconds and 4 git commands to generate.