]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/iq2000/model.c
Update Copyright year range in all files maintained by GDB.
[thirdparty/binutils-gdb.git] / sim / iq2000 / model.c
1 /* Simulator model support for iq2000bf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2014 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
12 any later version.
13
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
18
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, see <http://www.gnu.org/licenses/>.
21
22 */
23
24 #define WANT_CPU iq2000bf
25 #define WANT_CPU_IQ2000BF
26
27 #include "sim-main.h"
28
29 /* The profiling data is recorded here, but is accessed via the profiling
30 mechanism. After all, this is information for profiling. */
31
32 #if WITH_PROFILE_MODEL_P
33
34 /* Model handlers for each insn. */
35
36 static int
37 model_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
52 static int
53 model_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
68 static int
69 model_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
84 static int
85 model_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
100 static int
101 model_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
116 static int
117 model_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
132 static int
133 model_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
148 static int
149 model_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
164 static int
165 model_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
180 static int
181 model_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
196 static int
197 model_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
212 static int
213 model_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
228 static int
229 model_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
244 static int
245 model_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
260 static int
261 model_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
276 static int
277 model_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
292 static int
293 model_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
308 static int
309 model_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
324 static int
325 model_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
340 static int
341 model_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
356 static int
357 model_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
372 static int
373 model_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
388 static int
389 model_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
404 static int
405 model_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
420 static int
421 model_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
436 static int
437 model_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
452 static int
453 model_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
468 static int
469 model_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
484 static int
485 model_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
500 static int
501 model_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
516 static int
517 model_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
532 static int
533 model_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
548 static int
549 model_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
564 static int
565 model_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
580 static int
581 model_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
596 static int
597 model_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
612 static int
613 model_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
628 static int
629 model_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
644 static int
645 model_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
660 static int
661 model_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
676 static int
677 model_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
692 static int
693 model_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
708 static int
709 model_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
724 static int
725 model_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
740 static int
741 model_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
756 static int
757 model_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
772 static int
773 model_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
788 static int
789 model_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
804 static int
805 model_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
820 static int
821 model_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
836 static int
837 model_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
852 static int
853 model_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
868 static int
869 model_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
884 static int
885 model_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
900 static int
901 model_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
916 static int
917 model_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
932 static int
933 model_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
948 static int
949 model_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
964 static int
965 model_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
980 static int
981 model_iq2000_break (SIM_CPU *current_cpu, void *sem_arg)
982 {
983 #define FLD(f) abuf->fields.sfmt_empty.f
984 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
985 const IDESC * UNUSED idesc = abuf->idesc;
986 int cycles = 0;
987 {
988 int referenced = 0;
989 int UNUSED insn_referenced = abuf->written;
990 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
991 }
992 return cycles;
993 #undef FLD
994 }
995
996 static int
997 model_iq2000_syscall (SIM_CPU *current_cpu, void *sem_arg)
998 {
999 #define FLD(f) abuf->fields.sfmt_empty.f
1000 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1001 const IDESC * UNUSED idesc = abuf->idesc;
1002 int cycles = 0;
1003 {
1004 int referenced = 0;
1005 int UNUSED insn_referenced = abuf->written;
1006 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1007 }
1008 return cycles;
1009 #undef FLD
1010 }
1011
1012 static int
1013 model_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
1028 static int
1029 model_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
1044 static int
1045 model_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
1060 static int
1061 model_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
1076 static int
1077 model_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
1092 static int
1093 model_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
1108 static int
1109 model_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
1124 static int
1125 model_iq2000_bctxt (SIM_CPU *current_cpu, void *sem_arg)
1126 {
1127 #define FLD(f) abuf->fields.sfmt_empty.f
1128 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1129 const IDESC * UNUSED idesc = abuf->idesc;
1130 int cycles = 0;
1131 {
1132 int referenced = 0;
1133 int UNUSED insn_referenced = abuf->written;
1134 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1135 }
1136 return cycles;
1137 #undef FLD
1138 }
1139
1140 static int
1141 model_iq2000_bc0f (SIM_CPU *current_cpu, void *sem_arg)
1142 {
1143 #define FLD(f) abuf->fields.sfmt_empty.f
1144 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1145 const IDESC * UNUSED idesc = abuf->idesc;
1146 int cycles = 0;
1147 {
1148 int referenced = 0;
1149 int UNUSED insn_referenced = abuf->written;
1150 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1151 }
1152 return cycles;
1153 #undef FLD
1154 }
1155
1156 static int
1157 model_iq2000_bc0fl (SIM_CPU *current_cpu, void *sem_arg)
1158 {
1159 #define FLD(f) abuf->fields.sfmt_empty.f
1160 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1161 const IDESC * UNUSED idesc = abuf->idesc;
1162 int cycles = 0;
1163 {
1164 int referenced = 0;
1165 int UNUSED insn_referenced = abuf->written;
1166 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1167 }
1168 return cycles;
1169 #undef FLD
1170 }
1171
1172 static int
1173 model_iq2000_bc3f (SIM_CPU *current_cpu, void *sem_arg)
1174 {
1175 #define FLD(f) abuf->fields.sfmt_empty.f
1176 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1177 const IDESC * UNUSED idesc = abuf->idesc;
1178 int cycles = 0;
1179 {
1180 int referenced = 0;
1181 int UNUSED insn_referenced = abuf->written;
1182 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1183 }
1184 return cycles;
1185 #undef FLD
1186 }
1187
1188 static int
1189 model_iq2000_bc3fl (SIM_CPU *current_cpu, void *sem_arg)
1190 {
1191 #define FLD(f) abuf->fields.sfmt_empty.f
1192 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1193 const IDESC * UNUSED idesc = abuf->idesc;
1194 int cycles = 0;
1195 {
1196 int referenced = 0;
1197 int UNUSED insn_referenced = abuf->written;
1198 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1199 }
1200 return cycles;
1201 #undef FLD
1202 }
1203
1204 static int
1205 model_iq2000_bc0t (SIM_CPU *current_cpu, void *sem_arg)
1206 {
1207 #define FLD(f) abuf->fields.sfmt_empty.f
1208 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1209 const IDESC * UNUSED idesc = abuf->idesc;
1210 int cycles = 0;
1211 {
1212 int referenced = 0;
1213 int UNUSED insn_referenced = abuf->written;
1214 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1215 }
1216 return cycles;
1217 #undef FLD
1218 }
1219
1220 static int
1221 model_iq2000_bc0tl (SIM_CPU *current_cpu, void *sem_arg)
1222 {
1223 #define FLD(f) abuf->fields.sfmt_empty.f
1224 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1225 const IDESC * UNUSED idesc = abuf->idesc;
1226 int cycles = 0;
1227 {
1228 int referenced = 0;
1229 int UNUSED insn_referenced = abuf->written;
1230 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1231 }
1232 return cycles;
1233 #undef FLD
1234 }
1235
1236 static int
1237 model_iq2000_bc3t (SIM_CPU *current_cpu, void *sem_arg)
1238 {
1239 #define FLD(f) abuf->fields.sfmt_empty.f
1240 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1241 const IDESC * UNUSED idesc = abuf->idesc;
1242 int cycles = 0;
1243 {
1244 int referenced = 0;
1245 int UNUSED insn_referenced = abuf->written;
1246 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1247 }
1248 return cycles;
1249 #undef FLD
1250 }
1251
1252 static int
1253 model_iq2000_bc3tl (SIM_CPU *current_cpu, void *sem_arg)
1254 {
1255 #define FLD(f) abuf->fields.sfmt_empty.f
1256 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1257 const IDESC * UNUSED idesc = abuf->idesc;
1258 int cycles = 0;
1259 {
1260 int referenced = 0;
1261 int UNUSED insn_referenced = abuf->written;
1262 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1263 }
1264 return cycles;
1265 #undef FLD
1266 }
1267
1268 static int
1269 model_iq2000_cfc0 (SIM_CPU *current_cpu, void *sem_arg)
1270 {
1271 #define FLD(f) abuf->fields.sfmt_empty.f
1272 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1273 const IDESC * UNUSED idesc = abuf->idesc;
1274 int cycles = 0;
1275 {
1276 int referenced = 0;
1277 int UNUSED insn_referenced = abuf->written;
1278 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1279 }
1280 return cycles;
1281 #undef FLD
1282 }
1283
1284 static int
1285 model_iq2000_cfc1 (SIM_CPU *current_cpu, void *sem_arg)
1286 {
1287 #define FLD(f) abuf->fields.sfmt_empty.f
1288 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1289 const IDESC * UNUSED idesc = abuf->idesc;
1290 int cycles = 0;
1291 {
1292 int referenced = 0;
1293 int UNUSED insn_referenced = abuf->written;
1294 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1295 }
1296 return cycles;
1297 #undef FLD
1298 }
1299
1300 static int
1301 model_iq2000_cfc2 (SIM_CPU *current_cpu, void *sem_arg)
1302 {
1303 #define FLD(f) abuf->fields.sfmt_empty.f
1304 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1305 const IDESC * UNUSED idesc = abuf->idesc;
1306 int cycles = 0;
1307 {
1308 int referenced = 0;
1309 int UNUSED insn_referenced = abuf->written;
1310 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1311 }
1312 return cycles;
1313 #undef FLD
1314 }
1315
1316 static int
1317 model_iq2000_cfc3 (SIM_CPU *current_cpu, void *sem_arg)
1318 {
1319 #define FLD(f) abuf->fields.sfmt_empty.f
1320 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1321 const IDESC * UNUSED idesc = abuf->idesc;
1322 int cycles = 0;
1323 {
1324 int referenced = 0;
1325 int UNUSED insn_referenced = abuf->written;
1326 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1327 }
1328 return cycles;
1329 #undef FLD
1330 }
1331
1332 static int
1333 model_iq2000_chkhdr (SIM_CPU *current_cpu, void *sem_arg)
1334 {
1335 #define FLD(f) abuf->fields.sfmt_empty.f
1336 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1337 const IDESC * UNUSED idesc = abuf->idesc;
1338 int cycles = 0;
1339 {
1340 int referenced = 0;
1341 int UNUSED insn_referenced = abuf->written;
1342 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1343 }
1344 return cycles;
1345 #undef FLD
1346 }
1347
1348 static int
1349 model_iq2000_ctc0 (SIM_CPU *current_cpu, void *sem_arg)
1350 {
1351 #define FLD(f) abuf->fields.sfmt_empty.f
1352 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1353 const IDESC * UNUSED idesc = abuf->idesc;
1354 int cycles = 0;
1355 {
1356 int referenced = 0;
1357 int UNUSED insn_referenced = abuf->written;
1358 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1359 }
1360 return cycles;
1361 #undef FLD
1362 }
1363
1364 static int
1365 model_iq2000_ctc1 (SIM_CPU *current_cpu, void *sem_arg)
1366 {
1367 #define FLD(f) abuf->fields.sfmt_empty.f
1368 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1369 const IDESC * UNUSED idesc = abuf->idesc;
1370 int cycles = 0;
1371 {
1372 int referenced = 0;
1373 int UNUSED insn_referenced = abuf->written;
1374 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1375 }
1376 return cycles;
1377 #undef FLD
1378 }
1379
1380 static int
1381 model_iq2000_ctc2 (SIM_CPU *current_cpu, void *sem_arg)
1382 {
1383 #define FLD(f) abuf->fields.sfmt_empty.f
1384 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1385 const IDESC * UNUSED idesc = abuf->idesc;
1386 int cycles = 0;
1387 {
1388 int referenced = 0;
1389 int UNUSED insn_referenced = abuf->written;
1390 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1391 }
1392 return cycles;
1393 #undef FLD
1394 }
1395
1396 static int
1397 model_iq2000_ctc3 (SIM_CPU *current_cpu, void *sem_arg)
1398 {
1399 #define FLD(f) abuf->fields.sfmt_empty.f
1400 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1401 const IDESC * UNUSED idesc = abuf->idesc;
1402 int cycles = 0;
1403 {
1404 int referenced = 0;
1405 int UNUSED insn_referenced = abuf->written;
1406 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1407 }
1408 return cycles;
1409 #undef FLD
1410 }
1411
1412 static int
1413 model_iq2000_jcr (SIM_CPU *current_cpu, void *sem_arg)
1414 {
1415 #define FLD(f) abuf->fields.sfmt_empty.f
1416 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1417 const IDESC * UNUSED idesc = abuf->idesc;
1418 int cycles = 0;
1419 {
1420 int referenced = 0;
1421 int UNUSED insn_referenced = abuf->written;
1422 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1423 }
1424 return cycles;
1425 #undef FLD
1426 }
1427
1428 static int
1429 model_iq2000_luc32 (SIM_CPU *current_cpu, void *sem_arg)
1430 {
1431 #define FLD(f) abuf->fields.sfmt_empty.f
1432 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1433 const IDESC * UNUSED idesc = abuf->idesc;
1434 int cycles = 0;
1435 {
1436 int referenced = 0;
1437 int UNUSED insn_referenced = abuf->written;
1438 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1439 }
1440 return cycles;
1441 #undef FLD
1442 }
1443
1444 static int
1445 model_iq2000_luc32l (SIM_CPU *current_cpu, void *sem_arg)
1446 {
1447 #define FLD(f) abuf->fields.sfmt_empty.f
1448 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1449 const IDESC * UNUSED idesc = abuf->idesc;
1450 int cycles = 0;
1451 {
1452 int referenced = 0;
1453 int UNUSED insn_referenced = abuf->written;
1454 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1455 }
1456 return cycles;
1457 #undef FLD
1458 }
1459
1460 static int
1461 model_iq2000_luc64 (SIM_CPU *current_cpu, void *sem_arg)
1462 {
1463 #define FLD(f) abuf->fields.sfmt_empty.f
1464 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1465 const IDESC * UNUSED idesc = abuf->idesc;
1466 int cycles = 0;
1467 {
1468 int referenced = 0;
1469 int UNUSED insn_referenced = abuf->written;
1470 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1471 }
1472 return cycles;
1473 #undef FLD
1474 }
1475
1476 static int
1477 model_iq2000_luc64l (SIM_CPU *current_cpu, void *sem_arg)
1478 {
1479 #define FLD(f) abuf->fields.sfmt_empty.f
1480 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1481 const IDESC * UNUSED idesc = abuf->idesc;
1482 int cycles = 0;
1483 {
1484 int referenced = 0;
1485 int UNUSED insn_referenced = abuf->written;
1486 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1487 }
1488 return cycles;
1489 #undef FLD
1490 }
1491
1492 static int
1493 model_iq2000_luk (SIM_CPU *current_cpu, void *sem_arg)
1494 {
1495 #define FLD(f) abuf->fields.sfmt_empty.f
1496 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1497 const IDESC * UNUSED idesc = abuf->idesc;
1498 int cycles = 0;
1499 {
1500 int referenced = 0;
1501 int UNUSED insn_referenced = abuf->written;
1502 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1503 }
1504 return cycles;
1505 #undef FLD
1506 }
1507
1508 static int
1509 model_iq2000_lulck (SIM_CPU *current_cpu, void *sem_arg)
1510 {
1511 #define FLD(f) abuf->fields.sfmt_empty.f
1512 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1513 const IDESC * UNUSED idesc = abuf->idesc;
1514 int cycles = 0;
1515 {
1516 int referenced = 0;
1517 int UNUSED insn_referenced = abuf->written;
1518 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1519 }
1520 return cycles;
1521 #undef FLD
1522 }
1523
1524 static int
1525 model_iq2000_lum32 (SIM_CPU *current_cpu, void *sem_arg)
1526 {
1527 #define FLD(f) abuf->fields.sfmt_empty.f
1528 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1529 const IDESC * UNUSED idesc = abuf->idesc;
1530 int cycles = 0;
1531 {
1532 int referenced = 0;
1533 int UNUSED insn_referenced = abuf->written;
1534 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1535 }
1536 return cycles;
1537 #undef FLD
1538 }
1539
1540 static int
1541 model_iq2000_lum32l (SIM_CPU *current_cpu, void *sem_arg)
1542 {
1543 #define FLD(f) abuf->fields.sfmt_empty.f
1544 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1545 const IDESC * UNUSED idesc = abuf->idesc;
1546 int cycles = 0;
1547 {
1548 int referenced = 0;
1549 int UNUSED insn_referenced = abuf->written;
1550 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1551 }
1552 return cycles;
1553 #undef FLD
1554 }
1555
1556 static int
1557 model_iq2000_lum64 (SIM_CPU *current_cpu, void *sem_arg)
1558 {
1559 #define FLD(f) abuf->fields.sfmt_empty.f
1560 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1561 const IDESC * UNUSED idesc = abuf->idesc;
1562 int cycles = 0;
1563 {
1564 int referenced = 0;
1565 int UNUSED insn_referenced = abuf->written;
1566 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1567 }
1568 return cycles;
1569 #undef FLD
1570 }
1571
1572 static int
1573 model_iq2000_lum64l (SIM_CPU *current_cpu, void *sem_arg)
1574 {
1575 #define FLD(f) abuf->fields.sfmt_empty.f
1576 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1577 const IDESC * UNUSED idesc = abuf->idesc;
1578 int cycles = 0;
1579 {
1580 int referenced = 0;
1581 int UNUSED insn_referenced = abuf->written;
1582 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1583 }
1584 return cycles;
1585 #undef FLD
1586 }
1587
1588 static int
1589 model_iq2000_lur (SIM_CPU *current_cpu, void *sem_arg)
1590 {
1591 #define FLD(f) abuf->fields.sfmt_empty.f
1592 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1593 const IDESC * UNUSED idesc = abuf->idesc;
1594 int cycles = 0;
1595 {
1596 int referenced = 0;
1597 int UNUSED insn_referenced = abuf->written;
1598 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1599 }
1600 return cycles;
1601 #undef FLD
1602 }
1603
1604 static int
1605 model_iq2000_lurl (SIM_CPU *current_cpu, void *sem_arg)
1606 {
1607 #define FLD(f) abuf->fields.sfmt_empty.f
1608 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1609 const IDESC * UNUSED idesc = abuf->idesc;
1610 int cycles = 0;
1611 {
1612 int referenced = 0;
1613 int UNUSED insn_referenced = abuf->written;
1614 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1615 }
1616 return cycles;
1617 #undef FLD
1618 }
1619
1620 static int
1621 model_iq2000_luulck (SIM_CPU *current_cpu, void *sem_arg)
1622 {
1623 #define FLD(f) abuf->fields.sfmt_empty.f
1624 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1625 const IDESC * UNUSED idesc = abuf->idesc;
1626 int cycles = 0;
1627 {
1628 int referenced = 0;
1629 int UNUSED insn_referenced = abuf->written;
1630 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1631 }
1632 return cycles;
1633 #undef FLD
1634 }
1635
1636 static int
1637 model_iq2000_mfc0 (SIM_CPU *current_cpu, void *sem_arg)
1638 {
1639 #define FLD(f) abuf->fields.sfmt_empty.f
1640 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1641 const IDESC * UNUSED idesc = abuf->idesc;
1642 int cycles = 0;
1643 {
1644 int referenced = 0;
1645 int UNUSED insn_referenced = abuf->written;
1646 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1647 }
1648 return cycles;
1649 #undef FLD
1650 }
1651
1652 static int
1653 model_iq2000_mfc1 (SIM_CPU *current_cpu, void *sem_arg)
1654 {
1655 #define FLD(f) abuf->fields.sfmt_empty.f
1656 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1657 const IDESC * UNUSED idesc = abuf->idesc;
1658 int cycles = 0;
1659 {
1660 int referenced = 0;
1661 int UNUSED insn_referenced = abuf->written;
1662 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1663 }
1664 return cycles;
1665 #undef FLD
1666 }
1667
1668 static int
1669 model_iq2000_mfc2 (SIM_CPU *current_cpu, void *sem_arg)
1670 {
1671 #define FLD(f) abuf->fields.sfmt_empty.f
1672 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1673 const IDESC * UNUSED idesc = abuf->idesc;
1674 int cycles = 0;
1675 {
1676 int referenced = 0;
1677 int UNUSED insn_referenced = abuf->written;
1678 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1679 }
1680 return cycles;
1681 #undef FLD
1682 }
1683
1684 static int
1685 model_iq2000_mfc3 (SIM_CPU *current_cpu, void *sem_arg)
1686 {
1687 #define FLD(f) abuf->fields.sfmt_empty.f
1688 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1689 const IDESC * UNUSED idesc = abuf->idesc;
1690 int cycles = 0;
1691 {
1692 int referenced = 0;
1693 int UNUSED insn_referenced = abuf->written;
1694 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1695 }
1696 return cycles;
1697 #undef FLD
1698 }
1699
1700 static int
1701 model_iq2000_mtc0 (SIM_CPU *current_cpu, void *sem_arg)
1702 {
1703 #define FLD(f) abuf->fields.sfmt_empty.f
1704 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1705 const IDESC * UNUSED idesc = abuf->idesc;
1706 int cycles = 0;
1707 {
1708 int referenced = 0;
1709 int UNUSED insn_referenced = abuf->written;
1710 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1711 }
1712 return cycles;
1713 #undef FLD
1714 }
1715
1716 static int
1717 model_iq2000_mtc1 (SIM_CPU *current_cpu, void *sem_arg)
1718 {
1719 #define FLD(f) abuf->fields.sfmt_empty.f
1720 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1721 const IDESC * UNUSED idesc = abuf->idesc;
1722 int cycles = 0;
1723 {
1724 int referenced = 0;
1725 int UNUSED insn_referenced = abuf->written;
1726 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1727 }
1728 return cycles;
1729 #undef FLD
1730 }
1731
1732 static int
1733 model_iq2000_mtc2 (SIM_CPU *current_cpu, void *sem_arg)
1734 {
1735 #define FLD(f) abuf->fields.sfmt_empty.f
1736 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1737 const IDESC * UNUSED idesc = abuf->idesc;
1738 int cycles = 0;
1739 {
1740 int referenced = 0;
1741 int UNUSED insn_referenced = abuf->written;
1742 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1743 }
1744 return cycles;
1745 #undef FLD
1746 }
1747
1748 static int
1749 model_iq2000_mtc3 (SIM_CPU *current_cpu, void *sem_arg)
1750 {
1751 #define FLD(f) abuf->fields.sfmt_empty.f
1752 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1753 const IDESC * UNUSED idesc = abuf->idesc;
1754 int cycles = 0;
1755 {
1756 int referenced = 0;
1757 int UNUSED insn_referenced = abuf->written;
1758 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1759 }
1760 return cycles;
1761 #undef FLD
1762 }
1763
1764 static int
1765 model_iq2000_pkrl (SIM_CPU *current_cpu, void *sem_arg)
1766 {
1767 #define FLD(f) abuf->fields.sfmt_empty.f
1768 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1769 const IDESC * UNUSED idesc = abuf->idesc;
1770 int cycles = 0;
1771 {
1772 int referenced = 0;
1773 int UNUSED insn_referenced = abuf->written;
1774 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1775 }
1776 return cycles;
1777 #undef FLD
1778 }
1779
1780 static int
1781 model_iq2000_pkrlr1 (SIM_CPU *current_cpu, void *sem_arg)
1782 {
1783 #define FLD(f) abuf->fields.sfmt_empty.f
1784 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1785 const IDESC * UNUSED idesc = abuf->idesc;
1786 int cycles = 0;
1787 {
1788 int referenced = 0;
1789 int UNUSED insn_referenced = abuf->written;
1790 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1791 }
1792 return cycles;
1793 #undef FLD
1794 }
1795
1796 static int
1797 model_iq2000_pkrlr30 (SIM_CPU *current_cpu, void *sem_arg)
1798 {
1799 #define FLD(f) abuf->fields.sfmt_empty.f
1800 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1801 const IDESC * UNUSED idesc = abuf->idesc;
1802 int cycles = 0;
1803 {
1804 int referenced = 0;
1805 int UNUSED insn_referenced = abuf->written;
1806 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1807 }
1808 return cycles;
1809 #undef FLD
1810 }
1811
1812 static int
1813 model_iq2000_rb (SIM_CPU *current_cpu, void *sem_arg)
1814 {
1815 #define FLD(f) abuf->fields.sfmt_empty.f
1816 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1817 const IDESC * UNUSED idesc = abuf->idesc;
1818 int cycles = 0;
1819 {
1820 int referenced = 0;
1821 int UNUSED insn_referenced = abuf->written;
1822 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1823 }
1824 return cycles;
1825 #undef FLD
1826 }
1827
1828 static int
1829 model_iq2000_rbr1 (SIM_CPU *current_cpu, void *sem_arg)
1830 {
1831 #define FLD(f) abuf->fields.sfmt_empty.f
1832 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1833 const IDESC * UNUSED idesc = abuf->idesc;
1834 int cycles = 0;
1835 {
1836 int referenced = 0;
1837 int UNUSED insn_referenced = abuf->written;
1838 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1839 }
1840 return cycles;
1841 #undef FLD
1842 }
1843
1844 static int
1845 model_iq2000_rbr30 (SIM_CPU *current_cpu, void *sem_arg)
1846 {
1847 #define FLD(f) abuf->fields.sfmt_empty.f
1848 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1849 const IDESC * UNUSED idesc = abuf->idesc;
1850 int cycles = 0;
1851 {
1852 int referenced = 0;
1853 int UNUSED insn_referenced = abuf->written;
1854 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1855 }
1856 return cycles;
1857 #undef FLD
1858 }
1859
1860 static int
1861 model_iq2000_rfe (SIM_CPU *current_cpu, void *sem_arg)
1862 {
1863 #define FLD(f) abuf->fields.sfmt_empty.f
1864 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1865 const IDESC * UNUSED idesc = abuf->idesc;
1866 int cycles = 0;
1867 {
1868 int referenced = 0;
1869 int UNUSED insn_referenced = abuf->written;
1870 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1871 }
1872 return cycles;
1873 #undef FLD
1874 }
1875
1876 static int
1877 model_iq2000_rx (SIM_CPU *current_cpu, void *sem_arg)
1878 {
1879 #define FLD(f) abuf->fields.sfmt_empty.f
1880 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1881 const IDESC * UNUSED idesc = abuf->idesc;
1882 int cycles = 0;
1883 {
1884 int referenced = 0;
1885 int UNUSED insn_referenced = abuf->written;
1886 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1887 }
1888 return cycles;
1889 #undef FLD
1890 }
1891
1892 static int
1893 model_iq2000_rxr1 (SIM_CPU *current_cpu, void *sem_arg)
1894 {
1895 #define FLD(f) abuf->fields.sfmt_empty.f
1896 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1897 const IDESC * UNUSED idesc = abuf->idesc;
1898 int cycles = 0;
1899 {
1900 int referenced = 0;
1901 int UNUSED insn_referenced = abuf->written;
1902 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1903 }
1904 return cycles;
1905 #undef FLD
1906 }
1907
1908 static int
1909 model_iq2000_rxr30 (SIM_CPU *current_cpu, void *sem_arg)
1910 {
1911 #define FLD(f) abuf->fields.sfmt_empty.f
1912 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1913 const IDESC * UNUSED idesc = abuf->idesc;
1914 int cycles = 0;
1915 {
1916 int referenced = 0;
1917 int UNUSED insn_referenced = abuf->written;
1918 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1919 }
1920 return cycles;
1921 #undef FLD
1922 }
1923
1924 static int
1925 model_iq2000_sleep (SIM_CPU *current_cpu, void *sem_arg)
1926 {
1927 #define FLD(f) abuf->fields.sfmt_empty.f
1928 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1929 const IDESC * UNUSED idesc = abuf->idesc;
1930 int cycles = 0;
1931 {
1932 int referenced = 0;
1933 int UNUSED insn_referenced = abuf->written;
1934 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1935 }
1936 return cycles;
1937 #undef FLD
1938 }
1939
1940 static int
1941 model_iq2000_srrd (SIM_CPU *current_cpu, void *sem_arg)
1942 {
1943 #define FLD(f) abuf->fields.sfmt_empty.f
1944 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1945 const IDESC * UNUSED idesc = abuf->idesc;
1946 int cycles = 0;
1947 {
1948 int referenced = 0;
1949 int UNUSED insn_referenced = abuf->written;
1950 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1951 }
1952 return cycles;
1953 #undef FLD
1954 }
1955
1956 static int
1957 model_iq2000_srrdl (SIM_CPU *current_cpu, void *sem_arg)
1958 {
1959 #define FLD(f) abuf->fields.sfmt_empty.f
1960 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1961 const IDESC * UNUSED idesc = abuf->idesc;
1962 int cycles = 0;
1963 {
1964 int referenced = 0;
1965 int UNUSED insn_referenced = abuf->written;
1966 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1967 }
1968 return cycles;
1969 #undef FLD
1970 }
1971
1972 static int
1973 model_iq2000_srulck (SIM_CPU *current_cpu, void *sem_arg)
1974 {
1975 #define FLD(f) abuf->fields.sfmt_empty.f
1976 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1977 const IDESC * UNUSED idesc = abuf->idesc;
1978 int cycles = 0;
1979 {
1980 int referenced = 0;
1981 int UNUSED insn_referenced = abuf->written;
1982 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1983 }
1984 return cycles;
1985 #undef FLD
1986 }
1987
1988 static int
1989 model_iq2000_srwr (SIM_CPU *current_cpu, void *sem_arg)
1990 {
1991 #define FLD(f) abuf->fields.sfmt_empty.f
1992 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1993 const IDESC * UNUSED idesc = abuf->idesc;
1994 int cycles = 0;
1995 {
1996 int referenced = 0;
1997 int UNUSED insn_referenced = abuf->written;
1998 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1999 }
2000 return cycles;
2001 #undef FLD
2002 }
2003
2004 static int
2005 model_iq2000_srwru (SIM_CPU *current_cpu, void *sem_arg)
2006 {
2007 #define FLD(f) abuf->fields.sfmt_empty.f
2008 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2009 const IDESC * UNUSED idesc = abuf->idesc;
2010 int cycles = 0;
2011 {
2012 int referenced = 0;
2013 int UNUSED insn_referenced = abuf->written;
2014 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2015 }
2016 return cycles;
2017 #undef FLD
2018 }
2019
2020 static int
2021 model_iq2000_trapqfl (SIM_CPU *current_cpu, void *sem_arg)
2022 {
2023 #define FLD(f) abuf->fields.sfmt_empty.f
2024 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2025 const IDESC * UNUSED idesc = abuf->idesc;
2026 int cycles = 0;
2027 {
2028 int referenced = 0;
2029 int UNUSED insn_referenced = abuf->written;
2030 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2031 }
2032 return cycles;
2033 #undef FLD
2034 }
2035
2036 static int
2037 model_iq2000_trapqne (SIM_CPU *current_cpu, void *sem_arg)
2038 {
2039 #define FLD(f) abuf->fields.sfmt_empty.f
2040 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2041 const IDESC * UNUSED idesc = abuf->idesc;
2042 int cycles = 0;
2043 {
2044 int referenced = 0;
2045 int UNUSED insn_referenced = abuf->written;
2046 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2047 }
2048 return cycles;
2049 #undef FLD
2050 }
2051
2052 static int
2053 model_iq2000_traprel (SIM_CPU *current_cpu, void *sem_arg)
2054 {
2055 #define FLD(f) abuf->fields.sfmt_empty.f
2056 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2057 const IDESC * UNUSED idesc = abuf->idesc;
2058 int cycles = 0;
2059 {
2060 int referenced = 0;
2061 int UNUSED insn_referenced = abuf->written;
2062 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2063 }
2064 return cycles;
2065 #undef FLD
2066 }
2067
2068 static int
2069 model_iq2000_wb (SIM_CPU *current_cpu, void *sem_arg)
2070 {
2071 #define FLD(f) abuf->fields.sfmt_empty.f
2072 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2073 const IDESC * UNUSED idesc = abuf->idesc;
2074 int cycles = 0;
2075 {
2076 int referenced = 0;
2077 int UNUSED insn_referenced = abuf->written;
2078 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2079 }
2080 return cycles;
2081 #undef FLD
2082 }
2083
2084 static int
2085 model_iq2000_wbu (SIM_CPU *current_cpu, void *sem_arg)
2086 {
2087 #define FLD(f) abuf->fields.sfmt_empty.f
2088 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2089 const IDESC * UNUSED idesc = abuf->idesc;
2090 int cycles = 0;
2091 {
2092 int referenced = 0;
2093 int UNUSED insn_referenced = abuf->written;
2094 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2095 }
2096 return cycles;
2097 #undef FLD
2098 }
2099
2100 static int
2101 model_iq2000_wbr1 (SIM_CPU *current_cpu, void *sem_arg)
2102 {
2103 #define FLD(f) abuf->fields.sfmt_empty.f
2104 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2105 const IDESC * UNUSED idesc = abuf->idesc;
2106 int cycles = 0;
2107 {
2108 int referenced = 0;
2109 int UNUSED insn_referenced = abuf->written;
2110 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2111 }
2112 return cycles;
2113 #undef FLD
2114 }
2115
2116 static int
2117 model_iq2000_wbr1u (SIM_CPU *current_cpu, void *sem_arg)
2118 {
2119 #define FLD(f) abuf->fields.sfmt_empty.f
2120 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2121 const IDESC * UNUSED idesc = abuf->idesc;
2122 int cycles = 0;
2123 {
2124 int referenced = 0;
2125 int UNUSED insn_referenced = abuf->written;
2126 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2127 }
2128 return cycles;
2129 #undef FLD
2130 }
2131
2132 static int
2133 model_iq2000_wbr30 (SIM_CPU *current_cpu, void *sem_arg)
2134 {
2135 #define FLD(f) abuf->fields.sfmt_empty.f
2136 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2137 const IDESC * UNUSED idesc = abuf->idesc;
2138 int cycles = 0;
2139 {
2140 int referenced = 0;
2141 int UNUSED insn_referenced = abuf->written;
2142 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2143 }
2144 return cycles;
2145 #undef FLD
2146 }
2147
2148 static int
2149 model_iq2000_wbr30u (SIM_CPU *current_cpu, void *sem_arg)
2150 {
2151 #define FLD(f) abuf->fields.sfmt_empty.f
2152 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2153 const IDESC * UNUSED idesc = abuf->idesc;
2154 int cycles = 0;
2155 {
2156 int referenced = 0;
2157 int UNUSED insn_referenced = abuf->written;
2158 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2159 }
2160 return cycles;
2161 #undef FLD
2162 }
2163
2164 static int
2165 model_iq2000_wx (SIM_CPU *current_cpu, void *sem_arg)
2166 {
2167 #define FLD(f) abuf->fields.sfmt_empty.f
2168 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2169 const IDESC * UNUSED idesc = abuf->idesc;
2170 int cycles = 0;
2171 {
2172 int referenced = 0;
2173 int UNUSED insn_referenced = abuf->written;
2174 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2175 }
2176 return cycles;
2177 #undef FLD
2178 }
2179
2180 static int
2181 model_iq2000_wxu (SIM_CPU *current_cpu, void *sem_arg)
2182 {
2183 #define FLD(f) abuf->fields.sfmt_empty.f
2184 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2185 const IDESC * UNUSED idesc = abuf->idesc;
2186 int cycles = 0;
2187 {
2188 int referenced = 0;
2189 int UNUSED insn_referenced = abuf->written;
2190 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2191 }
2192 return cycles;
2193 #undef FLD
2194 }
2195
2196 static int
2197 model_iq2000_wxr1 (SIM_CPU *current_cpu, void *sem_arg)
2198 {
2199 #define FLD(f) abuf->fields.sfmt_empty.f
2200 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2201 const IDESC * UNUSED idesc = abuf->idesc;
2202 int cycles = 0;
2203 {
2204 int referenced = 0;
2205 int UNUSED insn_referenced = abuf->written;
2206 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2207 }
2208 return cycles;
2209 #undef FLD
2210 }
2211
2212 static int
2213 model_iq2000_wxr1u (SIM_CPU *current_cpu, void *sem_arg)
2214 {
2215 #define FLD(f) abuf->fields.sfmt_empty.f
2216 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2217 const IDESC * UNUSED idesc = abuf->idesc;
2218 int cycles = 0;
2219 {
2220 int referenced = 0;
2221 int UNUSED insn_referenced = abuf->written;
2222 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2223 }
2224 return cycles;
2225 #undef FLD
2226 }
2227
2228 static int
2229 model_iq2000_wxr30 (SIM_CPU *current_cpu, void *sem_arg)
2230 {
2231 #define FLD(f) abuf->fields.sfmt_empty.f
2232 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2233 const IDESC * UNUSED idesc = abuf->idesc;
2234 int cycles = 0;
2235 {
2236 int referenced = 0;
2237 int UNUSED insn_referenced = abuf->written;
2238 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2239 }
2240 return cycles;
2241 #undef FLD
2242 }
2243
2244 static int
2245 model_iq2000_wxr30u (SIM_CPU *current_cpu, void *sem_arg)
2246 {
2247 #define FLD(f) abuf->fields.sfmt_empty.f
2248 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2249 const IDESC * UNUSED idesc = abuf->idesc;
2250 int cycles = 0;
2251 {
2252 int referenced = 0;
2253 int UNUSED insn_referenced = abuf->written;
2254 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2255 }
2256 return cycles;
2257 #undef FLD
2258 }
2259
2260 static int
2261 model_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
2276 static int
2277 model_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
2292 static int
2293 model_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
2308 static int
2309 model_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
2324 static int
2325 model_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
2345 static 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
2500 static void
2501 iq2000_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
2512 static const MODEL iq2000_models[] =
2513 {
2514 { "iq2000", & iq2000_mach, MODEL_IQ2000, TIMING_DATA (& iq2000_timing[0]), iq2000_model_init },
2515 { 0 }
2516 };
2517
2518 /* The properties of this cpu's implementation. */
2519
2520 static const MACH_IMP_PROPERTIES iq2000bf_imp_properties =
2521 {
2522 sizeof (SIM_CPU),
2523 #if WITH_SCACHE
2524 sizeof (SCACHE)
2525 #else
2526 0
2527 #endif
2528 };
2529
2530
2531 static void
2532 iq2000bf_prepare_run (SIM_CPU *cpu)
2533 {
2534 if (CPU_IDESC (cpu) == NULL)
2535 iq2000bf_init_idesc_table (cpu);
2536 }
2537
2538 static const CGEN_INSN *
2539 iq2000bf_get_idata (SIM_CPU *cpu, int inum)
2540 {
2541 return CPU_IDESC (cpu) [inum].idata;
2542 }
2543
2544 static void
2545 iq2000_init_cpu (SIM_CPU *cpu)
2546 {
2547 CPU_REG_FETCH (cpu) = iq2000bf_fetch_register;
2548 CPU_REG_STORE (cpu) = iq2000bf_store_register;
2549 CPU_PC_FETCH (cpu) = iq2000bf_h_pc_get;
2550 CPU_PC_STORE (cpu) = iq2000bf_h_pc_set;
2551 CPU_GET_IDATA (cpu) = iq2000bf_get_idata;
2552 CPU_MAX_INSNS (cpu) = IQ2000BF_INSN__MAX;
2553 CPU_INSN_NAME (cpu) = cgen_insn_name;
2554 CPU_FULL_ENGINE_FN (cpu) = iq2000bf_engine_run_full;
2555 #if WITH_FAST
2556 CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_fast;
2557 #else
2558 CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_full;
2559 #endif
2560 }
2561
2562 const MACH iq2000_mach =
2563 {
2564 "iq2000", "iq2000", MACH_IQ2000,
2565 32, 32, & iq2000_models[0], & iq2000bf_imp_properties,
2566 iq2000_init_cpu,
2567 iq2000bf_prepare_run
2568 };
2569