arm: Support pac_key_* register operand for MRS/MSR in Armv8.1-M Mainline
[binutils-gdb.git] / sim / iq2000 / model.c
blobef99c83de6da3eced7163b5696df11ac0c4d57d4
1 /* Simulator model support for iq2000bf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996-2024 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
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.
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.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
25 #define WANT_CPU iq2000bf
26 #define WANT_CPU_IQ2000BF
28 #include "sim-main.h"
30 /* The profiling data is recorded here, but is accessed via the profiling
31 mechanism. After all, this is information for profiling. */
33 #if WITH_PROFILE_MODEL_P
35 /* Model handlers for each insn. */
37 static int
38 model_iq2000_add (SIM_CPU *current_cpu, void *sem_arg)
40 #define FLD(f) abuf->fields.sfmt_mrgb.f
41 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
42 const IDESC * UNUSED idesc = abuf->idesc;
43 int cycles = 0;
45 int referenced = 0;
46 int UNUSED insn_referenced = abuf->written;
47 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
49 return cycles;
50 #undef FLD
53 static int
54 model_iq2000_addi (SIM_CPU *current_cpu, void *sem_arg)
56 #define FLD(f) abuf->fields.sfmt_addi.f
57 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
58 const IDESC * UNUSED idesc = abuf->idesc;
59 int cycles = 0;
61 int referenced = 0;
62 int UNUSED insn_referenced = abuf->written;
63 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
65 return cycles;
66 #undef FLD
69 static int
70 model_iq2000_addiu (SIM_CPU *current_cpu, void *sem_arg)
72 #define FLD(f) abuf->fields.sfmt_addi.f
73 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
74 const IDESC * UNUSED idesc = abuf->idesc;
75 int cycles = 0;
77 int referenced = 0;
78 int UNUSED insn_referenced = abuf->written;
79 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
81 return cycles;
82 #undef FLD
85 static int
86 model_iq2000_addu (SIM_CPU *current_cpu, void *sem_arg)
88 #define FLD(f) abuf->fields.sfmt_mrgb.f
89 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
90 const IDESC * UNUSED idesc = abuf->idesc;
91 int cycles = 0;
93 int referenced = 0;
94 int UNUSED insn_referenced = abuf->written;
95 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
97 return cycles;
98 #undef FLD
101 static int
102 model_iq2000_ado16 (SIM_CPU *current_cpu, void *sem_arg)
104 #define FLD(f) abuf->fields.sfmt_mrgb.f
105 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
106 const IDESC * UNUSED idesc = abuf->idesc;
107 int cycles = 0;
109 int referenced = 0;
110 int UNUSED insn_referenced = abuf->written;
111 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
113 return cycles;
114 #undef FLD
117 static int
118 model_iq2000_and (SIM_CPU *current_cpu, void *sem_arg)
120 #define FLD(f) abuf->fields.sfmt_mrgb.f
121 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
122 const IDESC * UNUSED idesc = abuf->idesc;
123 int cycles = 0;
125 int referenced = 0;
126 int UNUSED insn_referenced = abuf->written;
127 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
129 return cycles;
130 #undef FLD
133 static int
134 model_iq2000_andi (SIM_CPU *current_cpu, void *sem_arg)
136 #define FLD(f) abuf->fields.sfmt_addi.f
137 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
138 const IDESC * UNUSED idesc = abuf->idesc;
139 int cycles = 0;
141 int referenced = 0;
142 int UNUSED insn_referenced = abuf->written;
143 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
145 return cycles;
146 #undef FLD
149 static int
150 model_iq2000_andoi (SIM_CPU *current_cpu, void *sem_arg)
152 #define FLD(f) abuf->fields.sfmt_addi.f
153 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
154 const IDESC * UNUSED idesc = abuf->idesc;
155 int cycles = 0;
157 int referenced = 0;
158 int UNUSED insn_referenced = abuf->written;
159 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
161 return cycles;
162 #undef FLD
165 static int
166 model_iq2000_nor (SIM_CPU *current_cpu, void *sem_arg)
168 #define FLD(f) abuf->fields.sfmt_mrgb.f
169 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
170 const IDESC * UNUSED idesc = abuf->idesc;
171 int cycles = 0;
173 int referenced = 0;
174 int UNUSED insn_referenced = abuf->written;
175 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
177 return cycles;
178 #undef FLD
181 static int
182 model_iq2000_or (SIM_CPU *current_cpu, void *sem_arg)
184 #define FLD(f) abuf->fields.sfmt_mrgb.f
185 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
186 const IDESC * UNUSED idesc = abuf->idesc;
187 int cycles = 0;
189 int referenced = 0;
190 int UNUSED insn_referenced = abuf->written;
191 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
193 return cycles;
194 #undef FLD
197 static int
198 model_iq2000_ori (SIM_CPU *current_cpu, void *sem_arg)
200 #define FLD(f) abuf->fields.sfmt_addi.f
201 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
202 const IDESC * UNUSED idesc = abuf->idesc;
203 int cycles = 0;
205 int referenced = 0;
206 int UNUSED insn_referenced = abuf->written;
207 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
209 return cycles;
210 #undef FLD
213 static int
214 model_iq2000_ram (SIM_CPU *current_cpu, void *sem_arg)
216 #define FLD(f) abuf->fields.sfmt_ram.f
217 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
218 const IDESC * UNUSED idesc = abuf->idesc;
219 int cycles = 0;
221 int referenced = 0;
222 int UNUSED insn_referenced = abuf->written;
223 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
225 return cycles;
226 #undef FLD
229 static int
230 model_iq2000_sll (SIM_CPU *current_cpu, void *sem_arg)
232 #define FLD(f) abuf->fields.sfmt_ram.f
233 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
234 const IDESC * UNUSED idesc = abuf->idesc;
235 int cycles = 0;
237 int referenced = 0;
238 int UNUSED insn_referenced = abuf->written;
239 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
241 return cycles;
242 #undef FLD
245 static int
246 model_iq2000_sllv (SIM_CPU *current_cpu, void *sem_arg)
248 #define FLD(f) abuf->fields.sfmt_mrgb.f
249 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
250 const IDESC * UNUSED idesc = abuf->idesc;
251 int cycles = 0;
253 int referenced = 0;
254 int UNUSED insn_referenced = abuf->written;
255 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
257 return cycles;
258 #undef FLD
261 static int
262 model_iq2000_slmv (SIM_CPU *current_cpu, void *sem_arg)
264 #define FLD(f) abuf->fields.sfmt_ram.f
265 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
266 const IDESC * UNUSED idesc = abuf->idesc;
267 int cycles = 0;
269 int referenced = 0;
270 int UNUSED insn_referenced = abuf->written;
271 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
273 return cycles;
274 #undef FLD
277 static int
278 model_iq2000_slt (SIM_CPU *current_cpu, void *sem_arg)
280 #define FLD(f) abuf->fields.sfmt_mrgb.f
281 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
282 const IDESC * UNUSED idesc = abuf->idesc;
283 int cycles = 0;
285 int referenced = 0;
286 int UNUSED insn_referenced = abuf->written;
287 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
289 return cycles;
290 #undef FLD
293 static int
294 model_iq2000_slti (SIM_CPU *current_cpu, void *sem_arg)
296 #define FLD(f) abuf->fields.sfmt_addi.f
297 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
298 const IDESC * UNUSED idesc = abuf->idesc;
299 int cycles = 0;
301 int referenced = 0;
302 int UNUSED insn_referenced = abuf->written;
303 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
305 return cycles;
306 #undef FLD
309 static int
310 model_iq2000_sltiu (SIM_CPU *current_cpu, void *sem_arg)
312 #define FLD(f) abuf->fields.sfmt_addi.f
313 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
314 const IDESC * UNUSED idesc = abuf->idesc;
315 int cycles = 0;
317 int referenced = 0;
318 int UNUSED insn_referenced = abuf->written;
319 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
321 return cycles;
322 #undef FLD
325 static int
326 model_iq2000_sltu (SIM_CPU *current_cpu, void *sem_arg)
328 #define FLD(f) abuf->fields.sfmt_mrgb.f
329 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
330 const IDESC * UNUSED idesc = abuf->idesc;
331 int cycles = 0;
333 int referenced = 0;
334 int UNUSED insn_referenced = abuf->written;
335 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
337 return cycles;
338 #undef FLD
341 static int
342 model_iq2000_sra (SIM_CPU *current_cpu, void *sem_arg)
344 #define FLD(f) abuf->fields.sfmt_ram.f
345 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
346 const IDESC * UNUSED idesc = abuf->idesc;
347 int cycles = 0;
349 int referenced = 0;
350 int UNUSED insn_referenced = abuf->written;
351 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
353 return cycles;
354 #undef FLD
357 static int
358 model_iq2000_srav (SIM_CPU *current_cpu, void *sem_arg)
360 #define FLD(f) abuf->fields.sfmt_mrgb.f
361 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
362 const IDESC * UNUSED idesc = abuf->idesc;
363 int cycles = 0;
365 int referenced = 0;
366 int UNUSED insn_referenced = abuf->written;
367 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
369 return cycles;
370 #undef FLD
373 static int
374 model_iq2000_srl (SIM_CPU *current_cpu, void *sem_arg)
376 #define FLD(f) abuf->fields.sfmt_ram.f
377 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
378 const IDESC * UNUSED idesc = abuf->idesc;
379 int cycles = 0;
381 int referenced = 0;
382 int UNUSED insn_referenced = abuf->written;
383 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
385 return cycles;
386 #undef FLD
389 static int
390 model_iq2000_srlv (SIM_CPU *current_cpu, void *sem_arg)
392 #define FLD(f) abuf->fields.sfmt_mrgb.f
393 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
394 const IDESC * UNUSED idesc = abuf->idesc;
395 int cycles = 0;
397 int referenced = 0;
398 int UNUSED insn_referenced = abuf->written;
399 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
401 return cycles;
402 #undef FLD
405 static int
406 model_iq2000_srmv (SIM_CPU *current_cpu, void *sem_arg)
408 #define FLD(f) abuf->fields.sfmt_ram.f
409 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
410 const IDESC * UNUSED idesc = abuf->idesc;
411 int cycles = 0;
413 int referenced = 0;
414 int UNUSED insn_referenced = abuf->written;
415 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
417 return cycles;
418 #undef FLD
421 static int
422 model_iq2000_sub (SIM_CPU *current_cpu, void *sem_arg)
424 #define FLD(f) abuf->fields.sfmt_mrgb.f
425 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
426 const IDESC * UNUSED idesc = abuf->idesc;
427 int cycles = 0;
429 int referenced = 0;
430 int UNUSED insn_referenced = abuf->written;
431 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
433 return cycles;
434 #undef FLD
437 static int
438 model_iq2000_subu (SIM_CPU *current_cpu, void *sem_arg)
440 #define FLD(f) abuf->fields.sfmt_mrgb.f
441 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
442 const IDESC * UNUSED idesc = abuf->idesc;
443 int cycles = 0;
445 int referenced = 0;
446 int UNUSED insn_referenced = abuf->written;
447 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
449 return cycles;
450 #undef FLD
453 static int
454 model_iq2000_xor (SIM_CPU *current_cpu, void *sem_arg)
456 #define FLD(f) abuf->fields.sfmt_mrgb.f
457 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
458 const IDESC * UNUSED idesc = abuf->idesc;
459 int cycles = 0;
461 int referenced = 0;
462 int UNUSED insn_referenced = abuf->written;
463 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
465 return cycles;
466 #undef FLD
469 static int
470 model_iq2000_xori (SIM_CPU *current_cpu, void *sem_arg)
472 #define FLD(f) abuf->fields.sfmt_addi.f
473 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
474 const IDESC * UNUSED idesc = abuf->idesc;
475 int cycles = 0;
477 int referenced = 0;
478 int UNUSED insn_referenced = abuf->written;
479 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
481 return cycles;
482 #undef FLD
485 static int
486 model_iq2000_bbi (SIM_CPU *current_cpu, void *sem_arg)
488 #define FLD(f) abuf->fields.sfmt_bbi.f
489 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
490 const IDESC * UNUSED idesc = abuf->idesc;
491 int cycles = 0;
493 int referenced = 0;
494 int UNUSED insn_referenced = abuf->written;
495 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
497 return cycles;
498 #undef FLD
501 static int
502 model_iq2000_bbin (SIM_CPU *current_cpu, void *sem_arg)
504 #define FLD(f) abuf->fields.sfmt_bbi.f
505 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
506 const IDESC * UNUSED idesc = abuf->idesc;
507 int cycles = 0;
509 int referenced = 0;
510 int UNUSED insn_referenced = abuf->written;
511 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
513 return cycles;
514 #undef FLD
517 static int
518 model_iq2000_bbv (SIM_CPU *current_cpu, void *sem_arg)
520 #define FLD(f) abuf->fields.sfmt_bbi.f
521 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
522 const IDESC * UNUSED idesc = abuf->idesc;
523 int cycles = 0;
525 int referenced = 0;
526 int UNUSED insn_referenced = abuf->written;
527 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
529 return cycles;
530 #undef FLD
533 static int
534 model_iq2000_bbvn (SIM_CPU *current_cpu, void *sem_arg)
536 #define FLD(f) abuf->fields.sfmt_bbi.f
537 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
538 const IDESC * UNUSED idesc = abuf->idesc;
539 int cycles = 0;
541 int referenced = 0;
542 int UNUSED insn_referenced = abuf->written;
543 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
545 return cycles;
546 #undef FLD
549 static int
550 model_iq2000_beq (SIM_CPU *current_cpu, void *sem_arg)
552 #define FLD(f) abuf->fields.sfmt_bbi.f
553 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
554 const IDESC * UNUSED idesc = abuf->idesc;
555 int cycles = 0;
557 int referenced = 0;
558 int UNUSED insn_referenced = abuf->written;
559 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
561 return cycles;
562 #undef FLD
565 static int
566 model_iq2000_beql (SIM_CPU *current_cpu, void *sem_arg)
568 #define FLD(f) abuf->fields.sfmt_bbi.f
569 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
570 const IDESC * UNUSED idesc = abuf->idesc;
571 int cycles = 0;
573 int referenced = 0;
574 int UNUSED insn_referenced = abuf->written;
575 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
577 return cycles;
578 #undef FLD
581 static int
582 model_iq2000_bgez (SIM_CPU *current_cpu, void *sem_arg)
584 #define FLD(f) abuf->fields.sfmt_bbi.f
585 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
586 const IDESC * UNUSED idesc = abuf->idesc;
587 int cycles = 0;
589 int referenced = 0;
590 int UNUSED insn_referenced = abuf->written;
591 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
593 return cycles;
594 #undef FLD
597 static int
598 model_iq2000_bgezal (SIM_CPU *current_cpu, void *sem_arg)
600 #define FLD(f) abuf->fields.sfmt_bbi.f
601 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
602 const IDESC * UNUSED idesc = abuf->idesc;
603 int cycles = 0;
605 int referenced = 0;
606 int UNUSED insn_referenced = abuf->written;
607 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
609 return cycles;
610 #undef FLD
613 static int
614 model_iq2000_bgezall (SIM_CPU *current_cpu, void *sem_arg)
616 #define FLD(f) abuf->fields.sfmt_bbi.f
617 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
618 const IDESC * UNUSED idesc = abuf->idesc;
619 int cycles = 0;
621 int referenced = 0;
622 int UNUSED insn_referenced = abuf->written;
623 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
625 return cycles;
626 #undef FLD
629 static int
630 model_iq2000_bgezl (SIM_CPU *current_cpu, void *sem_arg)
632 #define FLD(f) abuf->fields.sfmt_bbi.f
633 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
634 const IDESC * UNUSED idesc = abuf->idesc;
635 int cycles = 0;
637 int referenced = 0;
638 int UNUSED insn_referenced = abuf->written;
639 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
641 return cycles;
642 #undef FLD
645 static int
646 model_iq2000_bltz (SIM_CPU *current_cpu, void *sem_arg)
648 #define FLD(f) abuf->fields.sfmt_bbi.f
649 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
650 const IDESC * UNUSED idesc = abuf->idesc;
651 int cycles = 0;
653 int referenced = 0;
654 int UNUSED insn_referenced = abuf->written;
655 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
657 return cycles;
658 #undef FLD
661 static int
662 model_iq2000_bltzl (SIM_CPU *current_cpu, void *sem_arg)
664 #define FLD(f) abuf->fields.sfmt_bbi.f
665 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
666 const IDESC * UNUSED idesc = abuf->idesc;
667 int cycles = 0;
669 int referenced = 0;
670 int UNUSED insn_referenced = abuf->written;
671 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
673 return cycles;
674 #undef FLD
677 static int
678 model_iq2000_bltzal (SIM_CPU *current_cpu, void *sem_arg)
680 #define FLD(f) abuf->fields.sfmt_bbi.f
681 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
682 const IDESC * UNUSED idesc = abuf->idesc;
683 int cycles = 0;
685 int referenced = 0;
686 int UNUSED insn_referenced = abuf->written;
687 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
689 return cycles;
690 #undef FLD
693 static int
694 model_iq2000_bltzall (SIM_CPU *current_cpu, void *sem_arg)
696 #define FLD(f) abuf->fields.sfmt_bbi.f
697 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
698 const IDESC * UNUSED idesc = abuf->idesc;
699 int cycles = 0;
701 int referenced = 0;
702 int UNUSED insn_referenced = abuf->written;
703 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
705 return cycles;
706 #undef FLD
709 static int
710 model_iq2000_bmb0 (SIM_CPU *current_cpu, void *sem_arg)
712 #define FLD(f) abuf->fields.sfmt_bbi.f
713 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
714 const IDESC * UNUSED idesc = abuf->idesc;
715 int cycles = 0;
717 int referenced = 0;
718 int UNUSED insn_referenced = abuf->written;
719 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
721 return cycles;
722 #undef FLD
725 static int
726 model_iq2000_bmb1 (SIM_CPU *current_cpu, void *sem_arg)
728 #define FLD(f) abuf->fields.sfmt_bbi.f
729 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
730 const IDESC * UNUSED idesc = abuf->idesc;
731 int cycles = 0;
733 int referenced = 0;
734 int UNUSED insn_referenced = abuf->written;
735 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
737 return cycles;
738 #undef FLD
741 static int
742 model_iq2000_bmb2 (SIM_CPU *current_cpu, void *sem_arg)
744 #define FLD(f) abuf->fields.sfmt_bbi.f
745 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
746 const IDESC * UNUSED idesc = abuf->idesc;
747 int cycles = 0;
749 int referenced = 0;
750 int UNUSED insn_referenced = abuf->written;
751 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
753 return cycles;
754 #undef FLD
757 static int
758 model_iq2000_bmb3 (SIM_CPU *current_cpu, void *sem_arg)
760 #define FLD(f) abuf->fields.sfmt_bbi.f
761 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
762 const IDESC * UNUSED idesc = abuf->idesc;
763 int cycles = 0;
765 int referenced = 0;
766 int UNUSED insn_referenced = abuf->written;
767 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
769 return cycles;
770 #undef FLD
773 static int
774 model_iq2000_bne (SIM_CPU *current_cpu, void *sem_arg)
776 #define FLD(f) abuf->fields.sfmt_bbi.f
777 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
778 const IDESC * UNUSED idesc = abuf->idesc;
779 int cycles = 0;
781 int referenced = 0;
782 int UNUSED insn_referenced = abuf->written;
783 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
785 return cycles;
786 #undef FLD
789 static int
790 model_iq2000_bnel (SIM_CPU *current_cpu, void *sem_arg)
792 #define FLD(f) abuf->fields.sfmt_bbi.f
793 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
794 const IDESC * UNUSED idesc = abuf->idesc;
795 int cycles = 0;
797 int referenced = 0;
798 int UNUSED insn_referenced = abuf->written;
799 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
801 return cycles;
802 #undef FLD
805 static int
806 model_iq2000_jalr (SIM_CPU *current_cpu, void *sem_arg)
808 #define FLD(f) abuf->fields.sfmt_mrgb.f
809 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
810 const IDESC * UNUSED idesc = abuf->idesc;
811 int cycles = 0;
813 int referenced = 0;
814 int UNUSED insn_referenced = abuf->written;
815 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
817 return cycles;
818 #undef FLD
821 static int
822 model_iq2000_jr (SIM_CPU *current_cpu, void *sem_arg)
824 #define FLD(f) abuf->fields.sfmt_bbi.f
825 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
826 const IDESC * UNUSED idesc = abuf->idesc;
827 int cycles = 0;
829 int referenced = 0;
830 int UNUSED insn_referenced = abuf->written;
831 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
833 return cycles;
834 #undef FLD
837 static int
838 model_iq2000_lb (SIM_CPU *current_cpu, void *sem_arg)
840 #define FLD(f) abuf->fields.sfmt_addi.f
841 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
842 const IDESC * UNUSED idesc = abuf->idesc;
843 int cycles = 0;
845 int referenced = 0;
846 int UNUSED insn_referenced = abuf->written;
847 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
849 return cycles;
850 #undef FLD
853 static int
854 model_iq2000_lbu (SIM_CPU *current_cpu, void *sem_arg)
856 #define FLD(f) abuf->fields.sfmt_addi.f
857 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
858 const IDESC * UNUSED idesc = abuf->idesc;
859 int cycles = 0;
861 int referenced = 0;
862 int UNUSED insn_referenced = abuf->written;
863 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
865 return cycles;
866 #undef FLD
869 static int
870 model_iq2000_lh (SIM_CPU *current_cpu, void *sem_arg)
872 #define FLD(f) abuf->fields.sfmt_addi.f
873 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
874 const IDESC * UNUSED idesc = abuf->idesc;
875 int cycles = 0;
877 int referenced = 0;
878 int UNUSED insn_referenced = abuf->written;
879 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
881 return cycles;
882 #undef FLD
885 static int
886 model_iq2000_lhu (SIM_CPU *current_cpu, void *sem_arg)
888 #define FLD(f) abuf->fields.sfmt_addi.f
889 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
890 const IDESC * UNUSED idesc = abuf->idesc;
891 int cycles = 0;
893 int referenced = 0;
894 int UNUSED insn_referenced = abuf->written;
895 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
897 return cycles;
898 #undef FLD
901 static int
902 model_iq2000_lui (SIM_CPU *current_cpu, void *sem_arg)
904 #define FLD(f) abuf->fields.sfmt_addi.f
905 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
906 const IDESC * UNUSED idesc = abuf->idesc;
907 int cycles = 0;
909 int referenced = 0;
910 int UNUSED insn_referenced = abuf->written;
911 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
913 return cycles;
914 #undef FLD
917 static int
918 model_iq2000_lw (SIM_CPU *current_cpu, void *sem_arg)
920 #define FLD(f) abuf->fields.sfmt_addi.f
921 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
922 const IDESC * UNUSED idesc = abuf->idesc;
923 int cycles = 0;
925 int referenced = 0;
926 int UNUSED insn_referenced = abuf->written;
927 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
929 return cycles;
930 #undef FLD
933 static int
934 model_iq2000_sb (SIM_CPU *current_cpu, void *sem_arg)
936 #define FLD(f) abuf->fields.sfmt_addi.f
937 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
938 const IDESC * UNUSED idesc = abuf->idesc;
939 int cycles = 0;
941 int referenced = 0;
942 int UNUSED insn_referenced = abuf->written;
943 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
945 return cycles;
946 #undef FLD
949 static int
950 model_iq2000_sh (SIM_CPU *current_cpu, void *sem_arg)
952 #define FLD(f) abuf->fields.sfmt_addi.f
953 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
954 const IDESC * UNUSED idesc = abuf->idesc;
955 int cycles = 0;
957 int referenced = 0;
958 int UNUSED insn_referenced = abuf->written;
959 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
961 return cycles;
962 #undef FLD
965 static int
966 model_iq2000_sw (SIM_CPU *current_cpu, void *sem_arg)
968 #define FLD(f) abuf->fields.sfmt_addi.f
969 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
970 const IDESC * UNUSED idesc = abuf->idesc;
971 int cycles = 0;
973 int referenced = 0;
974 int UNUSED insn_referenced = abuf->written;
975 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
977 return cycles;
978 #undef FLD
981 static int
982 model_iq2000_break (SIM_CPU *current_cpu, void *sem_arg)
984 #define FLD(f) abuf->fields.sfmt_empty.f
985 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
986 const IDESC * UNUSED idesc = abuf->idesc;
987 int cycles = 0;
989 int referenced = 0;
990 int UNUSED insn_referenced = abuf->written;
991 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
993 return cycles;
994 #undef FLD
997 static int
998 model_iq2000_syscall (SIM_CPU *current_cpu, void *sem_arg)
1000 #define FLD(f) abuf->fields.sfmt_empty.f
1001 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1002 const IDESC * UNUSED idesc = abuf->idesc;
1003 int cycles = 0;
1005 int referenced = 0;
1006 int UNUSED insn_referenced = abuf->written;
1007 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1009 return cycles;
1010 #undef FLD
1013 static int
1014 model_iq2000_andoui (SIM_CPU *current_cpu, void *sem_arg)
1016 #define FLD(f) abuf->fields.sfmt_addi.f
1017 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1018 const IDESC * UNUSED idesc = abuf->idesc;
1019 int cycles = 0;
1021 int referenced = 0;
1022 int UNUSED insn_referenced = abuf->written;
1023 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1025 return cycles;
1026 #undef FLD
1029 static int
1030 model_iq2000_orui (SIM_CPU *current_cpu, void *sem_arg)
1032 #define FLD(f) abuf->fields.sfmt_addi.f
1033 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1034 const IDESC * UNUSED idesc = abuf->idesc;
1035 int cycles = 0;
1037 int referenced = 0;
1038 int UNUSED insn_referenced = abuf->written;
1039 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1041 return cycles;
1042 #undef FLD
1045 static int
1046 model_iq2000_bgtz (SIM_CPU *current_cpu, void *sem_arg)
1048 #define FLD(f) abuf->fields.sfmt_bbi.f
1049 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1050 const IDESC * UNUSED idesc = abuf->idesc;
1051 int cycles = 0;
1053 int referenced = 0;
1054 int UNUSED insn_referenced = abuf->written;
1055 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1057 return cycles;
1058 #undef FLD
1061 static int
1062 model_iq2000_bgtzl (SIM_CPU *current_cpu, void *sem_arg)
1064 #define FLD(f) abuf->fields.sfmt_bbi.f
1065 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1066 const IDESC * UNUSED idesc = abuf->idesc;
1067 int cycles = 0;
1069 int referenced = 0;
1070 int UNUSED insn_referenced = abuf->written;
1071 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1073 return cycles;
1074 #undef FLD
1077 static int
1078 model_iq2000_blez (SIM_CPU *current_cpu, void *sem_arg)
1080 #define FLD(f) abuf->fields.sfmt_bbi.f
1081 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1082 const IDESC * UNUSED idesc = abuf->idesc;
1083 int cycles = 0;
1085 int referenced = 0;
1086 int UNUSED insn_referenced = abuf->written;
1087 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1089 return cycles;
1090 #undef FLD
1093 static int
1094 model_iq2000_blezl (SIM_CPU *current_cpu, void *sem_arg)
1096 #define FLD(f) abuf->fields.sfmt_bbi.f
1097 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1098 const IDESC * UNUSED idesc = abuf->idesc;
1099 int cycles = 0;
1101 int referenced = 0;
1102 int UNUSED insn_referenced = abuf->written;
1103 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1105 return cycles;
1106 #undef FLD
1109 static int
1110 model_iq2000_mrgb (SIM_CPU *current_cpu, void *sem_arg)
1112 #define FLD(f) abuf->fields.sfmt_mrgb.f
1113 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1114 const IDESC * UNUSED idesc = abuf->idesc;
1115 int cycles = 0;
1117 int referenced = 0;
1118 int UNUSED insn_referenced = abuf->written;
1119 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1121 return cycles;
1122 #undef FLD
1125 static int
1126 model_iq2000_bctxt (SIM_CPU *current_cpu, void *sem_arg)
1128 #define FLD(f) abuf->fields.sfmt_empty.f
1129 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1130 const IDESC * UNUSED idesc = abuf->idesc;
1131 int cycles = 0;
1133 int referenced = 0;
1134 int UNUSED insn_referenced = abuf->written;
1135 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1137 return cycles;
1138 #undef FLD
1141 static int
1142 model_iq2000_bc0f (SIM_CPU *current_cpu, void *sem_arg)
1144 #define FLD(f) abuf->fields.sfmt_empty.f
1145 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1146 const IDESC * UNUSED idesc = abuf->idesc;
1147 int cycles = 0;
1149 int referenced = 0;
1150 int UNUSED insn_referenced = abuf->written;
1151 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1153 return cycles;
1154 #undef FLD
1157 static int
1158 model_iq2000_bc0fl (SIM_CPU *current_cpu, void *sem_arg)
1160 #define FLD(f) abuf->fields.sfmt_empty.f
1161 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1162 const IDESC * UNUSED idesc = abuf->idesc;
1163 int cycles = 0;
1165 int referenced = 0;
1166 int UNUSED insn_referenced = abuf->written;
1167 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1169 return cycles;
1170 #undef FLD
1173 static int
1174 model_iq2000_bc3f (SIM_CPU *current_cpu, void *sem_arg)
1176 #define FLD(f) abuf->fields.sfmt_empty.f
1177 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1178 const IDESC * UNUSED idesc = abuf->idesc;
1179 int cycles = 0;
1181 int referenced = 0;
1182 int UNUSED insn_referenced = abuf->written;
1183 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1185 return cycles;
1186 #undef FLD
1189 static int
1190 model_iq2000_bc3fl (SIM_CPU *current_cpu, void *sem_arg)
1192 #define FLD(f) abuf->fields.sfmt_empty.f
1193 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1194 const IDESC * UNUSED idesc = abuf->idesc;
1195 int cycles = 0;
1197 int referenced = 0;
1198 int UNUSED insn_referenced = abuf->written;
1199 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1201 return cycles;
1202 #undef FLD
1205 static int
1206 model_iq2000_bc0t (SIM_CPU *current_cpu, void *sem_arg)
1208 #define FLD(f) abuf->fields.sfmt_empty.f
1209 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1210 const IDESC * UNUSED idesc = abuf->idesc;
1211 int cycles = 0;
1213 int referenced = 0;
1214 int UNUSED insn_referenced = abuf->written;
1215 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1217 return cycles;
1218 #undef FLD
1221 static int
1222 model_iq2000_bc0tl (SIM_CPU *current_cpu, void *sem_arg)
1224 #define FLD(f) abuf->fields.sfmt_empty.f
1225 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1226 const IDESC * UNUSED idesc = abuf->idesc;
1227 int cycles = 0;
1229 int referenced = 0;
1230 int UNUSED insn_referenced = abuf->written;
1231 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1233 return cycles;
1234 #undef FLD
1237 static int
1238 model_iq2000_bc3t (SIM_CPU *current_cpu, void *sem_arg)
1240 #define FLD(f) abuf->fields.sfmt_empty.f
1241 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1242 const IDESC * UNUSED idesc = abuf->idesc;
1243 int cycles = 0;
1245 int referenced = 0;
1246 int UNUSED insn_referenced = abuf->written;
1247 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1249 return cycles;
1250 #undef FLD
1253 static int
1254 model_iq2000_bc3tl (SIM_CPU *current_cpu, void *sem_arg)
1256 #define FLD(f) abuf->fields.sfmt_empty.f
1257 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1258 const IDESC * UNUSED idesc = abuf->idesc;
1259 int cycles = 0;
1261 int referenced = 0;
1262 int UNUSED insn_referenced = abuf->written;
1263 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1265 return cycles;
1266 #undef FLD
1269 static int
1270 model_iq2000_cfc0 (SIM_CPU *current_cpu, void *sem_arg)
1272 #define FLD(f) abuf->fields.sfmt_empty.f
1273 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1274 const IDESC * UNUSED idesc = abuf->idesc;
1275 int cycles = 0;
1277 int referenced = 0;
1278 int UNUSED insn_referenced = abuf->written;
1279 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1281 return cycles;
1282 #undef FLD
1285 static int
1286 model_iq2000_cfc1 (SIM_CPU *current_cpu, void *sem_arg)
1288 #define FLD(f) abuf->fields.sfmt_empty.f
1289 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1290 const IDESC * UNUSED idesc = abuf->idesc;
1291 int cycles = 0;
1293 int referenced = 0;
1294 int UNUSED insn_referenced = abuf->written;
1295 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1297 return cycles;
1298 #undef FLD
1301 static int
1302 model_iq2000_cfc2 (SIM_CPU *current_cpu, void *sem_arg)
1304 #define FLD(f) abuf->fields.sfmt_empty.f
1305 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1306 const IDESC * UNUSED idesc = abuf->idesc;
1307 int cycles = 0;
1309 int referenced = 0;
1310 int UNUSED insn_referenced = abuf->written;
1311 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1313 return cycles;
1314 #undef FLD
1317 static int
1318 model_iq2000_cfc3 (SIM_CPU *current_cpu, void *sem_arg)
1320 #define FLD(f) abuf->fields.sfmt_empty.f
1321 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1322 const IDESC * UNUSED idesc = abuf->idesc;
1323 int cycles = 0;
1325 int referenced = 0;
1326 int UNUSED insn_referenced = abuf->written;
1327 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1329 return cycles;
1330 #undef FLD
1333 static int
1334 model_iq2000_chkhdr (SIM_CPU *current_cpu, void *sem_arg)
1336 #define FLD(f) abuf->fields.sfmt_empty.f
1337 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1338 const IDESC * UNUSED idesc = abuf->idesc;
1339 int cycles = 0;
1341 int referenced = 0;
1342 int UNUSED insn_referenced = abuf->written;
1343 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1345 return cycles;
1346 #undef FLD
1349 static int
1350 model_iq2000_ctc0 (SIM_CPU *current_cpu, void *sem_arg)
1352 #define FLD(f) abuf->fields.sfmt_empty.f
1353 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1354 const IDESC * UNUSED idesc = abuf->idesc;
1355 int cycles = 0;
1357 int referenced = 0;
1358 int UNUSED insn_referenced = abuf->written;
1359 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1361 return cycles;
1362 #undef FLD
1365 static int
1366 model_iq2000_ctc1 (SIM_CPU *current_cpu, void *sem_arg)
1368 #define FLD(f) abuf->fields.sfmt_empty.f
1369 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1370 const IDESC * UNUSED idesc = abuf->idesc;
1371 int cycles = 0;
1373 int referenced = 0;
1374 int UNUSED insn_referenced = abuf->written;
1375 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1377 return cycles;
1378 #undef FLD
1381 static int
1382 model_iq2000_ctc2 (SIM_CPU *current_cpu, void *sem_arg)
1384 #define FLD(f) abuf->fields.sfmt_empty.f
1385 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1386 const IDESC * UNUSED idesc = abuf->idesc;
1387 int cycles = 0;
1389 int referenced = 0;
1390 int UNUSED insn_referenced = abuf->written;
1391 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1393 return cycles;
1394 #undef FLD
1397 static int
1398 model_iq2000_ctc3 (SIM_CPU *current_cpu, void *sem_arg)
1400 #define FLD(f) abuf->fields.sfmt_empty.f
1401 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1402 const IDESC * UNUSED idesc = abuf->idesc;
1403 int cycles = 0;
1405 int referenced = 0;
1406 int UNUSED insn_referenced = abuf->written;
1407 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1409 return cycles;
1410 #undef FLD
1413 static int
1414 model_iq2000_jcr (SIM_CPU *current_cpu, void *sem_arg)
1416 #define FLD(f) abuf->fields.sfmt_empty.f
1417 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1418 const IDESC * UNUSED idesc = abuf->idesc;
1419 int cycles = 0;
1421 int referenced = 0;
1422 int UNUSED insn_referenced = abuf->written;
1423 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1425 return cycles;
1426 #undef FLD
1429 static int
1430 model_iq2000_luc32 (SIM_CPU *current_cpu, void *sem_arg)
1432 #define FLD(f) abuf->fields.sfmt_empty.f
1433 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1434 const IDESC * UNUSED idesc = abuf->idesc;
1435 int cycles = 0;
1437 int referenced = 0;
1438 int UNUSED insn_referenced = abuf->written;
1439 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1441 return cycles;
1442 #undef FLD
1445 static int
1446 model_iq2000_luc32l (SIM_CPU *current_cpu, void *sem_arg)
1448 #define FLD(f) abuf->fields.sfmt_empty.f
1449 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1450 const IDESC * UNUSED idesc = abuf->idesc;
1451 int cycles = 0;
1453 int referenced = 0;
1454 int UNUSED insn_referenced = abuf->written;
1455 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1457 return cycles;
1458 #undef FLD
1461 static int
1462 model_iq2000_luc64 (SIM_CPU *current_cpu, void *sem_arg)
1464 #define FLD(f) abuf->fields.sfmt_empty.f
1465 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1466 const IDESC * UNUSED idesc = abuf->idesc;
1467 int cycles = 0;
1469 int referenced = 0;
1470 int UNUSED insn_referenced = abuf->written;
1471 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1473 return cycles;
1474 #undef FLD
1477 static int
1478 model_iq2000_luc64l (SIM_CPU *current_cpu, void *sem_arg)
1480 #define FLD(f) abuf->fields.sfmt_empty.f
1481 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1482 const IDESC * UNUSED idesc = abuf->idesc;
1483 int cycles = 0;
1485 int referenced = 0;
1486 int UNUSED insn_referenced = abuf->written;
1487 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1489 return cycles;
1490 #undef FLD
1493 static int
1494 model_iq2000_luk (SIM_CPU *current_cpu, void *sem_arg)
1496 #define FLD(f) abuf->fields.sfmt_empty.f
1497 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1498 const IDESC * UNUSED idesc = abuf->idesc;
1499 int cycles = 0;
1501 int referenced = 0;
1502 int UNUSED insn_referenced = abuf->written;
1503 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1505 return cycles;
1506 #undef FLD
1509 static int
1510 model_iq2000_lulck (SIM_CPU *current_cpu, void *sem_arg)
1512 #define FLD(f) abuf->fields.sfmt_empty.f
1513 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1514 const IDESC * UNUSED idesc = abuf->idesc;
1515 int cycles = 0;
1517 int referenced = 0;
1518 int UNUSED insn_referenced = abuf->written;
1519 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1521 return cycles;
1522 #undef FLD
1525 static int
1526 model_iq2000_lum32 (SIM_CPU *current_cpu, void *sem_arg)
1528 #define FLD(f) abuf->fields.sfmt_empty.f
1529 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1530 const IDESC * UNUSED idesc = abuf->idesc;
1531 int cycles = 0;
1533 int referenced = 0;
1534 int UNUSED insn_referenced = abuf->written;
1535 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1537 return cycles;
1538 #undef FLD
1541 static int
1542 model_iq2000_lum32l (SIM_CPU *current_cpu, void *sem_arg)
1544 #define FLD(f) abuf->fields.sfmt_empty.f
1545 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1546 const IDESC * UNUSED idesc = abuf->idesc;
1547 int cycles = 0;
1549 int referenced = 0;
1550 int UNUSED insn_referenced = abuf->written;
1551 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1553 return cycles;
1554 #undef FLD
1557 static int
1558 model_iq2000_lum64 (SIM_CPU *current_cpu, void *sem_arg)
1560 #define FLD(f) abuf->fields.sfmt_empty.f
1561 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1562 const IDESC * UNUSED idesc = abuf->idesc;
1563 int cycles = 0;
1565 int referenced = 0;
1566 int UNUSED insn_referenced = abuf->written;
1567 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1569 return cycles;
1570 #undef FLD
1573 static int
1574 model_iq2000_lum64l (SIM_CPU *current_cpu, void *sem_arg)
1576 #define FLD(f) abuf->fields.sfmt_empty.f
1577 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1578 const IDESC * UNUSED idesc = abuf->idesc;
1579 int cycles = 0;
1581 int referenced = 0;
1582 int UNUSED insn_referenced = abuf->written;
1583 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1585 return cycles;
1586 #undef FLD
1589 static int
1590 model_iq2000_lur (SIM_CPU *current_cpu, void *sem_arg)
1592 #define FLD(f) abuf->fields.sfmt_empty.f
1593 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1594 const IDESC * UNUSED idesc = abuf->idesc;
1595 int cycles = 0;
1597 int referenced = 0;
1598 int UNUSED insn_referenced = abuf->written;
1599 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1601 return cycles;
1602 #undef FLD
1605 static int
1606 model_iq2000_lurl (SIM_CPU *current_cpu, void *sem_arg)
1608 #define FLD(f) abuf->fields.sfmt_empty.f
1609 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1610 const IDESC * UNUSED idesc = abuf->idesc;
1611 int cycles = 0;
1613 int referenced = 0;
1614 int UNUSED insn_referenced = abuf->written;
1615 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1617 return cycles;
1618 #undef FLD
1621 static int
1622 model_iq2000_luulck (SIM_CPU *current_cpu, void *sem_arg)
1624 #define FLD(f) abuf->fields.sfmt_empty.f
1625 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1626 const IDESC * UNUSED idesc = abuf->idesc;
1627 int cycles = 0;
1629 int referenced = 0;
1630 int UNUSED insn_referenced = abuf->written;
1631 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1633 return cycles;
1634 #undef FLD
1637 static int
1638 model_iq2000_mfc0 (SIM_CPU *current_cpu, void *sem_arg)
1640 #define FLD(f) abuf->fields.sfmt_empty.f
1641 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1642 const IDESC * UNUSED idesc = abuf->idesc;
1643 int cycles = 0;
1645 int referenced = 0;
1646 int UNUSED insn_referenced = abuf->written;
1647 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1649 return cycles;
1650 #undef FLD
1653 static int
1654 model_iq2000_mfc1 (SIM_CPU *current_cpu, void *sem_arg)
1656 #define FLD(f) abuf->fields.sfmt_empty.f
1657 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1658 const IDESC * UNUSED idesc = abuf->idesc;
1659 int cycles = 0;
1661 int referenced = 0;
1662 int UNUSED insn_referenced = abuf->written;
1663 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1665 return cycles;
1666 #undef FLD
1669 static int
1670 model_iq2000_mfc2 (SIM_CPU *current_cpu, void *sem_arg)
1672 #define FLD(f) abuf->fields.sfmt_empty.f
1673 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1674 const IDESC * UNUSED idesc = abuf->idesc;
1675 int cycles = 0;
1677 int referenced = 0;
1678 int UNUSED insn_referenced = abuf->written;
1679 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1681 return cycles;
1682 #undef FLD
1685 static int
1686 model_iq2000_mfc3 (SIM_CPU *current_cpu, void *sem_arg)
1688 #define FLD(f) abuf->fields.sfmt_empty.f
1689 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1690 const IDESC * UNUSED idesc = abuf->idesc;
1691 int cycles = 0;
1693 int referenced = 0;
1694 int UNUSED insn_referenced = abuf->written;
1695 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1697 return cycles;
1698 #undef FLD
1701 static int
1702 model_iq2000_mtc0 (SIM_CPU *current_cpu, void *sem_arg)
1704 #define FLD(f) abuf->fields.sfmt_empty.f
1705 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1706 const IDESC * UNUSED idesc = abuf->idesc;
1707 int cycles = 0;
1709 int referenced = 0;
1710 int UNUSED insn_referenced = abuf->written;
1711 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1713 return cycles;
1714 #undef FLD
1717 static int
1718 model_iq2000_mtc1 (SIM_CPU *current_cpu, void *sem_arg)
1720 #define FLD(f) abuf->fields.sfmt_empty.f
1721 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1722 const IDESC * UNUSED idesc = abuf->idesc;
1723 int cycles = 0;
1725 int referenced = 0;
1726 int UNUSED insn_referenced = abuf->written;
1727 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1729 return cycles;
1730 #undef FLD
1733 static int
1734 model_iq2000_mtc2 (SIM_CPU *current_cpu, void *sem_arg)
1736 #define FLD(f) abuf->fields.sfmt_empty.f
1737 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1738 const IDESC * UNUSED idesc = abuf->idesc;
1739 int cycles = 0;
1741 int referenced = 0;
1742 int UNUSED insn_referenced = abuf->written;
1743 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1745 return cycles;
1746 #undef FLD
1749 static int
1750 model_iq2000_mtc3 (SIM_CPU *current_cpu, void *sem_arg)
1752 #define FLD(f) abuf->fields.sfmt_empty.f
1753 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1754 const IDESC * UNUSED idesc = abuf->idesc;
1755 int cycles = 0;
1757 int referenced = 0;
1758 int UNUSED insn_referenced = abuf->written;
1759 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1761 return cycles;
1762 #undef FLD
1765 static int
1766 model_iq2000_pkrl (SIM_CPU *current_cpu, void *sem_arg)
1768 #define FLD(f) abuf->fields.sfmt_empty.f
1769 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1770 const IDESC * UNUSED idesc = abuf->idesc;
1771 int cycles = 0;
1773 int referenced = 0;
1774 int UNUSED insn_referenced = abuf->written;
1775 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1777 return cycles;
1778 #undef FLD
1781 static int
1782 model_iq2000_pkrlr1 (SIM_CPU *current_cpu, void *sem_arg)
1784 #define FLD(f) abuf->fields.sfmt_empty.f
1785 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1786 const IDESC * UNUSED idesc = abuf->idesc;
1787 int cycles = 0;
1789 int referenced = 0;
1790 int UNUSED insn_referenced = abuf->written;
1791 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1793 return cycles;
1794 #undef FLD
1797 static int
1798 model_iq2000_pkrlr30 (SIM_CPU *current_cpu, void *sem_arg)
1800 #define FLD(f) abuf->fields.sfmt_empty.f
1801 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1802 const IDESC * UNUSED idesc = abuf->idesc;
1803 int cycles = 0;
1805 int referenced = 0;
1806 int UNUSED insn_referenced = abuf->written;
1807 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1809 return cycles;
1810 #undef FLD
1813 static int
1814 model_iq2000_rb (SIM_CPU *current_cpu, void *sem_arg)
1816 #define FLD(f) abuf->fields.sfmt_empty.f
1817 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1818 const IDESC * UNUSED idesc = abuf->idesc;
1819 int cycles = 0;
1821 int referenced = 0;
1822 int UNUSED insn_referenced = abuf->written;
1823 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1825 return cycles;
1826 #undef FLD
1829 static int
1830 model_iq2000_rbr1 (SIM_CPU *current_cpu, void *sem_arg)
1832 #define FLD(f) abuf->fields.sfmt_empty.f
1833 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1834 const IDESC * UNUSED idesc = abuf->idesc;
1835 int cycles = 0;
1837 int referenced = 0;
1838 int UNUSED insn_referenced = abuf->written;
1839 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1841 return cycles;
1842 #undef FLD
1845 static int
1846 model_iq2000_rbr30 (SIM_CPU *current_cpu, void *sem_arg)
1848 #define FLD(f) abuf->fields.sfmt_empty.f
1849 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1850 const IDESC * UNUSED idesc = abuf->idesc;
1851 int cycles = 0;
1853 int referenced = 0;
1854 int UNUSED insn_referenced = abuf->written;
1855 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1857 return cycles;
1858 #undef FLD
1861 static int
1862 model_iq2000_rfe (SIM_CPU *current_cpu, void *sem_arg)
1864 #define FLD(f) abuf->fields.sfmt_empty.f
1865 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1866 const IDESC * UNUSED idesc = abuf->idesc;
1867 int cycles = 0;
1869 int referenced = 0;
1870 int UNUSED insn_referenced = abuf->written;
1871 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1873 return cycles;
1874 #undef FLD
1877 static int
1878 model_iq2000_rx (SIM_CPU *current_cpu, void *sem_arg)
1880 #define FLD(f) abuf->fields.sfmt_empty.f
1881 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1882 const IDESC * UNUSED idesc = abuf->idesc;
1883 int cycles = 0;
1885 int referenced = 0;
1886 int UNUSED insn_referenced = abuf->written;
1887 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1889 return cycles;
1890 #undef FLD
1893 static int
1894 model_iq2000_rxr1 (SIM_CPU *current_cpu, void *sem_arg)
1896 #define FLD(f) abuf->fields.sfmt_empty.f
1897 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1898 const IDESC * UNUSED idesc = abuf->idesc;
1899 int cycles = 0;
1901 int referenced = 0;
1902 int UNUSED insn_referenced = abuf->written;
1903 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1905 return cycles;
1906 #undef FLD
1909 static int
1910 model_iq2000_rxr30 (SIM_CPU *current_cpu, void *sem_arg)
1912 #define FLD(f) abuf->fields.sfmt_empty.f
1913 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1914 const IDESC * UNUSED idesc = abuf->idesc;
1915 int cycles = 0;
1917 int referenced = 0;
1918 int UNUSED insn_referenced = abuf->written;
1919 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1921 return cycles;
1922 #undef FLD
1925 static int
1926 model_iq2000_sleep (SIM_CPU *current_cpu, void *sem_arg)
1928 #define FLD(f) abuf->fields.sfmt_empty.f
1929 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1930 const IDESC * UNUSED idesc = abuf->idesc;
1931 int cycles = 0;
1933 int referenced = 0;
1934 int UNUSED insn_referenced = abuf->written;
1935 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1937 return cycles;
1938 #undef FLD
1941 static int
1942 model_iq2000_srrd (SIM_CPU *current_cpu, void *sem_arg)
1944 #define FLD(f) abuf->fields.sfmt_empty.f
1945 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1946 const IDESC * UNUSED idesc = abuf->idesc;
1947 int cycles = 0;
1949 int referenced = 0;
1950 int UNUSED insn_referenced = abuf->written;
1951 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1953 return cycles;
1954 #undef FLD
1957 static int
1958 model_iq2000_srrdl (SIM_CPU *current_cpu, void *sem_arg)
1960 #define FLD(f) abuf->fields.sfmt_empty.f
1961 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1962 const IDESC * UNUSED idesc = abuf->idesc;
1963 int cycles = 0;
1965 int referenced = 0;
1966 int UNUSED insn_referenced = abuf->written;
1967 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1969 return cycles;
1970 #undef FLD
1973 static int
1974 model_iq2000_srulck (SIM_CPU *current_cpu, void *sem_arg)
1976 #define FLD(f) abuf->fields.sfmt_empty.f
1977 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1978 const IDESC * UNUSED idesc = abuf->idesc;
1979 int cycles = 0;
1981 int referenced = 0;
1982 int UNUSED insn_referenced = abuf->written;
1983 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1985 return cycles;
1986 #undef FLD
1989 static int
1990 model_iq2000_srwr (SIM_CPU *current_cpu, void *sem_arg)
1992 #define FLD(f) abuf->fields.sfmt_empty.f
1993 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1994 const IDESC * UNUSED idesc = abuf->idesc;
1995 int cycles = 0;
1997 int referenced = 0;
1998 int UNUSED insn_referenced = abuf->written;
1999 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2001 return cycles;
2002 #undef FLD
2005 static int
2006 model_iq2000_srwru (SIM_CPU *current_cpu, void *sem_arg)
2008 #define FLD(f) abuf->fields.sfmt_empty.f
2009 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2010 const IDESC * UNUSED idesc = abuf->idesc;
2011 int cycles = 0;
2013 int referenced = 0;
2014 int UNUSED insn_referenced = abuf->written;
2015 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2017 return cycles;
2018 #undef FLD
2021 static int
2022 model_iq2000_trapqfl (SIM_CPU *current_cpu, void *sem_arg)
2024 #define FLD(f) abuf->fields.sfmt_empty.f
2025 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2026 const IDESC * UNUSED idesc = abuf->idesc;
2027 int cycles = 0;
2029 int referenced = 0;
2030 int UNUSED insn_referenced = abuf->written;
2031 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2033 return cycles;
2034 #undef FLD
2037 static int
2038 model_iq2000_trapqne (SIM_CPU *current_cpu, void *sem_arg)
2040 #define FLD(f) abuf->fields.sfmt_empty.f
2041 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2042 const IDESC * UNUSED idesc = abuf->idesc;
2043 int cycles = 0;
2045 int referenced = 0;
2046 int UNUSED insn_referenced = abuf->written;
2047 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2049 return cycles;
2050 #undef FLD
2053 static int
2054 model_iq2000_traprel (SIM_CPU *current_cpu, void *sem_arg)
2056 #define FLD(f) abuf->fields.sfmt_empty.f
2057 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2058 const IDESC * UNUSED idesc = abuf->idesc;
2059 int cycles = 0;
2061 int referenced = 0;
2062 int UNUSED insn_referenced = abuf->written;
2063 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2065 return cycles;
2066 #undef FLD
2069 static int
2070 model_iq2000_wb (SIM_CPU *current_cpu, void *sem_arg)
2072 #define FLD(f) abuf->fields.sfmt_empty.f
2073 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2074 const IDESC * UNUSED idesc = abuf->idesc;
2075 int cycles = 0;
2077 int referenced = 0;
2078 int UNUSED insn_referenced = abuf->written;
2079 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2081 return cycles;
2082 #undef FLD
2085 static int
2086 model_iq2000_wbu (SIM_CPU *current_cpu, void *sem_arg)
2088 #define FLD(f) abuf->fields.sfmt_empty.f
2089 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2090 const IDESC * UNUSED idesc = abuf->idesc;
2091 int cycles = 0;
2093 int referenced = 0;
2094 int UNUSED insn_referenced = abuf->written;
2095 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2097 return cycles;
2098 #undef FLD
2101 static int
2102 model_iq2000_wbr1 (SIM_CPU *current_cpu, void *sem_arg)
2104 #define FLD(f) abuf->fields.sfmt_empty.f
2105 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2106 const IDESC * UNUSED idesc = abuf->idesc;
2107 int cycles = 0;
2109 int referenced = 0;
2110 int UNUSED insn_referenced = abuf->written;
2111 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2113 return cycles;
2114 #undef FLD
2117 static int
2118 model_iq2000_wbr1u (SIM_CPU *current_cpu, void *sem_arg)
2120 #define FLD(f) abuf->fields.sfmt_empty.f
2121 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2122 const IDESC * UNUSED idesc = abuf->idesc;
2123 int cycles = 0;
2125 int referenced = 0;
2126 int UNUSED insn_referenced = abuf->written;
2127 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2129 return cycles;
2130 #undef FLD
2133 static int
2134 model_iq2000_wbr30 (SIM_CPU *current_cpu, void *sem_arg)
2136 #define FLD(f) abuf->fields.sfmt_empty.f
2137 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2138 const IDESC * UNUSED idesc = abuf->idesc;
2139 int cycles = 0;
2141 int referenced = 0;
2142 int UNUSED insn_referenced = abuf->written;
2143 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2145 return cycles;
2146 #undef FLD
2149 static int
2150 model_iq2000_wbr30u (SIM_CPU *current_cpu, void *sem_arg)
2152 #define FLD(f) abuf->fields.sfmt_empty.f
2153 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2154 const IDESC * UNUSED idesc = abuf->idesc;
2155 int cycles = 0;
2157 int referenced = 0;
2158 int UNUSED insn_referenced = abuf->written;
2159 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2161 return cycles;
2162 #undef FLD
2165 static int
2166 model_iq2000_wx (SIM_CPU *current_cpu, void *sem_arg)
2168 #define FLD(f) abuf->fields.sfmt_empty.f
2169 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2170 const IDESC * UNUSED idesc = abuf->idesc;
2171 int cycles = 0;
2173 int referenced = 0;
2174 int UNUSED insn_referenced = abuf->written;
2175 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2177 return cycles;
2178 #undef FLD
2181 static int
2182 model_iq2000_wxu (SIM_CPU *current_cpu, void *sem_arg)
2184 #define FLD(f) abuf->fields.sfmt_empty.f
2185 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2186 const IDESC * UNUSED idesc = abuf->idesc;
2187 int cycles = 0;
2189 int referenced = 0;
2190 int UNUSED insn_referenced = abuf->written;
2191 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2193 return cycles;
2194 #undef FLD
2197 static int
2198 model_iq2000_wxr1 (SIM_CPU *current_cpu, void *sem_arg)
2200 #define FLD(f) abuf->fields.sfmt_empty.f
2201 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2202 const IDESC * UNUSED idesc = abuf->idesc;
2203 int cycles = 0;
2205 int referenced = 0;
2206 int UNUSED insn_referenced = abuf->written;
2207 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2209 return cycles;
2210 #undef FLD
2213 static int
2214 model_iq2000_wxr1u (SIM_CPU *current_cpu, void *sem_arg)
2216 #define FLD(f) abuf->fields.sfmt_empty.f
2217 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2218 const IDESC * UNUSED idesc = abuf->idesc;
2219 int cycles = 0;
2221 int referenced = 0;
2222 int UNUSED insn_referenced = abuf->written;
2223 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2225 return cycles;
2226 #undef FLD
2229 static int
2230 model_iq2000_wxr30 (SIM_CPU *current_cpu, void *sem_arg)
2232 #define FLD(f) abuf->fields.sfmt_empty.f
2233 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2234 const IDESC * UNUSED idesc = abuf->idesc;
2235 int cycles = 0;
2237 int referenced = 0;
2238 int UNUSED insn_referenced = abuf->written;
2239 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2241 return cycles;
2242 #undef FLD
2245 static int
2246 model_iq2000_wxr30u (SIM_CPU *current_cpu, void *sem_arg)
2248 #define FLD(f) abuf->fields.sfmt_empty.f
2249 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2250 const IDESC * UNUSED idesc = abuf->idesc;
2251 int cycles = 0;
2253 int referenced = 0;
2254 int UNUSED insn_referenced = abuf->written;
2255 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2257 return cycles;
2258 #undef FLD
2261 static int
2262 model_iq2000_ldw (SIM_CPU *current_cpu, void *sem_arg)
2264 #define FLD(f) abuf->fields.sfmt_addi.f
2265 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2266 const IDESC * UNUSED idesc = abuf->idesc;
2267 int cycles = 0;
2269 int referenced = 0;
2270 int UNUSED insn_referenced = abuf->written;
2271 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2273 return cycles;
2274 #undef FLD
2277 static int
2278 model_iq2000_sdw (SIM_CPU *current_cpu, void *sem_arg)
2280 #define FLD(f) abuf->fields.sfmt_addi.f
2281 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2282 const IDESC * UNUSED idesc = abuf->idesc;
2283 int cycles = 0;
2285 int referenced = 0;
2286 int UNUSED insn_referenced = abuf->written;
2287 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2289 return cycles;
2290 #undef FLD
2293 static int
2294 model_iq2000_j (SIM_CPU *current_cpu, void *sem_arg)
2296 #define FLD(f) abuf->fields.sfmt_j.f
2297 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2298 const IDESC * UNUSED idesc = abuf->idesc;
2299 int cycles = 0;
2301 int referenced = 0;
2302 int UNUSED insn_referenced = abuf->written;
2303 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2305 return cycles;
2306 #undef FLD
2309 static int
2310 model_iq2000_jal (SIM_CPU *current_cpu, void *sem_arg)
2312 #define FLD(f) abuf->fields.sfmt_j.f
2313 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2314 const IDESC * UNUSED idesc = abuf->idesc;
2315 int cycles = 0;
2317 int referenced = 0;
2318 int UNUSED insn_referenced = abuf->written;
2319 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2321 return cycles;
2322 #undef FLD
2325 static int
2326 model_iq2000_bmb (SIM_CPU *current_cpu, void *sem_arg)
2328 #define FLD(f) abuf->fields.sfmt_bbi.f
2329 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2330 const IDESC * UNUSED idesc = abuf->idesc;
2331 int cycles = 0;
2333 int referenced = 0;
2334 int UNUSED insn_referenced = abuf->written;
2335 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2337 return cycles;
2338 #undef FLD
2341 /* We assume UNIT_NONE == 0 because the tables don't always terminate
2342 entries with it. */
2344 /* Model timing data for `iq2000'. */
2346 static const INSN_TIMING iq2000_timing[] = {
2347 { IQ2000BF_INSN_X_INVALID, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2348 { IQ2000BF_INSN_X_AFTER, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2349 { IQ2000BF_INSN_X_BEFORE, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2350 { IQ2000BF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2351 { IQ2000BF_INSN_X_CHAIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2352 { IQ2000BF_INSN_X_BEGIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2353 { IQ2000BF_INSN_ADD, model_iq2000_add, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2354 { IQ2000BF_INSN_ADDI, model_iq2000_addi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2355 { IQ2000BF_INSN_ADDIU, model_iq2000_addiu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2356 { IQ2000BF_INSN_ADDU, model_iq2000_addu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2357 { IQ2000BF_INSN_ADO16, model_iq2000_ado16, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2358 { IQ2000BF_INSN_AND, model_iq2000_and, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2359 { IQ2000BF_INSN_ANDI, model_iq2000_andi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2360 { IQ2000BF_INSN_ANDOI, model_iq2000_andoi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2361 { IQ2000BF_INSN_NOR, model_iq2000_nor, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2362 { IQ2000BF_INSN_OR, model_iq2000_or, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2363 { IQ2000BF_INSN_ORI, model_iq2000_ori, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2364 { IQ2000BF_INSN_RAM, model_iq2000_ram, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2365 { IQ2000BF_INSN_SLL, model_iq2000_sll, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2366 { IQ2000BF_INSN_SLLV, model_iq2000_sllv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2367 { IQ2000BF_INSN_SLMV, model_iq2000_slmv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2368 { IQ2000BF_INSN_SLT, model_iq2000_slt, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2369 { IQ2000BF_INSN_SLTI, model_iq2000_slti, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2370 { IQ2000BF_INSN_SLTIU, model_iq2000_sltiu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2371 { IQ2000BF_INSN_SLTU, model_iq2000_sltu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2372 { IQ2000BF_INSN_SRA, model_iq2000_sra, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2373 { IQ2000BF_INSN_SRAV, model_iq2000_srav, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2374 { IQ2000BF_INSN_SRL, model_iq2000_srl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2375 { IQ2000BF_INSN_SRLV, model_iq2000_srlv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2376 { IQ2000BF_INSN_SRMV, model_iq2000_srmv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2377 { IQ2000BF_INSN_SUB, model_iq2000_sub, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2378 { IQ2000BF_INSN_SUBU, model_iq2000_subu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2379 { IQ2000BF_INSN_XOR, model_iq2000_xor, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2380 { IQ2000BF_INSN_XORI, model_iq2000_xori, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2381 { IQ2000BF_INSN_BBI, model_iq2000_bbi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2382 { IQ2000BF_INSN_BBIN, model_iq2000_bbin, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2383 { IQ2000BF_INSN_BBV, model_iq2000_bbv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2384 { IQ2000BF_INSN_BBVN, model_iq2000_bbvn, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2385 { IQ2000BF_INSN_BEQ, model_iq2000_beq, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2386 { IQ2000BF_INSN_BEQL, model_iq2000_beql, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2387 { IQ2000BF_INSN_BGEZ, model_iq2000_bgez, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2388 { IQ2000BF_INSN_BGEZAL, model_iq2000_bgezal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2389 { IQ2000BF_INSN_BGEZALL, model_iq2000_bgezall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2390 { IQ2000BF_INSN_BGEZL, model_iq2000_bgezl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2391 { IQ2000BF_INSN_BLTZ, model_iq2000_bltz, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2392 { IQ2000BF_INSN_BLTZL, model_iq2000_bltzl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2393 { IQ2000BF_INSN_BLTZAL, model_iq2000_bltzal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2394 { IQ2000BF_INSN_BLTZALL, model_iq2000_bltzall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2395 { IQ2000BF_INSN_BMB0, model_iq2000_bmb0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2396 { IQ2000BF_INSN_BMB1, model_iq2000_bmb1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2397 { IQ2000BF_INSN_BMB2, model_iq2000_bmb2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2398 { IQ2000BF_INSN_BMB3, model_iq2000_bmb3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2399 { IQ2000BF_INSN_BNE, model_iq2000_bne, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2400 { IQ2000BF_INSN_BNEL, model_iq2000_bnel, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2401 { IQ2000BF_INSN_JALR, model_iq2000_jalr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2402 { IQ2000BF_INSN_JR, model_iq2000_jr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2403 { IQ2000BF_INSN_LB, model_iq2000_lb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2404 { IQ2000BF_INSN_LBU, model_iq2000_lbu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2405 { IQ2000BF_INSN_LH, model_iq2000_lh, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2406 { IQ2000BF_INSN_LHU, model_iq2000_lhu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2407 { IQ2000BF_INSN_LUI, model_iq2000_lui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2408 { IQ2000BF_INSN_LW, model_iq2000_lw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2409 { IQ2000BF_INSN_SB, model_iq2000_sb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2410 { IQ2000BF_INSN_SH, model_iq2000_sh, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2411 { IQ2000BF_INSN_SW, model_iq2000_sw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2412 { IQ2000BF_INSN_BREAK, model_iq2000_break, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2413 { IQ2000BF_INSN_SYSCALL, model_iq2000_syscall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2414 { IQ2000BF_INSN_ANDOUI, model_iq2000_andoui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2415 { IQ2000BF_INSN_ORUI, model_iq2000_orui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2416 { IQ2000BF_INSN_BGTZ, model_iq2000_bgtz, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2417 { IQ2000BF_INSN_BGTZL, model_iq2000_bgtzl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2418 { IQ2000BF_INSN_BLEZ, model_iq2000_blez, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2419 { IQ2000BF_INSN_BLEZL, model_iq2000_blezl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2420 { IQ2000BF_INSN_MRGB, model_iq2000_mrgb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2421 { IQ2000BF_INSN_BCTXT, model_iq2000_bctxt, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2422 { IQ2000BF_INSN_BC0F, model_iq2000_bc0f, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2423 { IQ2000BF_INSN_BC0FL, model_iq2000_bc0fl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2424 { IQ2000BF_INSN_BC3F, model_iq2000_bc3f, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2425 { IQ2000BF_INSN_BC3FL, model_iq2000_bc3fl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2426 { IQ2000BF_INSN_BC0T, model_iq2000_bc0t, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2427 { IQ2000BF_INSN_BC0TL, model_iq2000_bc0tl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2428 { IQ2000BF_INSN_BC3T, model_iq2000_bc3t, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2429 { IQ2000BF_INSN_BC3TL, model_iq2000_bc3tl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2430 { IQ2000BF_INSN_CFC0, model_iq2000_cfc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2431 { IQ2000BF_INSN_CFC1, model_iq2000_cfc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2432 { IQ2000BF_INSN_CFC2, model_iq2000_cfc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2433 { IQ2000BF_INSN_CFC3, model_iq2000_cfc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2434 { IQ2000BF_INSN_CHKHDR, model_iq2000_chkhdr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2435 { IQ2000BF_INSN_CTC0, model_iq2000_ctc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2436 { IQ2000BF_INSN_CTC1, model_iq2000_ctc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2437 { IQ2000BF_INSN_CTC2, model_iq2000_ctc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2438 { IQ2000BF_INSN_CTC3, model_iq2000_ctc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2439 { IQ2000BF_INSN_JCR, model_iq2000_jcr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2440 { IQ2000BF_INSN_LUC32, model_iq2000_luc32, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2441 { IQ2000BF_INSN_LUC32L, model_iq2000_luc32l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2442 { IQ2000BF_INSN_LUC64, model_iq2000_luc64, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2443 { IQ2000BF_INSN_LUC64L, model_iq2000_luc64l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2444 { IQ2000BF_INSN_LUK, model_iq2000_luk, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2445 { IQ2000BF_INSN_LULCK, model_iq2000_lulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2446 { IQ2000BF_INSN_LUM32, model_iq2000_lum32, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2447 { IQ2000BF_INSN_LUM32L, model_iq2000_lum32l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2448 { IQ2000BF_INSN_LUM64, model_iq2000_lum64, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2449 { IQ2000BF_INSN_LUM64L, model_iq2000_lum64l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2450 { IQ2000BF_INSN_LUR, model_iq2000_lur, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2451 { IQ2000BF_INSN_LURL, model_iq2000_lurl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2452 { IQ2000BF_INSN_LUULCK, model_iq2000_luulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2453 { IQ2000BF_INSN_MFC0, model_iq2000_mfc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2454 { IQ2000BF_INSN_MFC1, model_iq2000_mfc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2455 { IQ2000BF_INSN_MFC2, model_iq2000_mfc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2456 { IQ2000BF_INSN_MFC3, model_iq2000_mfc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2457 { IQ2000BF_INSN_MTC0, model_iq2000_mtc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2458 { IQ2000BF_INSN_MTC1, model_iq2000_mtc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2459 { IQ2000BF_INSN_MTC2, model_iq2000_mtc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2460 { IQ2000BF_INSN_MTC3, model_iq2000_mtc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2461 { IQ2000BF_INSN_PKRL, model_iq2000_pkrl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2462 { IQ2000BF_INSN_PKRLR1, model_iq2000_pkrlr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2463 { IQ2000BF_INSN_PKRLR30, model_iq2000_pkrlr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2464 { IQ2000BF_INSN_RB, model_iq2000_rb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2465 { IQ2000BF_INSN_RBR1, model_iq2000_rbr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2466 { IQ2000BF_INSN_RBR30, model_iq2000_rbr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2467 { IQ2000BF_INSN_RFE, model_iq2000_rfe, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2468 { IQ2000BF_INSN_RX, model_iq2000_rx, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2469 { IQ2000BF_INSN_RXR1, model_iq2000_rxr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2470 { IQ2000BF_INSN_RXR30, model_iq2000_rxr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2471 { IQ2000BF_INSN_SLEEP, model_iq2000_sleep, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2472 { IQ2000BF_INSN_SRRD, model_iq2000_srrd, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2473 { IQ2000BF_INSN_SRRDL, model_iq2000_srrdl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2474 { IQ2000BF_INSN_SRULCK, model_iq2000_srulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2475 { IQ2000BF_INSN_SRWR, model_iq2000_srwr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2476 { IQ2000BF_INSN_SRWRU, model_iq2000_srwru, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2477 { IQ2000BF_INSN_TRAPQFL, model_iq2000_trapqfl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2478 { IQ2000BF_INSN_TRAPQNE, model_iq2000_trapqne, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2479 { IQ2000BF_INSN_TRAPREL, model_iq2000_traprel, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2480 { IQ2000BF_INSN_WB, model_iq2000_wb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2481 { IQ2000BF_INSN_WBU, model_iq2000_wbu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2482 { IQ2000BF_INSN_WBR1, model_iq2000_wbr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2483 { IQ2000BF_INSN_WBR1U, model_iq2000_wbr1u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2484 { IQ2000BF_INSN_WBR30, model_iq2000_wbr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2485 { IQ2000BF_INSN_WBR30U, model_iq2000_wbr30u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2486 { IQ2000BF_INSN_WX, model_iq2000_wx, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2487 { IQ2000BF_INSN_WXU, model_iq2000_wxu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2488 { IQ2000BF_INSN_WXR1, model_iq2000_wxr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2489 { IQ2000BF_INSN_WXR1U, model_iq2000_wxr1u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2490 { IQ2000BF_INSN_WXR30, model_iq2000_wxr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2491 { IQ2000BF_INSN_WXR30U, model_iq2000_wxr30u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2492 { IQ2000BF_INSN_LDW, model_iq2000_ldw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2493 { IQ2000BF_INSN_SDW, model_iq2000_sdw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2494 { IQ2000BF_INSN_J, model_iq2000_j, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2495 { IQ2000BF_INSN_JAL, model_iq2000_jal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2496 { IQ2000BF_INSN_BMB, model_iq2000_bmb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2499 #endif /* WITH_PROFILE_MODEL_P */
2501 static void
2502 iq2000_model_init (SIM_CPU *cpu)
2504 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_IQ2000_DATA));
2507 #if WITH_PROFILE_MODEL_P
2508 #define TIMING_DATA(td) td
2509 #else
2510 #define TIMING_DATA(td) 0
2511 #endif
2513 static const SIM_MODEL iq2000_models[] =
2515 { "iq2000", & iq2000_mach, MODEL_IQ2000, TIMING_DATA (& iq2000_timing[0]), iq2000_model_init },
2516 { 0 }
2519 /* The properties of this cpu's implementation. */
2521 static const SIM_MACH_IMP_PROPERTIES iq2000bf_imp_properties =
2523 sizeof (SIM_CPU),
2524 #if WITH_SCACHE
2525 sizeof (SCACHE)
2526 #else
2528 #endif
2532 static void
2533 iq2000bf_prepare_run (SIM_CPU *cpu)
2535 if (CPU_IDESC (cpu) == NULL)
2536 iq2000bf_init_idesc_table (cpu);
2539 static const CGEN_INSN *
2540 iq2000bf_get_idata (SIM_CPU *cpu, int inum)
2542 return CPU_IDESC (cpu) [inum].idata;
2545 static void
2546 iq2000_init_cpu (SIM_CPU *cpu)
2548 CPU_REG_FETCH (cpu) = iq2000bf_fetch_register;
2549 CPU_REG_STORE (cpu) = iq2000bf_store_register;
2550 CPU_PC_FETCH (cpu) = iq2000bf_h_pc_get;
2551 CPU_PC_STORE (cpu) = iq2000bf_h_pc_set;
2552 CPU_GET_IDATA (cpu) = iq2000bf_get_idata;
2553 CPU_MAX_INSNS (cpu) = IQ2000BF_INSN__MAX;
2554 CPU_INSN_NAME (cpu) = cgen_insn_name;
2555 CPU_FULL_ENGINE_FN (cpu) = iq2000bf_engine_run_full;
2556 #if WITH_FAST
2557 CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_fast;
2558 #else
2559 CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_full;
2560 #endif
2563 const SIM_MACH iq2000_mach =
2565 "iq2000", "iq2000", MACH_IQ2000,
2566 32, 32, & iq2000_models[0], & iq2000bf_imp_properties,
2567 iq2000_init_cpu,
2568 iq2000bf_prepare_run