1 /* Simulator model support for iq2000bf.
2 
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4 
5 Copyright 1996-2013 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
model_iq2000_add(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_addi(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_addiu(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_addu(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_ado16(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_and(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_andi(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_andoi(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_nor(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_or(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_ori(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_ram(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sll(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sllv(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_slmv(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_slt(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_slti(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sltiu(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sltu(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sra(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_srav(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_srl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_srlv(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_srmv(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sub(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_subu(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_xor(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_xori(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bbi(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bbin(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bbv(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bbvn(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_beq(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_beql(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bgez(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bgezal(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bgezall(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bgezl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bltz(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bltzl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bltzal(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bltzall(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bmb0(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bmb1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bmb2(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bmb3(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bne(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bnel(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_jalr(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_jr(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lb(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lbu(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lh(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lhu(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lui(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lw(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sb(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sh(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sw(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_break(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_syscall(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_andoui(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_orui(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bgtz(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bgtzl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_blez(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_blezl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_mrgb(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bctxt(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bc0f(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bc0fl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bc3f(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bc3fl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bc0t(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bc0tl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bc3t(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bc3tl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_cfc0(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_cfc1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_cfc2(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_cfc3(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_chkhdr(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_ctc0(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_ctc1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_ctc2(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_ctc3(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_jcr(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_luc32(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_luc32l(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_luc64(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_luc64l(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_luk(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lulck(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lum32(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lum32l(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lum64(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lum64l(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lur(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_lurl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_luulck(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_mfc0(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_mfc1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_mfc2(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_mfc3(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_mtc0(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_mtc1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_mtc2(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_mtc3(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_pkrl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_pkrlr1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_pkrlr30(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_rb(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_rbr1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_rbr30(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_rfe(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_rx(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_rxr1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_rxr30(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sleep(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_srrd(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_srrdl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_srulck(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_srwr(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_srwru(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_trapqfl(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_trapqne(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_traprel(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wb(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wbu(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wbr1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wbr1u(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wbr30(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wbr30u(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wx(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wxu(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wxr1(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wxr1u(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wxr30(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_wxr30u(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_ldw(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_sdw(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_j(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_jal(SIM_CPU * current_cpu,void * sem_arg)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
model_iq2000_bmb(SIM_CPU * current_cpu,void * sem_arg)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
iq2000_model_init(SIM_CPU * cpu)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
iq2000bf_prepare_run(SIM_CPU * cpu)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 *
iq2000bf_get_idata(SIM_CPU * cpu,int inum)2539 iq2000bf_get_idata (SIM_CPU *cpu, int inum)
2540 {
2541   return CPU_IDESC (cpu) [inum].idata;
2542 }
2543 
2544 static void
iq2000_init_cpu(SIM_CPU * cpu)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 
2570