OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [sim/] [iq2000/] [model.c] - Blame information for rev 300

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 24 jeremybenn
/* Simulator model support for iq2000bf.
2
 
3
THIS FILE IS MACHINE GENERATED WITH CGEN.
4
 
5
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
6
 
7
This file is part of the GNU simulators.
8
 
9
This program 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 of the License, or
12
(at your option) any later version.
13
 
14
This program is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
GNU General Public License for more details.
18
 
19
You should have received a copy of the GNU General Public License
20
along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
 
22
*/
23
 
24
#define WANT_CPU iq2000bf
25
#define WANT_CPU_IQ2000BF
26
 
27
#include "sim-main.h"
28
 
29
/* The profiling data is recorded here, but is accessed via the profiling
30
   mechanism.  After all, this is information for profiling.  */
31
 
32
#if WITH_PROFILE_MODEL_P
33
 
34
/* Model handlers for each insn.  */
35
 
36
static int
37
model_iq2000_add (SIM_CPU *current_cpu, void *sem_arg)
38
{
39
#define FLD(f) abuf->fields.sfmt_mrgb.f
40
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
41
  const IDESC * UNUSED idesc = abuf->idesc;
42
  int cycles = 0;
43
  {
44
    int referenced = 0;
45
    int UNUSED insn_referenced = abuf->written;
46
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
47
  }
48
  return cycles;
49
#undef FLD
50
}
51
 
52
static int
53
model_iq2000_addi (SIM_CPU *current_cpu, void *sem_arg)
54
{
55
#define FLD(f) abuf->fields.sfmt_addi.f
56
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
57
  const IDESC * UNUSED idesc = abuf->idesc;
58
  int cycles = 0;
59
  {
60
    int referenced = 0;
61
    int UNUSED insn_referenced = abuf->written;
62
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
63
  }
64
  return cycles;
65
#undef FLD
66
}
67
 
68
static int
69
model_iq2000_addiu (SIM_CPU *current_cpu, void *sem_arg)
70
{
71
#define FLD(f) abuf->fields.sfmt_addi.f
72
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
73
  const IDESC * UNUSED idesc = abuf->idesc;
74
  int cycles = 0;
75
  {
76
    int referenced = 0;
77
    int UNUSED insn_referenced = abuf->written;
78
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
79
  }
80
  return cycles;
81
#undef FLD
82
}
83
 
84
static int
85
model_iq2000_addu (SIM_CPU *current_cpu, void *sem_arg)
86
{
87
#define FLD(f) abuf->fields.sfmt_mrgb.f
88
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
89
  const IDESC * UNUSED idesc = abuf->idesc;
90
  int cycles = 0;
91
  {
92
    int referenced = 0;
93
    int UNUSED insn_referenced = abuf->written;
94
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
95
  }
96
  return cycles;
97
#undef FLD
98
}
99
 
100
static int
101
model_iq2000_ado16 (SIM_CPU *current_cpu, void *sem_arg)
102
{
103
#define FLD(f) abuf->fields.sfmt_mrgb.f
104
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
105
  const IDESC * UNUSED idesc = abuf->idesc;
106
  int cycles = 0;
107
  {
108
    int referenced = 0;
109
    int UNUSED insn_referenced = abuf->written;
110
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
111
  }
112
  return cycles;
113
#undef FLD
114
}
115
 
116
static int
117
model_iq2000_and (SIM_CPU *current_cpu, void *sem_arg)
118
{
119
#define FLD(f) abuf->fields.sfmt_mrgb.f
120
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
121
  const IDESC * UNUSED idesc = abuf->idesc;
122
  int cycles = 0;
123
  {
124
    int referenced = 0;
125
    int UNUSED insn_referenced = abuf->written;
126
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
127
  }
128
  return cycles;
129
#undef FLD
130
}
131
 
132
static int
133
model_iq2000_andi (SIM_CPU *current_cpu, void *sem_arg)
134
{
135
#define FLD(f) abuf->fields.sfmt_addi.f
136
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
137
  const IDESC * UNUSED idesc = abuf->idesc;
138
  int cycles = 0;
139
  {
140
    int referenced = 0;
141
    int UNUSED insn_referenced = abuf->written;
142
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
143
  }
144
  return cycles;
145
#undef FLD
146
}
147
 
148
static int
149
model_iq2000_andoi (SIM_CPU *current_cpu, void *sem_arg)
150
{
151
#define FLD(f) abuf->fields.sfmt_addi.f
152
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
153
  const IDESC * UNUSED idesc = abuf->idesc;
154
  int cycles = 0;
155
  {
156
    int referenced = 0;
157
    int UNUSED insn_referenced = abuf->written;
158
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
159
  }
160
  return cycles;
161
#undef FLD
162
}
163
 
164
static int
165
model_iq2000_nor (SIM_CPU *current_cpu, void *sem_arg)
166
{
167
#define FLD(f) abuf->fields.sfmt_mrgb.f
168
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
169
  const IDESC * UNUSED idesc = abuf->idesc;
170
  int cycles = 0;
171
  {
172
    int referenced = 0;
173
    int UNUSED insn_referenced = abuf->written;
174
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
175
  }
176
  return cycles;
177
#undef FLD
178
}
179
 
180
static int
181
model_iq2000_or (SIM_CPU *current_cpu, void *sem_arg)
182
{
183
#define FLD(f) abuf->fields.sfmt_mrgb.f
184
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
185
  const IDESC * UNUSED idesc = abuf->idesc;
186
  int cycles = 0;
187
  {
188
    int referenced = 0;
189
    int UNUSED insn_referenced = abuf->written;
190
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
191
  }
192
  return cycles;
193
#undef FLD
194
}
195
 
196
static int
197
model_iq2000_ori (SIM_CPU *current_cpu, void *sem_arg)
198
{
199
#define FLD(f) abuf->fields.sfmt_addi.f
200
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
201
  const IDESC * UNUSED idesc = abuf->idesc;
202
  int cycles = 0;
203
  {
204
    int referenced = 0;
205
    int UNUSED insn_referenced = abuf->written;
206
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
207
  }
208
  return cycles;
209
#undef FLD
210
}
211
 
212
static int
213
model_iq2000_ram (SIM_CPU *current_cpu, void *sem_arg)
214
{
215
#define FLD(f) abuf->fields.sfmt_ram.f
216
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
217
  const IDESC * UNUSED idesc = abuf->idesc;
218
  int cycles = 0;
219
  {
220
    int referenced = 0;
221
    int UNUSED insn_referenced = abuf->written;
222
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
223
  }
224
  return cycles;
225
#undef FLD
226
}
227
 
228
static int
229
model_iq2000_sll (SIM_CPU *current_cpu, void *sem_arg)
230
{
231
#define FLD(f) abuf->fields.sfmt_ram.f
232
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
233
  const IDESC * UNUSED idesc = abuf->idesc;
234
  int cycles = 0;
235
  {
236
    int referenced = 0;
237
    int UNUSED insn_referenced = abuf->written;
238
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
239
  }
240
  return cycles;
241
#undef FLD
242
}
243
 
244
static int
245
model_iq2000_sllv (SIM_CPU *current_cpu, void *sem_arg)
246
{
247
#define FLD(f) abuf->fields.sfmt_mrgb.f
248
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
249
  const IDESC * UNUSED idesc = abuf->idesc;
250
  int cycles = 0;
251
  {
252
    int referenced = 0;
253
    int UNUSED insn_referenced = abuf->written;
254
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
255
  }
256
  return cycles;
257
#undef FLD
258
}
259
 
260
static int
261
model_iq2000_slmv (SIM_CPU *current_cpu, void *sem_arg)
262
{
263
#define FLD(f) abuf->fields.sfmt_ram.f
264
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
265
  const IDESC * UNUSED idesc = abuf->idesc;
266
  int cycles = 0;
267
  {
268
    int referenced = 0;
269
    int UNUSED insn_referenced = abuf->written;
270
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
271
  }
272
  return cycles;
273
#undef FLD
274
}
275
 
276
static int
277
model_iq2000_slt (SIM_CPU *current_cpu, void *sem_arg)
278
{
279
#define FLD(f) abuf->fields.sfmt_mrgb.f
280
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
281
  const IDESC * UNUSED idesc = abuf->idesc;
282
  int cycles = 0;
283
  {
284
    int referenced = 0;
285
    int UNUSED insn_referenced = abuf->written;
286
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
287
  }
288
  return cycles;
289
#undef FLD
290
}
291
 
292
static int
293
model_iq2000_slti (SIM_CPU *current_cpu, void *sem_arg)
294
{
295
#define FLD(f) abuf->fields.sfmt_addi.f
296
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
297
  const IDESC * UNUSED idesc = abuf->idesc;
298
  int cycles = 0;
299
  {
300
    int referenced = 0;
301
    int UNUSED insn_referenced = abuf->written;
302
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
303
  }
304
  return cycles;
305
#undef FLD
306
}
307
 
308
static int
309
model_iq2000_sltiu (SIM_CPU *current_cpu, void *sem_arg)
310
{
311
#define FLD(f) abuf->fields.sfmt_addi.f
312
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
313
  const IDESC * UNUSED idesc = abuf->idesc;
314
  int cycles = 0;
315
  {
316
    int referenced = 0;
317
    int UNUSED insn_referenced = abuf->written;
318
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
319
  }
320
  return cycles;
321
#undef FLD
322
}
323
 
324
static int
325
model_iq2000_sltu (SIM_CPU *current_cpu, void *sem_arg)
326
{
327
#define FLD(f) abuf->fields.sfmt_mrgb.f
328
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
329
  const IDESC * UNUSED idesc = abuf->idesc;
330
  int cycles = 0;
331
  {
332
    int referenced = 0;
333
    int UNUSED insn_referenced = abuf->written;
334
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
335
  }
336
  return cycles;
337
#undef FLD
338
}
339
 
340
static int
341
model_iq2000_sra (SIM_CPU *current_cpu, void *sem_arg)
342
{
343
#define FLD(f) abuf->fields.sfmt_ram.f
344
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
345
  const IDESC * UNUSED idesc = abuf->idesc;
346
  int cycles = 0;
347
  {
348
    int referenced = 0;
349
    int UNUSED insn_referenced = abuf->written;
350
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
351
  }
352
  return cycles;
353
#undef FLD
354
}
355
 
356
static int
357
model_iq2000_srav (SIM_CPU *current_cpu, void *sem_arg)
358
{
359
#define FLD(f) abuf->fields.sfmt_mrgb.f
360
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
361
  const IDESC * UNUSED idesc = abuf->idesc;
362
  int cycles = 0;
363
  {
364
    int referenced = 0;
365
    int UNUSED insn_referenced = abuf->written;
366
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
367
  }
368
  return cycles;
369
#undef FLD
370
}
371
 
372
static int
373
model_iq2000_srl (SIM_CPU *current_cpu, void *sem_arg)
374
{
375
#define FLD(f) abuf->fields.sfmt_ram.f
376
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
377
  const IDESC * UNUSED idesc = abuf->idesc;
378
  int cycles = 0;
379
  {
380
    int referenced = 0;
381
    int UNUSED insn_referenced = abuf->written;
382
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
383
  }
384
  return cycles;
385
#undef FLD
386
}
387
 
388
static int
389
model_iq2000_srlv (SIM_CPU *current_cpu, void *sem_arg)
390
{
391
#define FLD(f) abuf->fields.sfmt_mrgb.f
392
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
393
  const IDESC * UNUSED idesc = abuf->idesc;
394
  int cycles = 0;
395
  {
396
    int referenced = 0;
397
    int UNUSED insn_referenced = abuf->written;
398
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
399
  }
400
  return cycles;
401
#undef FLD
402
}
403
 
404
static int
405
model_iq2000_srmv (SIM_CPU *current_cpu, void *sem_arg)
406
{
407
#define FLD(f) abuf->fields.sfmt_ram.f
408
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
409
  const IDESC * UNUSED idesc = abuf->idesc;
410
  int cycles = 0;
411
  {
412
    int referenced = 0;
413
    int UNUSED insn_referenced = abuf->written;
414
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
415
  }
416
  return cycles;
417
#undef FLD
418
}
419
 
420
static int
421
model_iq2000_sub (SIM_CPU *current_cpu, void *sem_arg)
422
{
423
#define FLD(f) abuf->fields.sfmt_mrgb.f
424
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
425
  const IDESC * UNUSED idesc = abuf->idesc;
426
  int cycles = 0;
427
  {
428
    int referenced = 0;
429
    int UNUSED insn_referenced = abuf->written;
430
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
431
  }
432
  return cycles;
433
#undef FLD
434
}
435
 
436
static int
437
model_iq2000_subu (SIM_CPU *current_cpu, void *sem_arg)
438
{
439
#define FLD(f) abuf->fields.sfmt_mrgb.f
440
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
441
  const IDESC * UNUSED idesc = abuf->idesc;
442
  int cycles = 0;
443
  {
444
    int referenced = 0;
445
    int UNUSED insn_referenced = abuf->written;
446
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
447
  }
448
  return cycles;
449
#undef FLD
450
}
451
 
452
static int
453
model_iq2000_xor (SIM_CPU *current_cpu, void *sem_arg)
454
{
455
#define FLD(f) abuf->fields.sfmt_mrgb.f
456
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
457
  const IDESC * UNUSED idesc = abuf->idesc;
458
  int cycles = 0;
459
  {
460
    int referenced = 0;
461
    int UNUSED insn_referenced = abuf->written;
462
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
463
  }
464
  return cycles;
465
#undef FLD
466
}
467
 
468
static int
469
model_iq2000_xori (SIM_CPU *current_cpu, void *sem_arg)
470
{
471
#define FLD(f) abuf->fields.sfmt_addi.f
472
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
473
  const IDESC * UNUSED idesc = abuf->idesc;
474
  int cycles = 0;
475
  {
476
    int referenced = 0;
477
    int UNUSED insn_referenced = abuf->written;
478
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
479
  }
480
  return cycles;
481
#undef FLD
482
}
483
 
484
static int
485
model_iq2000_bbi (SIM_CPU *current_cpu, void *sem_arg)
486
{
487
#define FLD(f) abuf->fields.sfmt_bbi.f
488
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
489
  const IDESC * UNUSED idesc = abuf->idesc;
490
  int cycles = 0;
491
  {
492
    int referenced = 0;
493
    int UNUSED insn_referenced = abuf->written;
494
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
495
  }
496
  return cycles;
497
#undef FLD
498
}
499
 
500
static int
501
model_iq2000_bbin (SIM_CPU *current_cpu, void *sem_arg)
502
{
503
#define FLD(f) abuf->fields.sfmt_bbi.f
504
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
505
  const IDESC * UNUSED idesc = abuf->idesc;
506
  int cycles = 0;
507
  {
508
    int referenced = 0;
509
    int UNUSED insn_referenced = abuf->written;
510
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
511
  }
512
  return cycles;
513
#undef FLD
514
}
515
 
516
static int
517
model_iq2000_bbv (SIM_CPU *current_cpu, void *sem_arg)
518
{
519
#define FLD(f) abuf->fields.sfmt_bbi.f
520
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
521
  const IDESC * UNUSED idesc = abuf->idesc;
522
  int cycles = 0;
523
  {
524
    int referenced = 0;
525
    int UNUSED insn_referenced = abuf->written;
526
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
527
  }
528
  return cycles;
529
#undef FLD
530
}
531
 
532
static int
533
model_iq2000_bbvn (SIM_CPU *current_cpu, void *sem_arg)
534
{
535
#define FLD(f) abuf->fields.sfmt_bbi.f
536
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
537
  const IDESC * UNUSED idesc = abuf->idesc;
538
  int cycles = 0;
539
  {
540
    int referenced = 0;
541
    int UNUSED insn_referenced = abuf->written;
542
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
543
  }
544
  return cycles;
545
#undef FLD
546
}
547
 
548
static int
549
model_iq2000_beq (SIM_CPU *current_cpu, void *sem_arg)
550
{
551
#define FLD(f) abuf->fields.sfmt_bbi.f
552
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
553
  const IDESC * UNUSED idesc = abuf->idesc;
554
  int cycles = 0;
555
  {
556
    int referenced = 0;
557
    int UNUSED insn_referenced = abuf->written;
558
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
559
  }
560
  return cycles;
561
#undef FLD
562
}
563
 
564
static int
565
model_iq2000_beql (SIM_CPU *current_cpu, void *sem_arg)
566
{
567
#define FLD(f) abuf->fields.sfmt_bbi.f
568
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
569
  const IDESC * UNUSED idesc = abuf->idesc;
570
  int cycles = 0;
571
  {
572
    int referenced = 0;
573
    int UNUSED insn_referenced = abuf->written;
574
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
575
  }
576
  return cycles;
577
#undef FLD
578
}
579
 
580
static int
581
model_iq2000_bgez (SIM_CPU *current_cpu, void *sem_arg)
582
{
583
#define FLD(f) abuf->fields.sfmt_bbi.f
584
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
585
  const IDESC * UNUSED idesc = abuf->idesc;
586
  int cycles = 0;
587
  {
588
    int referenced = 0;
589
    int UNUSED insn_referenced = abuf->written;
590
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
591
  }
592
  return cycles;
593
#undef FLD
594
}
595
 
596
static int
597
model_iq2000_bgezal (SIM_CPU *current_cpu, void *sem_arg)
598
{
599
#define FLD(f) abuf->fields.sfmt_bbi.f
600
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
601
  const IDESC * UNUSED idesc = abuf->idesc;
602
  int cycles = 0;
603
  {
604
    int referenced = 0;
605
    int UNUSED insn_referenced = abuf->written;
606
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
607
  }
608
  return cycles;
609
#undef FLD
610
}
611
 
612
static int
613
model_iq2000_bgezall (SIM_CPU *current_cpu, void *sem_arg)
614
{
615
#define FLD(f) abuf->fields.sfmt_bbi.f
616
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
617
  const IDESC * UNUSED idesc = abuf->idesc;
618
  int cycles = 0;
619
  {
620
    int referenced = 0;
621
    int UNUSED insn_referenced = abuf->written;
622
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
623
  }
624
  return cycles;
625
#undef FLD
626
}
627
 
628
static int
629
model_iq2000_bgezl (SIM_CPU *current_cpu, void *sem_arg)
630
{
631
#define FLD(f) abuf->fields.sfmt_bbi.f
632
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
633
  const IDESC * UNUSED idesc = abuf->idesc;
634
  int cycles = 0;
635
  {
636
    int referenced = 0;
637
    int UNUSED insn_referenced = abuf->written;
638
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
639
  }
640
  return cycles;
641
#undef FLD
642
}
643
 
644
static int
645
model_iq2000_bltz (SIM_CPU *current_cpu, void *sem_arg)
646
{
647
#define FLD(f) abuf->fields.sfmt_bbi.f
648
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
649
  const IDESC * UNUSED idesc = abuf->idesc;
650
  int cycles = 0;
651
  {
652
    int referenced = 0;
653
    int UNUSED insn_referenced = abuf->written;
654
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
655
  }
656
  return cycles;
657
#undef FLD
658
}
659
 
660
static int
661
model_iq2000_bltzl (SIM_CPU *current_cpu, void *sem_arg)
662
{
663
#define FLD(f) abuf->fields.sfmt_bbi.f
664
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
665
  const IDESC * UNUSED idesc = abuf->idesc;
666
  int cycles = 0;
667
  {
668
    int referenced = 0;
669
    int UNUSED insn_referenced = abuf->written;
670
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
671
  }
672
  return cycles;
673
#undef FLD
674
}
675
 
676
static int
677
model_iq2000_bltzal (SIM_CPU *current_cpu, void *sem_arg)
678
{
679
#define FLD(f) abuf->fields.sfmt_bbi.f
680
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
681
  const IDESC * UNUSED idesc = abuf->idesc;
682
  int cycles = 0;
683
  {
684
    int referenced = 0;
685
    int UNUSED insn_referenced = abuf->written;
686
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
687
  }
688
  return cycles;
689
#undef FLD
690
}
691
 
692
static int
693
model_iq2000_bltzall (SIM_CPU *current_cpu, void *sem_arg)
694
{
695
#define FLD(f) abuf->fields.sfmt_bbi.f
696
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
697
  const IDESC * UNUSED idesc = abuf->idesc;
698
  int cycles = 0;
699
  {
700
    int referenced = 0;
701
    int UNUSED insn_referenced = abuf->written;
702
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
703
  }
704
  return cycles;
705
#undef FLD
706
}
707
 
708
static int
709
model_iq2000_bmb0 (SIM_CPU *current_cpu, void *sem_arg)
710
{
711
#define FLD(f) abuf->fields.sfmt_bbi.f
712
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
713
  const IDESC * UNUSED idesc = abuf->idesc;
714
  int cycles = 0;
715
  {
716
    int referenced = 0;
717
    int UNUSED insn_referenced = abuf->written;
718
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
719
  }
720
  return cycles;
721
#undef FLD
722
}
723
 
724
static int
725
model_iq2000_bmb1 (SIM_CPU *current_cpu, void *sem_arg)
726
{
727
#define FLD(f) abuf->fields.sfmt_bbi.f
728
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
729
  const IDESC * UNUSED idesc = abuf->idesc;
730
  int cycles = 0;
731
  {
732
    int referenced = 0;
733
    int UNUSED insn_referenced = abuf->written;
734
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
735
  }
736
  return cycles;
737
#undef FLD
738
}
739
 
740
static int
741
model_iq2000_bmb2 (SIM_CPU *current_cpu, void *sem_arg)
742
{
743
#define FLD(f) abuf->fields.sfmt_bbi.f
744
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
745
  const IDESC * UNUSED idesc = abuf->idesc;
746
  int cycles = 0;
747
  {
748
    int referenced = 0;
749
    int UNUSED insn_referenced = abuf->written;
750
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
751
  }
752
  return cycles;
753
#undef FLD
754
}
755
 
756
static int
757
model_iq2000_bmb3 (SIM_CPU *current_cpu, void *sem_arg)
758
{
759
#define FLD(f) abuf->fields.sfmt_bbi.f
760
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
761
  const IDESC * UNUSED idesc = abuf->idesc;
762
  int cycles = 0;
763
  {
764
    int referenced = 0;
765
    int UNUSED insn_referenced = abuf->written;
766
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
767
  }
768
  return cycles;
769
#undef FLD
770
}
771
 
772
static int
773
model_iq2000_bne (SIM_CPU *current_cpu, void *sem_arg)
774
{
775
#define FLD(f) abuf->fields.sfmt_bbi.f
776
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
777
  const IDESC * UNUSED idesc = abuf->idesc;
778
  int cycles = 0;
779
  {
780
    int referenced = 0;
781
    int UNUSED insn_referenced = abuf->written;
782
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
783
  }
784
  return cycles;
785
#undef FLD
786
}
787
 
788
static int
789
model_iq2000_bnel (SIM_CPU *current_cpu, void *sem_arg)
790
{
791
#define FLD(f) abuf->fields.sfmt_bbi.f
792
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
793
  const IDESC * UNUSED idesc = abuf->idesc;
794
  int cycles = 0;
795
  {
796
    int referenced = 0;
797
    int UNUSED insn_referenced = abuf->written;
798
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
799
  }
800
  return cycles;
801
#undef FLD
802
}
803
 
804
static int
805
model_iq2000_jalr (SIM_CPU *current_cpu, void *sem_arg)
806
{
807
#define FLD(f) abuf->fields.sfmt_mrgb.f
808
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
809
  const IDESC * UNUSED idesc = abuf->idesc;
810
  int cycles = 0;
811
  {
812
    int referenced = 0;
813
    int UNUSED insn_referenced = abuf->written;
814
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
815
  }
816
  return cycles;
817
#undef FLD
818
}
819
 
820
static int
821
model_iq2000_jr (SIM_CPU *current_cpu, void *sem_arg)
822
{
823
#define FLD(f) abuf->fields.sfmt_bbi.f
824
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
825
  const IDESC * UNUSED idesc = abuf->idesc;
826
  int cycles = 0;
827
  {
828
    int referenced = 0;
829
    int UNUSED insn_referenced = abuf->written;
830
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
831
  }
832
  return cycles;
833
#undef FLD
834
}
835
 
836
static int
837
model_iq2000_lb (SIM_CPU *current_cpu, void *sem_arg)
838
{
839
#define FLD(f) abuf->fields.sfmt_addi.f
840
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
841
  const IDESC * UNUSED idesc = abuf->idesc;
842
  int cycles = 0;
843
  {
844
    int referenced = 0;
845
    int UNUSED insn_referenced = abuf->written;
846
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
847
  }
848
  return cycles;
849
#undef FLD
850
}
851
 
852
static int
853
model_iq2000_lbu (SIM_CPU *current_cpu, void *sem_arg)
854
{
855
#define FLD(f) abuf->fields.sfmt_addi.f
856
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
857
  const IDESC * UNUSED idesc = abuf->idesc;
858
  int cycles = 0;
859
  {
860
    int referenced = 0;
861
    int UNUSED insn_referenced = abuf->written;
862
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
863
  }
864
  return cycles;
865
#undef FLD
866
}
867
 
868
static int
869
model_iq2000_lh (SIM_CPU *current_cpu, void *sem_arg)
870
{
871
#define FLD(f) abuf->fields.sfmt_addi.f
872
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
873
  const IDESC * UNUSED idesc = abuf->idesc;
874
  int cycles = 0;
875
  {
876
    int referenced = 0;
877
    int UNUSED insn_referenced = abuf->written;
878
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
879
  }
880
  return cycles;
881
#undef FLD
882
}
883
 
884
static int
885
model_iq2000_lhu (SIM_CPU *current_cpu, void *sem_arg)
886
{
887
#define FLD(f) abuf->fields.sfmt_addi.f
888
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
889
  const IDESC * UNUSED idesc = abuf->idesc;
890
  int cycles = 0;
891
  {
892
    int referenced = 0;
893
    int UNUSED insn_referenced = abuf->written;
894
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
895
  }
896
  return cycles;
897
#undef FLD
898
}
899
 
900
static int
901
model_iq2000_lui (SIM_CPU *current_cpu, void *sem_arg)
902
{
903
#define FLD(f) abuf->fields.sfmt_addi.f
904
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
905
  const IDESC * UNUSED idesc = abuf->idesc;
906
  int cycles = 0;
907
  {
908
    int referenced = 0;
909
    int UNUSED insn_referenced = abuf->written;
910
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
911
  }
912
  return cycles;
913
#undef FLD
914
}
915
 
916
static int
917
model_iq2000_lw (SIM_CPU *current_cpu, void *sem_arg)
918
{
919
#define FLD(f) abuf->fields.sfmt_addi.f
920
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
921
  const IDESC * UNUSED idesc = abuf->idesc;
922
  int cycles = 0;
923
  {
924
    int referenced = 0;
925
    int UNUSED insn_referenced = abuf->written;
926
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
927
  }
928
  return cycles;
929
#undef FLD
930
}
931
 
932
static int
933
model_iq2000_sb (SIM_CPU *current_cpu, void *sem_arg)
934
{
935
#define FLD(f) abuf->fields.sfmt_addi.f
936
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
937
  const IDESC * UNUSED idesc = abuf->idesc;
938
  int cycles = 0;
939
  {
940
    int referenced = 0;
941
    int UNUSED insn_referenced = abuf->written;
942
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
943
  }
944
  return cycles;
945
#undef FLD
946
}
947
 
948
static int
949
model_iq2000_sh (SIM_CPU *current_cpu, void *sem_arg)
950
{
951
#define FLD(f) abuf->fields.sfmt_addi.f
952
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
953
  const IDESC * UNUSED idesc = abuf->idesc;
954
  int cycles = 0;
955
  {
956
    int referenced = 0;
957
    int UNUSED insn_referenced = abuf->written;
958
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
959
  }
960
  return cycles;
961
#undef FLD
962
}
963
 
964
static int
965
model_iq2000_sw (SIM_CPU *current_cpu, void *sem_arg)
966
{
967
#define FLD(f) abuf->fields.sfmt_addi.f
968
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
969
  const IDESC * UNUSED idesc = abuf->idesc;
970
  int cycles = 0;
971
  {
972
    int referenced = 0;
973
    int UNUSED insn_referenced = abuf->written;
974
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
975
  }
976
  return cycles;
977
#undef FLD
978
}
979
 
980
static int
981
model_iq2000_break (SIM_CPU *current_cpu, void *sem_arg)
982
{
983
#define FLD(f) abuf->fields.fmt_empty.f
984
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
985
  const IDESC * UNUSED idesc = abuf->idesc;
986
  int cycles = 0;
987
  {
988
    int referenced = 0;
989
    int UNUSED insn_referenced = abuf->written;
990
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
991
  }
992
  return cycles;
993
#undef FLD
994
}
995
 
996
static int
997
model_iq2000_syscall (SIM_CPU *current_cpu, void *sem_arg)
998
{
999
#define FLD(f) abuf->fields.fmt_empty.f
1000
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1001
  const IDESC * UNUSED idesc = abuf->idesc;
1002
  int cycles = 0;
1003
  {
1004
    int referenced = 0;
1005
    int UNUSED insn_referenced = abuf->written;
1006
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1007
  }
1008
  return cycles;
1009
#undef FLD
1010
}
1011
 
1012
static int
1013
model_iq2000_andoui (SIM_CPU *current_cpu, void *sem_arg)
1014
{
1015
#define FLD(f) abuf->fields.sfmt_addi.f
1016
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1017
  const IDESC * UNUSED idesc = abuf->idesc;
1018
  int cycles = 0;
1019
  {
1020
    int referenced = 0;
1021
    int UNUSED insn_referenced = abuf->written;
1022
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1023
  }
1024
  return cycles;
1025
#undef FLD
1026
}
1027
 
1028
static int
1029
model_iq2000_orui (SIM_CPU *current_cpu, void *sem_arg)
1030
{
1031
#define FLD(f) abuf->fields.sfmt_addi.f
1032
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1033
  const IDESC * UNUSED idesc = abuf->idesc;
1034
  int cycles = 0;
1035
  {
1036
    int referenced = 0;
1037
    int UNUSED insn_referenced = abuf->written;
1038
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1039
  }
1040
  return cycles;
1041
#undef FLD
1042
}
1043
 
1044
static int
1045
model_iq2000_bgtz (SIM_CPU *current_cpu, void *sem_arg)
1046
{
1047
#define FLD(f) abuf->fields.sfmt_bbi.f
1048
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1049
  const IDESC * UNUSED idesc = abuf->idesc;
1050
  int cycles = 0;
1051
  {
1052
    int referenced = 0;
1053
    int UNUSED insn_referenced = abuf->written;
1054
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1055
  }
1056
  return cycles;
1057
#undef FLD
1058
}
1059
 
1060
static int
1061
model_iq2000_bgtzl (SIM_CPU *current_cpu, void *sem_arg)
1062
{
1063
#define FLD(f) abuf->fields.sfmt_bbi.f
1064
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1065
  const IDESC * UNUSED idesc = abuf->idesc;
1066
  int cycles = 0;
1067
  {
1068
    int referenced = 0;
1069
    int UNUSED insn_referenced = abuf->written;
1070
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1071
  }
1072
  return cycles;
1073
#undef FLD
1074
}
1075
 
1076
static int
1077
model_iq2000_blez (SIM_CPU *current_cpu, void *sem_arg)
1078
{
1079
#define FLD(f) abuf->fields.sfmt_bbi.f
1080
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1081
  const IDESC * UNUSED idesc = abuf->idesc;
1082
  int cycles = 0;
1083
  {
1084
    int referenced = 0;
1085
    int UNUSED insn_referenced = abuf->written;
1086
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1087
  }
1088
  return cycles;
1089
#undef FLD
1090
}
1091
 
1092
static int
1093
model_iq2000_blezl (SIM_CPU *current_cpu, void *sem_arg)
1094
{
1095
#define FLD(f) abuf->fields.sfmt_bbi.f
1096
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1097
  const IDESC * UNUSED idesc = abuf->idesc;
1098
  int cycles = 0;
1099
  {
1100
    int referenced = 0;
1101
    int UNUSED insn_referenced = abuf->written;
1102
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1103
  }
1104
  return cycles;
1105
#undef FLD
1106
}
1107
 
1108
static int
1109
model_iq2000_mrgb (SIM_CPU *current_cpu, void *sem_arg)
1110
{
1111
#define FLD(f) abuf->fields.sfmt_mrgb.f
1112
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1113
  const IDESC * UNUSED idesc = abuf->idesc;
1114
  int cycles = 0;
1115
  {
1116
    int referenced = 0;
1117
    int UNUSED insn_referenced = abuf->written;
1118
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1119
  }
1120
  return cycles;
1121
#undef FLD
1122
}
1123
 
1124
static int
1125
model_iq2000_bctxt (SIM_CPU *current_cpu, void *sem_arg)
1126
{
1127
#define FLD(f) abuf->fields.fmt_empty.f
1128
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1129
  const IDESC * UNUSED idesc = abuf->idesc;
1130
  int cycles = 0;
1131
  {
1132
    int referenced = 0;
1133
    int UNUSED insn_referenced = abuf->written;
1134
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1135
  }
1136
  return cycles;
1137
#undef FLD
1138
}
1139
 
1140
static int
1141
model_iq2000_bc0f (SIM_CPU *current_cpu, void *sem_arg)
1142
{
1143
#define FLD(f) abuf->fields.fmt_empty.f
1144
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1145
  const IDESC * UNUSED idesc = abuf->idesc;
1146
  int cycles = 0;
1147
  {
1148
    int referenced = 0;
1149
    int UNUSED insn_referenced = abuf->written;
1150
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1151
  }
1152
  return cycles;
1153
#undef FLD
1154
}
1155
 
1156
static int
1157
model_iq2000_bc0fl (SIM_CPU *current_cpu, void *sem_arg)
1158
{
1159
#define FLD(f) abuf->fields.fmt_empty.f
1160
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1161
  const IDESC * UNUSED idesc = abuf->idesc;
1162
  int cycles = 0;
1163
  {
1164
    int referenced = 0;
1165
    int UNUSED insn_referenced = abuf->written;
1166
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1167
  }
1168
  return cycles;
1169
#undef FLD
1170
}
1171
 
1172
static int
1173
model_iq2000_bc3f (SIM_CPU *current_cpu, void *sem_arg)
1174
{
1175
#define FLD(f) abuf->fields.fmt_empty.f
1176
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1177
  const IDESC * UNUSED idesc = abuf->idesc;
1178
  int cycles = 0;
1179
  {
1180
    int referenced = 0;
1181
    int UNUSED insn_referenced = abuf->written;
1182
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1183
  }
1184
  return cycles;
1185
#undef FLD
1186
}
1187
 
1188
static int
1189
model_iq2000_bc3fl (SIM_CPU *current_cpu, void *sem_arg)
1190
{
1191
#define FLD(f) abuf->fields.fmt_empty.f
1192
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1193
  const IDESC * UNUSED idesc = abuf->idesc;
1194
  int cycles = 0;
1195
  {
1196
    int referenced = 0;
1197
    int UNUSED insn_referenced = abuf->written;
1198
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1199
  }
1200
  return cycles;
1201
#undef FLD
1202
}
1203
 
1204
static int
1205
model_iq2000_bc0t (SIM_CPU *current_cpu, void *sem_arg)
1206
{
1207
#define FLD(f) abuf->fields.fmt_empty.f
1208
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1209
  const IDESC * UNUSED idesc = abuf->idesc;
1210
  int cycles = 0;
1211
  {
1212
    int referenced = 0;
1213
    int UNUSED insn_referenced = abuf->written;
1214
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1215
  }
1216
  return cycles;
1217
#undef FLD
1218
}
1219
 
1220
static int
1221
model_iq2000_bc0tl (SIM_CPU *current_cpu, void *sem_arg)
1222
{
1223
#define FLD(f) abuf->fields.fmt_empty.f
1224
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1225
  const IDESC * UNUSED idesc = abuf->idesc;
1226
  int cycles = 0;
1227
  {
1228
    int referenced = 0;
1229
    int UNUSED insn_referenced = abuf->written;
1230
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1231
  }
1232
  return cycles;
1233
#undef FLD
1234
}
1235
 
1236
static int
1237
model_iq2000_bc3t (SIM_CPU *current_cpu, void *sem_arg)
1238
{
1239
#define FLD(f) abuf->fields.fmt_empty.f
1240
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1241
  const IDESC * UNUSED idesc = abuf->idesc;
1242
  int cycles = 0;
1243
  {
1244
    int referenced = 0;
1245
    int UNUSED insn_referenced = abuf->written;
1246
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1247
  }
1248
  return cycles;
1249
#undef FLD
1250
}
1251
 
1252
static int
1253
model_iq2000_bc3tl (SIM_CPU *current_cpu, void *sem_arg)
1254
{
1255
#define FLD(f) abuf->fields.fmt_empty.f
1256
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1257
  const IDESC * UNUSED idesc = abuf->idesc;
1258
  int cycles = 0;
1259
  {
1260
    int referenced = 0;
1261
    int UNUSED insn_referenced = abuf->written;
1262
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1263
  }
1264
  return cycles;
1265
#undef FLD
1266
}
1267
 
1268
static int
1269
model_iq2000_cfc0 (SIM_CPU *current_cpu, void *sem_arg)
1270
{
1271
#define FLD(f) abuf->fields.fmt_empty.f
1272
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1273
  const IDESC * UNUSED idesc = abuf->idesc;
1274
  int cycles = 0;
1275
  {
1276
    int referenced = 0;
1277
    int UNUSED insn_referenced = abuf->written;
1278
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1279
  }
1280
  return cycles;
1281
#undef FLD
1282
}
1283
 
1284
static int
1285
model_iq2000_cfc1 (SIM_CPU *current_cpu, void *sem_arg)
1286
{
1287
#define FLD(f) abuf->fields.fmt_empty.f
1288
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1289
  const IDESC * UNUSED idesc = abuf->idesc;
1290
  int cycles = 0;
1291
  {
1292
    int referenced = 0;
1293
    int UNUSED insn_referenced = abuf->written;
1294
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1295
  }
1296
  return cycles;
1297
#undef FLD
1298
}
1299
 
1300
static int
1301
model_iq2000_cfc2 (SIM_CPU *current_cpu, void *sem_arg)
1302
{
1303
#define FLD(f) abuf->fields.fmt_empty.f
1304
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1305
  const IDESC * UNUSED idesc = abuf->idesc;
1306
  int cycles = 0;
1307
  {
1308
    int referenced = 0;
1309
    int UNUSED insn_referenced = abuf->written;
1310
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1311
  }
1312
  return cycles;
1313
#undef FLD
1314
}
1315
 
1316
static int
1317
model_iq2000_cfc3 (SIM_CPU *current_cpu, void *sem_arg)
1318
{
1319
#define FLD(f) abuf->fields.fmt_empty.f
1320
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1321
  const IDESC * UNUSED idesc = abuf->idesc;
1322
  int cycles = 0;
1323
  {
1324
    int referenced = 0;
1325
    int UNUSED insn_referenced = abuf->written;
1326
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1327
  }
1328
  return cycles;
1329
#undef FLD
1330
}
1331
 
1332
static int
1333
model_iq2000_chkhdr (SIM_CPU *current_cpu, void *sem_arg)
1334
{
1335
#define FLD(f) abuf->fields.fmt_empty.f
1336
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1337
  const IDESC * UNUSED idesc = abuf->idesc;
1338
  int cycles = 0;
1339
  {
1340
    int referenced = 0;
1341
    int UNUSED insn_referenced = abuf->written;
1342
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1343
  }
1344
  return cycles;
1345
#undef FLD
1346
}
1347
 
1348
static int
1349
model_iq2000_ctc0 (SIM_CPU *current_cpu, void *sem_arg)
1350
{
1351
#define FLD(f) abuf->fields.fmt_empty.f
1352
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1353
  const IDESC * UNUSED idesc = abuf->idesc;
1354
  int cycles = 0;
1355
  {
1356
    int referenced = 0;
1357
    int UNUSED insn_referenced = abuf->written;
1358
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1359
  }
1360
  return cycles;
1361
#undef FLD
1362
}
1363
 
1364
static int
1365
model_iq2000_ctc1 (SIM_CPU *current_cpu, void *sem_arg)
1366
{
1367
#define FLD(f) abuf->fields.fmt_empty.f
1368
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1369
  const IDESC * UNUSED idesc = abuf->idesc;
1370
  int cycles = 0;
1371
  {
1372
    int referenced = 0;
1373
    int UNUSED insn_referenced = abuf->written;
1374
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1375
  }
1376
  return cycles;
1377
#undef FLD
1378
}
1379
 
1380
static int
1381
model_iq2000_ctc2 (SIM_CPU *current_cpu, void *sem_arg)
1382
{
1383
#define FLD(f) abuf->fields.fmt_empty.f
1384
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1385
  const IDESC * UNUSED idesc = abuf->idesc;
1386
  int cycles = 0;
1387
  {
1388
    int referenced = 0;
1389
    int UNUSED insn_referenced = abuf->written;
1390
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1391
  }
1392
  return cycles;
1393
#undef FLD
1394
}
1395
 
1396
static int
1397
model_iq2000_ctc3 (SIM_CPU *current_cpu, void *sem_arg)
1398
{
1399
#define FLD(f) abuf->fields.fmt_empty.f
1400
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1401
  const IDESC * UNUSED idesc = abuf->idesc;
1402
  int cycles = 0;
1403
  {
1404
    int referenced = 0;
1405
    int UNUSED insn_referenced = abuf->written;
1406
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1407
  }
1408
  return cycles;
1409
#undef FLD
1410
}
1411
 
1412
static int
1413
model_iq2000_jcr (SIM_CPU *current_cpu, void *sem_arg)
1414
{
1415
#define FLD(f) abuf->fields.fmt_empty.f
1416
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1417
  const IDESC * UNUSED idesc = abuf->idesc;
1418
  int cycles = 0;
1419
  {
1420
    int referenced = 0;
1421
    int UNUSED insn_referenced = abuf->written;
1422
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1423
  }
1424
  return cycles;
1425
#undef FLD
1426
}
1427
 
1428
static int
1429
model_iq2000_luc32 (SIM_CPU *current_cpu, void *sem_arg)
1430
{
1431
#define FLD(f) abuf->fields.fmt_empty.f
1432
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1433
  const IDESC * UNUSED idesc = abuf->idesc;
1434
  int cycles = 0;
1435
  {
1436
    int referenced = 0;
1437
    int UNUSED insn_referenced = abuf->written;
1438
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1439
  }
1440
  return cycles;
1441
#undef FLD
1442
}
1443
 
1444
static int
1445
model_iq2000_luc32l (SIM_CPU *current_cpu, void *sem_arg)
1446
{
1447
#define FLD(f) abuf->fields.fmt_empty.f
1448
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1449
  const IDESC * UNUSED idesc = abuf->idesc;
1450
  int cycles = 0;
1451
  {
1452
    int referenced = 0;
1453
    int UNUSED insn_referenced = abuf->written;
1454
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1455
  }
1456
  return cycles;
1457
#undef FLD
1458
}
1459
 
1460
static int
1461
model_iq2000_luc64 (SIM_CPU *current_cpu, void *sem_arg)
1462
{
1463
#define FLD(f) abuf->fields.fmt_empty.f
1464
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1465
  const IDESC * UNUSED idesc = abuf->idesc;
1466
  int cycles = 0;
1467
  {
1468
    int referenced = 0;
1469
    int UNUSED insn_referenced = abuf->written;
1470
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1471
  }
1472
  return cycles;
1473
#undef FLD
1474
}
1475
 
1476
static int
1477
model_iq2000_luc64l (SIM_CPU *current_cpu, void *sem_arg)
1478
{
1479
#define FLD(f) abuf->fields.fmt_empty.f
1480
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1481
  const IDESC * UNUSED idesc = abuf->idesc;
1482
  int cycles = 0;
1483
  {
1484
    int referenced = 0;
1485
    int UNUSED insn_referenced = abuf->written;
1486
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1487
  }
1488
  return cycles;
1489
#undef FLD
1490
}
1491
 
1492
static int
1493
model_iq2000_luk (SIM_CPU *current_cpu, void *sem_arg)
1494
{
1495
#define FLD(f) abuf->fields.fmt_empty.f
1496
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1497
  const IDESC * UNUSED idesc = abuf->idesc;
1498
  int cycles = 0;
1499
  {
1500
    int referenced = 0;
1501
    int UNUSED insn_referenced = abuf->written;
1502
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1503
  }
1504
  return cycles;
1505
#undef FLD
1506
}
1507
 
1508
static int
1509
model_iq2000_lulck (SIM_CPU *current_cpu, void *sem_arg)
1510
{
1511
#define FLD(f) abuf->fields.fmt_empty.f
1512
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1513
  const IDESC * UNUSED idesc = abuf->idesc;
1514
  int cycles = 0;
1515
  {
1516
    int referenced = 0;
1517
    int UNUSED insn_referenced = abuf->written;
1518
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1519
  }
1520
  return cycles;
1521
#undef FLD
1522
}
1523
 
1524
static int
1525
model_iq2000_lum32 (SIM_CPU *current_cpu, void *sem_arg)
1526
{
1527
#define FLD(f) abuf->fields.fmt_empty.f
1528
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1529
  const IDESC * UNUSED idesc = abuf->idesc;
1530
  int cycles = 0;
1531
  {
1532
    int referenced = 0;
1533
    int UNUSED insn_referenced = abuf->written;
1534
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1535
  }
1536
  return cycles;
1537
#undef FLD
1538
}
1539
 
1540
static int
1541
model_iq2000_lum32l (SIM_CPU *current_cpu, void *sem_arg)
1542
{
1543
#define FLD(f) abuf->fields.fmt_empty.f
1544
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1545
  const IDESC * UNUSED idesc = abuf->idesc;
1546
  int cycles = 0;
1547
  {
1548
    int referenced = 0;
1549
    int UNUSED insn_referenced = abuf->written;
1550
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1551
  }
1552
  return cycles;
1553
#undef FLD
1554
}
1555
 
1556
static int
1557
model_iq2000_lum64 (SIM_CPU *current_cpu, void *sem_arg)
1558
{
1559
#define FLD(f) abuf->fields.fmt_empty.f
1560
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1561
  const IDESC * UNUSED idesc = abuf->idesc;
1562
  int cycles = 0;
1563
  {
1564
    int referenced = 0;
1565
    int UNUSED insn_referenced = abuf->written;
1566
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1567
  }
1568
  return cycles;
1569
#undef FLD
1570
}
1571
 
1572
static int
1573
model_iq2000_lum64l (SIM_CPU *current_cpu, void *sem_arg)
1574
{
1575
#define FLD(f) abuf->fields.fmt_empty.f
1576
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1577
  const IDESC * UNUSED idesc = abuf->idesc;
1578
  int cycles = 0;
1579
  {
1580
    int referenced = 0;
1581
    int UNUSED insn_referenced = abuf->written;
1582
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1583
  }
1584
  return cycles;
1585
#undef FLD
1586
}
1587
 
1588
static int
1589
model_iq2000_lur (SIM_CPU *current_cpu, void *sem_arg)
1590
{
1591
#define FLD(f) abuf->fields.fmt_empty.f
1592
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1593
  const IDESC * UNUSED idesc = abuf->idesc;
1594
  int cycles = 0;
1595
  {
1596
    int referenced = 0;
1597
    int UNUSED insn_referenced = abuf->written;
1598
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1599
  }
1600
  return cycles;
1601
#undef FLD
1602
}
1603
 
1604
static int
1605
model_iq2000_lurl (SIM_CPU *current_cpu, void *sem_arg)
1606
{
1607
#define FLD(f) abuf->fields.fmt_empty.f
1608
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1609
  const IDESC * UNUSED idesc = abuf->idesc;
1610
  int cycles = 0;
1611
  {
1612
    int referenced = 0;
1613
    int UNUSED insn_referenced = abuf->written;
1614
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1615
  }
1616
  return cycles;
1617
#undef FLD
1618
}
1619
 
1620
static int
1621
model_iq2000_luulck (SIM_CPU *current_cpu, void *sem_arg)
1622
{
1623
#define FLD(f) abuf->fields.fmt_empty.f
1624
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1625
  const IDESC * UNUSED idesc = abuf->idesc;
1626
  int cycles = 0;
1627
  {
1628
    int referenced = 0;
1629
    int UNUSED insn_referenced = abuf->written;
1630
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1631
  }
1632
  return cycles;
1633
#undef FLD
1634
}
1635
 
1636
static int
1637
model_iq2000_mfc0 (SIM_CPU *current_cpu, void *sem_arg)
1638
{
1639
#define FLD(f) abuf->fields.fmt_empty.f
1640
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1641
  const IDESC * UNUSED idesc = abuf->idesc;
1642
  int cycles = 0;
1643
  {
1644
    int referenced = 0;
1645
    int UNUSED insn_referenced = abuf->written;
1646
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1647
  }
1648
  return cycles;
1649
#undef FLD
1650
}
1651
 
1652
static int
1653
model_iq2000_mfc1 (SIM_CPU *current_cpu, void *sem_arg)
1654
{
1655
#define FLD(f) abuf->fields.fmt_empty.f
1656
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1657
  const IDESC * UNUSED idesc = abuf->idesc;
1658
  int cycles = 0;
1659
  {
1660
    int referenced = 0;
1661
    int UNUSED insn_referenced = abuf->written;
1662
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1663
  }
1664
  return cycles;
1665
#undef FLD
1666
}
1667
 
1668
static int
1669
model_iq2000_mfc2 (SIM_CPU *current_cpu, void *sem_arg)
1670
{
1671
#define FLD(f) abuf->fields.fmt_empty.f
1672
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1673
  const IDESC * UNUSED idesc = abuf->idesc;
1674
  int cycles = 0;
1675
  {
1676
    int referenced = 0;
1677
    int UNUSED insn_referenced = abuf->written;
1678
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1679
  }
1680
  return cycles;
1681
#undef FLD
1682
}
1683
 
1684
static int
1685
model_iq2000_mfc3 (SIM_CPU *current_cpu, void *sem_arg)
1686
{
1687
#define FLD(f) abuf->fields.fmt_empty.f
1688
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1689
  const IDESC * UNUSED idesc = abuf->idesc;
1690
  int cycles = 0;
1691
  {
1692
    int referenced = 0;
1693
    int UNUSED insn_referenced = abuf->written;
1694
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1695
  }
1696
  return cycles;
1697
#undef FLD
1698
}
1699
 
1700
static int
1701
model_iq2000_mtc0 (SIM_CPU *current_cpu, void *sem_arg)
1702
{
1703
#define FLD(f) abuf->fields.fmt_empty.f
1704
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1705
  const IDESC * UNUSED idesc = abuf->idesc;
1706
  int cycles = 0;
1707
  {
1708
    int referenced = 0;
1709
    int UNUSED insn_referenced = abuf->written;
1710
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1711
  }
1712
  return cycles;
1713
#undef FLD
1714
}
1715
 
1716
static int
1717
model_iq2000_mtc1 (SIM_CPU *current_cpu, void *sem_arg)
1718
{
1719
#define FLD(f) abuf->fields.fmt_empty.f
1720
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1721
  const IDESC * UNUSED idesc = abuf->idesc;
1722
  int cycles = 0;
1723
  {
1724
    int referenced = 0;
1725
    int UNUSED insn_referenced = abuf->written;
1726
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1727
  }
1728
  return cycles;
1729
#undef FLD
1730
}
1731
 
1732
static int
1733
model_iq2000_mtc2 (SIM_CPU *current_cpu, void *sem_arg)
1734
{
1735
#define FLD(f) abuf->fields.fmt_empty.f
1736
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1737
  const IDESC * UNUSED idesc = abuf->idesc;
1738
  int cycles = 0;
1739
  {
1740
    int referenced = 0;
1741
    int UNUSED insn_referenced = abuf->written;
1742
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1743
  }
1744
  return cycles;
1745
#undef FLD
1746
}
1747
 
1748
static int
1749
model_iq2000_mtc3 (SIM_CPU *current_cpu, void *sem_arg)
1750
{
1751
#define FLD(f) abuf->fields.fmt_empty.f
1752
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1753
  const IDESC * UNUSED idesc = abuf->idesc;
1754
  int cycles = 0;
1755
  {
1756
    int referenced = 0;
1757
    int UNUSED insn_referenced = abuf->written;
1758
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1759
  }
1760
  return cycles;
1761
#undef FLD
1762
}
1763
 
1764
static int
1765
model_iq2000_pkrl (SIM_CPU *current_cpu, void *sem_arg)
1766
{
1767
#define FLD(f) abuf->fields.fmt_empty.f
1768
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1769
  const IDESC * UNUSED idesc = abuf->idesc;
1770
  int cycles = 0;
1771
  {
1772
    int referenced = 0;
1773
    int UNUSED insn_referenced = abuf->written;
1774
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1775
  }
1776
  return cycles;
1777
#undef FLD
1778
}
1779
 
1780
static int
1781
model_iq2000_pkrlr1 (SIM_CPU *current_cpu, void *sem_arg)
1782
{
1783
#define FLD(f) abuf->fields.fmt_empty.f
1784
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1785
  const IDESC * UNUSED idesc = abuf->idesc;
1786
  int cycles = 0;
1787
  {
1788
    int referenced = 0;
1789
    int UNUSED insn_referenced = abuf->written;
1790
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1791
  }
1792
  return cycles;
1793
#undef FLD
1794
}
1795
 
1796
static int
1797
model_iq2000_pkrlr30 (SIM_CPU *current_cpu, void *sem_arg)
1798
{
1799
#define FLD(f) abuf->fields.fmt_empty.f
1800
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1801
  const IDESC * UNUSED idesc = abuf->idesc;
1802
  int cycles = 0;
1803
  {
1804
    int referenced = 0;
1805
    int UNUSED insn_referenced = abuf->written;
1806
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1807
  }
1808
  return cycles;
1809
#undef FLD
1810
}
1811
 
1812
static int
1813
model_iq2000_rb (SIM_CPU *current_cpu, void *sem_arg)
1814
{
1815
#define FLD(f) abuf->fields.fmt_empty.f
1816
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1817
  const IDESC * UNUSED idesc = abuf->idesc;
1818
  int cycles = 0;
1819
  {
1820
    int referenced = 0;
1821
    int UNUSED insn_referenced = abuf->written;
1822
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1823
  }
1824
  return cycles;
1825
#undef FLD
1826
}
1827
 
1828
static int
1829
model_iq2000_rbr1 (SIM_CPU *current_cpu, void *sem_arg)
1830
{
1831
#define FLD(f) abuf->fields.fmt_empty.f
1832
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1833
  const IDESC * UNUSED idesc = abuf->idesc;
1834
  int cycles = 0;
1835
  {
1836
    int referenced = 0;
1837
    int UNUSED insn_referenced = abuf->written;
1838
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1839
  }
1840
  return cycles;
1841
#undef FLD
1842
}
1843
 
1844
static int
1845
model_iq2000_rbr30 (SIM_CPU *current_cpu, void *sem_arg)
1846
{
1847
#define FLD(f) abuf->fields.fmt_empty.f
1848
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1849
  const IDESC * UNUSED idesc = abuf->idesc;
1850
  int cycles = 0;
1851
  {
1852
    int referenced = 0;
1853
    int UNUSED insn_referenced = abuf->written;
1854
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1855
  }
1856
  return cycles;
1857
#undef FLD
1858
}
1859
 
1860
static int
1861
model_iq2000_rfe (SIM_CPU *current_cpu, void *sem_arg)
1862
{
1863
#define FLD(f) abuf->fields.fmt_empty.f
1864
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1865
  const IDESC * UNUSED idesc = abuf->idesc;
1866
  int cycles = 0;
1867
  {
1868
    int referenced = 0;
1869
    int UNUSED insn_referenced = abuf->written;
1870
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1871
  }
1872
  return cycles;
1873
#undef FLD
1874
}
1875
 
1876
static int
1877
model_iq2000_rx (SIM_CPU *current_cpu, void *sem_arg)
1878
{
1879
#define FLD(f) abuf->fields.fmt_empty.f
1880
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1881
  const IDESC * UNUSED idesc = abuf->idesc;
1882
  int cycles = 0;
1883
  {
1884
    int referenced = 0;
1885
    int UNUSED insn_referenced = abuf->written;
1886
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1887
  }
1888
  return cycles;
1889
#undef FLD
1890
}
1891
 
1892
static int
1893
model_iq2000_rxr1 (SIM_CPU *current_cpu, void *sem_arg)
1894
{
1895
#define FLD(f) abuf->fields.fmt_empty.f
1896
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1897
  const IDESC * UNUSED idesc = abuf->idesc;
1898
  int cycles = 0;
1899
  {
1900
    int referenced = 0;
1901
    int UNUSED insn_referenced = abuf->written;
1902
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1903
  }
1904
  return cycles;
1905
#undef FLD
1906
}
1907
 
1908
static int
1909
model_iq2000_rxr30 (SIM_CPU *current_cpu, void *sem_arg)
1910
{
1911
#define FLD(f) abuf->fields.fmt_empty.f
1912
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1913
  const IDESC * UNUSED idesc = abuf->idesc;
1914
  int cycles = 0;
1915
  {
1916
    int referenced = 0;
1917
    int UNUSED insn_referenced = abuf->written;
1918
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1919
  }
1920
  return cycles;
1921
#undef FLD
1922
}
1923
 
1924
static int
1925
model_iq2000_sleep (SIM_CPU *current_cpu, void *sem_arg)
1926
{
1927
#define FLD(f) abuf->fields.fmt_empty.f
1928
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1929
  const IDESC * UNUSED idesc = abuf->idesc;
1930
  int cycles = 0;
1931
  {
1932
    int referenced = 0;
1933
    int UNUSED insn_referenced = abuf->written;
1934
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1935
  }
1936
  return cycles;
1937
#undef FLD
1938
}
1939
 
1940
static int
1941
model_iq2000_srrd (SIM_CPU *current_cpu, void *sem_arg)
1942
{
1943
#define FLD(f) abuf->fields.fmt_empty.f
1944
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1945
  const IDESC * UNUSED idesc = abuf->idesc;
1946
  int cycles = 0;
1947
  {
1948
    int referenced = 0;
1949
    int UNUSED insn_referenced = abuf->written;
1950
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1951
  }
1952
  return cycles;
1953
#undef FLD
1954
}
1955
 
1956
static int
1957
model_iq2000_srrdl (SIM_CPU *current_cpu, void *sem_arg)
1958
{
1959
#define FLD(f) abuf->fields.fmt_empty.f
1960
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1961
  const IDESC * UNUSED idesc = abuf->idesc;
1962
  int cycles = 0;
1963
  {
1964
    int referenced = 0;
1965
    int UNUSED insn_referenced = abuf->written;
1966
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1967
  }
1968
  return cycles;
1969
#undef FLD
1970
}
1971
 
1972
static int
1973
model_iq2000_srulck (SIM_CPU *current_cpu, void *sem_arg)
1974
{
1975
#define FLD(f) abuf->fields.fmt_empty.f
1976
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1977
  const IDESC * UNUSED idesc = abuf->idesc;
1978
  int cycles = 0;
1979
  {
1980
    int referenced = 0;
1981
    int UNUSED insn_referenced = abuf->written;
1982
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1983
  }
1984
  return cycles;
1985
#undef FLD
1986
}
1987
 
1988
static int
1989
model_iq2000_srwr (SIM_CPU *current_cpu, void *sem_arg)
1990
{
1991
#define FLD(f) abuf->fields.fmt_empty.f
1992
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1993
  const IDESC * UNUSED idesc = abuf->idesc;
1994
  int cycles = 0;
1995
  {
1996
    int referenced = 0;
1997
    int UNUSED insn_referenced = abuf->written;
1998
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
1999
  }
2000
  return cycles;
2001
#undef FLD
2002
}
2003
 
2004
static int
2005
model_iq2000_srwru (SIM_CPU *current_cpu, void *sem_arg)
2006
{
2007
#define FLD(f) abuf->fields.fmt_empty.f
2008
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2009
  const IDESC * UNUSED idesc = abuf->idesc;
2010
  int cycles = 0;
2011
  {
2012
    int referenced = 0;
2013
    int UNUSED insn_referenced = abuf->written;
2014
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2015
  }
2016
  return cycles;
2017
#undef FLD
2018
}
2019
 
2020
static int
2021
model_iq2000_trapqfl (SIM_CPU *current_cpu, void *sem_arg)
2022
{
2023
#define FLD(f) abuf->fields.fmt_empty.f
2024
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2025
  const IDESC * UNUSED idesc = abuf->idesc;
2026
  int cycles = 0;
2027
  {
2028
    int referenced = 0;
2029
    int UNUSED insn_referenced = abuf->written;
2030
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2031
  }
2032
  return cycles;
2033
#undef FLD
2034
}
2035
 
2036
static int
2037
model_iq2000_trapqne (SIM_CPU *current_cpu, void *sem_arg)
2038
{
2039
#define FLD(f) abuf->fields.fmt_empty.f
2040
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2041
  const IDESC * UNUSED idesc = abuf->idesc;
2042
  int cycles = 0;
2043
  {
2044
    int referenced = 0;
2045
    int UNUSED insn_referenced = abuf->written;
2046
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2047
  }
2048
  return cycles;
2049
#undef FLD
2050
}
2051
 
2052
static int
2053
model_iq2000_traprel (SIM_CPU *current_cpu, void *sem_arg)
2054
{
2055
#define FLD(f) abuf->fields.fmt_empty.f
2056
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2057
  const IDESC * UNUSED idesc = abuf->idesc;
2058
  int cycles = 0;
2059
  {
2060
    int referenced = 0;
2061
    int UNUSED insn_referenced = abuf->written;
2062
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2063
  }
2064
  return cycles;
2065
#undef FLD
2066
}
2067
 
2068
static int
2069
model_iq2000_wb (SIM_CPU *current_cpu, void *sem_arg)
2070
{
2071
#define FLD(f) abuf->fields.fmt_empty.f
2072
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2073
  const IDESC * UNUSED idesc = abuf->idesc;
2074
  int cycles = 0;
2075
  {
2076
    int referenced = 0;
2077
    int UNUSED insn_referenced = abuf->written;
2078
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2079
  }
2080
  return cycles;
2081
#undef FLD
2082
}
2083
 
2084
static int
2085
model_iq2000_wbu (SIM_CPU *current_cpu, void *sem_arg)
2086
{
2087
#define FLD(f) abuf->fields.fmt_empty.f
2088
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2089
  const IDESC * UNUSED idesc = abuf->idesc;
2090
  int cycles = 0;
2091
  {
2092
    int referenced = 0;
2093
    int UNUSED insn_referenced = abuf->written;
2094
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2095
  }
2096
  return cycles;
2097
#undef FLD
2098
}
2099
 
2100
static int
2101
model_iq2000_wbr1 (SIM_CPU *current_cpu, void *sem_arg)
2102
{
2103
#define FLD(f) abuf->fields.fmt_empty.f
2104
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2105
  const IDESC * UNUSED idesc = abuf->idesc;
2106
  int cycles = 0;
2107
  {
2108
    int referenced = 0;
2109
    int UNUSED insn_referenced = abuf->written;
2110
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2111
  }
2112
  return cycles;
2113
#undef FLD
2114
}
2115
 
2116
static int
2117
model_iq2000_wbr1u (SIM_CPU *current_cpu, void *sem_arg)
2118
{
2119
#define FLD(f) abuf->fields.fmt_empty.f
2120
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2121
  const IDESC * UNUSED idesc = abuf->idesc;
2122
  int cycles = 0;
2123
  {
2124
    int referenced = 0;
2125
    int UNUSED insn_referenced = abuf->written;
2126
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2127
  }
2128
  return cycles;
2129
#undef FLD
2130
}
2131
 
2132
static int
2133
model_iq2000_wbr30 (SIM_CPU *current_cpu, void *sem_arg)
2134
{
2135
#define FLD(f) abuf->fields.fmt_empty.f
2136
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2137
  const IDESC * UNUSED idesc = abuf->idesc;
2138
  int cycles = 0;
2139
  {
2140
    int referenced = 0;
2141
    int UNUSED insn_referenced = abuf->written;
2142
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2143
  }
2144
  return cycles;
2145
#undef FLD
2146
}
2147
 
2148
static int
2149
model_iq2000_wbr30u (SIM_CPU *current_cpu, void *sem_arg)
2150
{
2151
#define FLD(f) abuf->fields.fmt_empty.f
2152
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2153
  const IDESC * UNUSED idesc = abuf->idesc;
2154
  int cycles = 0;
2155
  {
2156
    int referenced = 0;
2157
    int UNUSED insn_referenced = abuf->written;
2158
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2159
  }
2160
  return cycles;
2161
#undef FLD
2162
}
2163
 
2164
static int
2165
model_iq2000_wx (SIM_CPU *current_cpu, void *sem_arg)
2166
{
2167
#define FLD(f) abuf->fields.fmt_empty.f
2168
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2169
  const IDESC * UNUSED idesc = abuf->idesc;
2170
  int cycles = 0;
2171
  {
2172
    int referenced = 0;
2173
    int UNUSED insn_referenced = abuf->written;
2174
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2175
  }
2176
  return cycles;
2177
#undef FLD
2178
}
2179
 
2180
static int
2181
model_iq2000_wxu (SIM_CPU *current_cpu, void *sem_arg)
2182
{
2183
#define FLD(f) abuf->fields.fmt_empty.f
2184
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2185
  const IDESC * UNUSED idesc = abuf->idesc;
2186
  int cycles = 0;
2187
  {
2188
    int referenced = 0;
2189
    int UNUSED insn_referenced = abuf->written;
2190
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2191
  }
2192
  return cycles;
2193
#undef FLD
2194
}
2195
 
2196
static int
2197
model_iq2000_wxr1 (SIM_CPU *current_cpu, void *sem_arg)
2198
{
2199
#define FLD(f) abuf->fields.fmt_empty.f
2200
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2201
  const IDESC * UNUSED idesc = abuf->idesc;
2202
  int cycles = 0;
2203
  {
2204
    int referenced = 0;
2205
    int UNUSED insn_referenced = abuf->written;
2206
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2207
  }
2208
  return cycles;
2209
#undef FLD
2210
}
2211
 
2212
static int
2213
model_iq2000_wxr1u (SIM_CPU *current_cpu, void *sem_arg)
2214
{
2215
#define FLD(f) abuf->fields.fmt_empty.f
2216
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2217
  const IDESC * UNUSED idesc = abuf->idesc;
2218
  int cycles = 0;
2219
  {
2220
    int referenced = 0;
2221
    int UNUSED insn_referenced = abuf->written;
2222
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2223
  }
2224
  return cycles;
2225
#undef FLD
2226
}
2227
 
2228
static int
2229
model_iq2000_wxr30 (SIM_CPU *current_cpu, void *sem_arg)
2230
{
2231
#define FLD(f) abuf->fields.fmt_empty.f
2232
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2233
  const IDESC * UNUSED idesc = abuf->idesc;
2234
  int cycles = 0;
2235
  {
2236
    int referenced = 0;
2237
    int UNUSED insn_referenced = abuf->written;
2238
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2239
  }
2240
  return cycles;
2241
#undef FLD
2242
}
2243
 
2244
static int
2245
model_iq2000_wxr30u (SIM_CPU *current_cpu, void *sem_arg)
2246
{
2247
#define FLD(f) abuf->fields.fmt_empty.f
2248
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2249
  const IDESC * UNUSED idesc = abuf->idesc;
2250
  int cycles = 0;
2251
  {
2252
    int referenced = 0;
2253
    int UNUSED insn_referenced = abuf->written;
2254
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2255
  }
2256
  return cycles;
2257
#undef FLD
2258
}
2259
 
2260
static int
2261
model_iq2000_ldw (SIM_CPU *current_cpu, void *sem_arg)
2262
{
2263
#define FLD(f) abuf->fields.sfmt_addi.f
2264
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2265
  const IDESC * UNUSED idesc = abuf->idesc;
2266
  int cycles = 0;
2267
  {
2268
    int referenced = 0;
2269
    int UNUSED insn_referenced = abuf->written;
2270
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2271
  }
2272
  return cycles;
2273
#undef FLD
2274
}
2275
 
2276
static int
2277
model_iq2000_sdw (SIM_CPU *current_cpu, void *sem_arg)
2278
{
2279
#define FLD(f) abuf->fields.sfmt_addi.f
2280
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2281
  const IDESC * UNUSED idesc = abuf->idesc;
2282
  int cycles = 0;
2283
  {
2284
    int referenced = 0;
2285
    int UNUSED insn_referenced = abuf->written;
2286
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2287
  }
2288
  return cycles;
2289
#undef FLD
2290
}
2291
 
2292
static int
2293
model_iq2000_j (SIM_CPU *current_cpu, void *sem_arg)
2294
{
2295
#define FLD(f) abuf->fields.sfmt_j.f
2296
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2297
  const IDESC * UNUSED idesc = abuf->idesc;
2298
  int cycles = 0;
2299
  {
2300
    int referenced = 0;
2301
    int UNUSED insn_referenced = abuf->written;
2302
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2303
  }
2304
  return cycles;
2305
#undef FLD
2306
}
2307
 
2308
static int
2309
model_iq2000_jal (SIM_CPU *current_cpu, void *sem_arg)
2310
{
2311
#define FLD(f) abuf->fields.sfmt_j.f
2312
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2313
  const IDESC * UNUSED idesc = abuf->idesc;
2314
  int cycles = 0;
2315
  {
2316
    int referenced = 0;
2317
    int UNUSED insn_referenced = abuf->written;
2318
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2319
  }
2320
  return cycles;
2321
#undef FLD
2322
}
2323
 
2324
static int
2325
model_iq2000_bmb (SIM_CPU *current_cpu, void *sem_arg)
2326
{
2327
#define FLD(f) abuf->fields.sfmt_bbi.f
2328
  const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2329
  const IDESC * UNUSED idesc = abuf->idesc;
2330
  int cycles = 0;
2331
  {
2332
    int referenced = 0;
2333
    int UNUSED insn_referenced = abuf->written;
2334
    cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced);
2335
  }
2336
  return cycles;
2337
#undef FLD
2338
}
2339
 
2340
/* We assume UNIT_NONE == 0 because the tables don't always terminate
2341
   entries with it.  */
2342
 
2343
/* Model timing data for `iq2000'.  */
2344
 
2345
static const INSN_TIMING iq2000_timing[] = {
2346
  { IQ2000BF_INSN_X_INVALID, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2347
  { IQ2000BF_INSN_X_AFTER, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2348
  { IQ2000BF_INSN_X_BEFORE, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2349
  { IQ2000BF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2350
  { IQ2000BF_INSN_X_CHAIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2351
  { IQ2000BF_INSN_X_BEGIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2352
  { IQ2000BF_INSN_ADD, model_iq2000_add, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2353
  { IQ2000BF_INSN_ADDI, model_iq2000_addi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2354
  { IQ2000BF_INSN_ADDIU, model_iq2000_addiu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2355
  { IQ2000BF_INSN_ADDU, model_iq2000_addu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2356
  { IQ2000BF_INSN_ADO16, model_iq2000_ado16, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2357
  { IQ2000BF_INSN_AND, model_iq2000_and, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2358
  { IQ2000BF_INSN_ANDI, model_iq2000_andi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2359
  { IQ2000BF_INSN_ANDOI, model_iq2000_andoi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2360
  { IQ2000BF_INSN_NOR, model_iq2000_nor, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2361
  { IQ2000BF_INSN_OR, model_iq2000_or, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2362
  { IQ2000BF_INSN_ORI, model_iq2000_ori, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2363
  { IQ2000BF_INSN_RAM, model_iq2000_ram, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2364
  { IQ2000BF_INSN_SLL, model_iq2000_sll, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2365
  { IQ2000BF_INSN_SLLV, model_iq2000_sllv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2366
  { IQ2000BF_INSN_SLMV, model_iq2000_slmv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2367
  { IQ2000BF_INSN_SLT, model_iq2000_slt, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2368
  { IQ2000BF_INSN_SLTI, model_iq2000_slti, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2369
  { IQ2000BF_INSN_SLTIU, model_iq2000_sltiu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2370
  { IQ2000BF_INSN_SLTU, model_iq2000_sltu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2371
  { IQ2000BF_INSN_SRA, model_iq2000_sra, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2372
  { IQ2000BF_INSN_SRAV, model_iq2000_srav, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2373
  { IQ2000BF_INSN_SRL, model_iq2000_srl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2374
  { IQ2000BF_INSN_SRLV, model_iq2000_srlv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2375
  { IQ2000BF_INSN_SRMV, model_iq2000_srmv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2376
  { IQ2000BF_INSN_SUB, model_iq2000_sub, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2377
  { IQ2000BF_INSN_SUBU, model_iq2000_subu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2378
  { IQ2000BF_INSN_XOR, model_iq2000_xor, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2379
  { IQ2000BF_INSN_XORI, model_iq2000_xori, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2380
  { IQ2000BF_INSN_BBI, model_iq2000_bbi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2381
  { IQ2000BF_INSN_BBIN, model_iq2000_bbin, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2382
  { IQ2000BF_INSN_BBV, model_iq2000_bbv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2383
  { IQ2000BF_INSN_BBVN, model_iq2000_bbvn, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2384
  { IQ2000BF_INSN_BEQ, model_iq2000_beq, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2385
  { IQ2000BF_INSN_BEQL, model_iq2000_beql, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2386
  { IQ2000BF_INSN_BGEZ, model_iq2000_bgez, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2387
  { IQ2000BF_INSN_BGEZAL, model_iq2000_bgezal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2388
  { IQ2000BF_INSN_BGEZALL, model_iq2000_bgezall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2389
  { IQ2000BF_INSN_BGEZL, model_iq2000_bgezl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2390
  { IQ2000BF_INSN_BLTZ, model_iq2000_bltz, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2391
  { IQ2000BF_INSN_BLTZL, model_iq2000_bltzl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2392
  { IQ2000BF_INSN_BLTZAL, model_iq2000_bltzal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2393
  { IQ2000BF_INSN_BLTZALL, model_iq2000_bltzall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2394
  { IQ2000BF_INSN_BMB0, model_iq2000_bmb0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2395
  { IQ2000BF_INSN_BMB1, model_iq2000_bmb1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2396
  { IQ2000BF_INSN_BMB2, model_iq2000_bmb2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2397
  { IQ2000BF_INSN_BMB3, model_iq2000_bmb3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2398
  { IQ2000BF_INSN_BNE, model_iq2000_bne, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2399
  { IQ2000BF_INSN_BNEL, model_iq2000_bnel, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2400
  { IQ2000BF_INSN_JALR, model_iq2000_jalr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2401
  { IQ2000BF_INSN_JR, model_iq2000_jr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2402
  { IQ2000BF_INSN_LB, model_iq2000_lb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2403
  { IQ2000BF_INSN_LBU, model_iq2000_lbu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2404
  { IQ2000BF_INSN_LH, model_iq2000_lh, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2405
  { IQ2000BF_INSN_LHU, model_iq2000_lhu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2406
  { IQ2000BF_INSN_LUI, model_iq2000_lui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2407
  { IQ2000BF_INSN_LW, model_iq2000_lw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2408
  { IQ2000BF_INSN_SB, model_iq2000_sb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2409
  { IQ2000BF_INSN_SH, model_iq2000_sh, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2410
  { IQ2000BF_INSN_SW, model_iq2000_sw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2411
  { IQ2000BF_INSN_BREAK, model_iq2000_break, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2412
  { IQ2000BF_INSN_SYSCALL, model_iq2000_syscall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2413
  { IQ2000BF_INSN_ANDOUI, model_iq2000_andoui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2414
  { IQ2000BF_INSN_ORUI, model_iq2000_orui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2415
  { IQ2000BF_INSN_BGTZ, model_iq2000_bgtz, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2416
  { IQ2000BF_INSN_BGTZL, model_iq2000_bgtzl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2417
  { IQ2000BF_INSN_BLEZ, model_iq2000_blez, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2418
  { IQ2000BF_INSN_BLEZL, model_iq2000_blezl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2419
  { IQ2000BF_INSN_MRGB, model_iq2000_mrgb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2420
  { IQ2000BF_INSN_BCTXT, model_iq2000_bctxt, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2421
  { IQ2000BF_INSN_BC0F, model_iq2000_bc0f, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2422
  { IQ2000BF_INSN_BC0FL, model_iq2000_bc0fl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2423
  { IQ2000BF_INSN_BC3F, model_iq2000_bc3f, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2424
  { IQ2000BF_INSN_BC3FL, model_iq2000_bc3fl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2425
  { IQ2000BF_INSN_BC0T, model_iq2000_bc0t, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2426
  { IQ2000BF_INSN_BC0TL, model_iq2000_bc0tl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2427
  { IQ2000BF_INSN_BC3T, model_iq2000_bc3t, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2428
  { IQ2000BF_INSN_BC3TL, model_iq2000_bc3tl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2429
  { IQ2000BF_INSN_CFC0, model_iq2000_cfc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2430
  { IQ2000BF_INSN_CFC1, model_iq2000_cfc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2431
  { IQ2000BF_INSN_CFC2, model_iq2000_cfc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2432
  { IQ2000BF_INSN_CFC3, model_iq2000_cfc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2433
  { IQ2000BF_INSN_CHKHDR, model_iq2000_chkhdr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2434
  { IQ2000BF_INSN_CTC0, model_iq2000_ctc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2435
  { IQ2000BF_INSN_CTC1, model_iq2000_ctc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2436
  { IQ2000BF_INSN_CTC2, model_iq2000_ctc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2437
  { IQ2000BF_INSN_CTC3, model_iq2000_ctc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2438
  { IQ2000BF_INSN_JCR, model_iq2000_jcr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2439
  { IQ2000BF_INSN_LUC32, model_iq2000_luc32, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2440
  { IQ2000BF_INSN_LUC32L, model_iq2000_luc32l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2441
  { IQ2000BF_INSN_LUC64, model_iq2000_luc64, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2442
  { IQ2000BF_INSN_LUC64L, model_iq2000_luc64l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2443
  { IQ2000BF_INSN_LUK, model_iq2000_luk, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2444
  { IQ2000BF_INSN_LULCK, model_iq2000_lulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2445
  { IQ2000BF_INSN_LUM32, model_iq2000_lum32, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2446
  { IQ2000BF_INSN_LUM32L, model_iq2000_lum32l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2447
  { IQ2000BF_INSN_LUM64, model_iq2000_lum64, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2448
  { IQ2000BF_INSN_LUM64L, model_iq2000_lum64l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2449
  { IQ2000BF_INSN_LUR, model_iq2000_lur, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2450
  { IQ2000BF_INSN_LURL, model_iq2000_lurl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2451
  { IQ2000BF_INSN_LUULCK, model_iq2000_luulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2452
  { IQ2000BF_INSN_MFC0, model_iq2000_mfc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2453
  { IQ2000BF_INSN_MFC1, model_iq2000_mfc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2454
  { IQ2000BF_INSN_MFC2, model_iq2000_mfc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2455
  { IQ2000BF_INSN_MFC3, model_iq2000_mfc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2456
  { IQ2000BF_INSN_MTC0, model_iq2000_mtc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2457
  { IQ2000BF_INSN_MTC1, model_iq2000_mtc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2458
  { IQ2000BF_INSN_MTC2, model_iq2000_mtc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2459
  { IQ2000BF_INSN_MTC3, model_iq2000_mtc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2460
  { IQ2000BF_INSN_PKRL, model_iq2000_pkrl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2461
  { IQ2000BF_INSN_PKRLR1, model_iq2000_pkrlr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2462
  { IQ2000BF_INSN_PKRLR30, model_iq2000_pkrlr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2463
  { IQ2000BF_INSN_RB, model_iq2000_rb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2464
  { IQ2000BF_INSN_RBR1, model_iq2000_rbr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2465
  { IQ2000BF_INSN_RBR30, model_iq2000_rbr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2466
  { IQ2000BF_INSN_RFE, model_iq2000_rfe, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2467
  { IQ2000BF_INSN_RX, model_iq2000_rx, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2468
  { IQ2000BF_INSN_RXR1, model_iq2000_rxr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2469
  { IQ2000BF_INSN_RXR30, model_iq2000_rxr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2470
  { IQ2000BF_INSN_SLEEP, model_iq2000_sleep, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2471
  { IQ2000BF_INSN_SRRD, model_iq2000_srrd, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2472
  { IQ2000BF_INSN_SRRDL, model_iq2000_srrdl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2473
  { IQ2000BF_INSN_SRULCK, model_iq2000_srulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2474
  { IQ2000BF_INSN_SRWR, model_iq2000_srwr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2475
  { IQ2000BF_INSN_SRWRU, model_iq2000_srwru, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2476
  { IQ2000BF_INSN_TRAPQFL, model_iq2000_trapqfl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2477
  { IQ2000BF_INSN_TRAPQNE, model_iq2000_trapqne, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2478
  { IQ2000BF_INSN_TRAPREL, model_iq2000_traprel, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2479
  { IQ2000BF_INSN_WB, model_iq2000_wb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2480
  { IQ2000BF_INSN_WBU, model_iq2000_wbu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2481
  { IQ2000BF_INSN_WBR1, model_iq2000_wbr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2482
  { IQ2000BF_INSN_WBR1U, model_iq2000_wbr1u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2483
  { IQ2000BF_INSN_WBR30, model_iq2000_wbr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2484
  { IQ2000BF_INSN_WBR30U, model_iq2000_wbr30u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2485
  { IQ2000BF_INSN_WX, model_iq2000_wx, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2486
  { IQ2000BF_INSN_WXU, model_iq2000_wxu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2487
  { IQ2000BF_INSN_WXR1, model_iq2000_wxr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2488
  { IQ2000BF_INSN_WXR1U, model_iq2000_wxr1u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2489
  { IQ2000BF_INSN_WXR30, model_iq2000_wxr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2490
  { IQ2000BF_INSN_WXR30U, model_iq2000_wxr30u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2491
  { IQ2000BF_INSN_LDW, model_iq2000_ldw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2492
  { IQ2000BF_INSN_SDW, model_iq2000_sdw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2493
  { IQ2000BF_INSN_J, model_iq2000_j, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2494
  { IQ2000BF_INSN_JAL, model_iq2000_jal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2495
  { IQ2000BF_INSN_BMB, model_iq2000_bmb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } },
2496
};
2497
 
2498
#endif /* WITH_PROFILE_MODEL_P */
2499
 
2500
static void
2501
iq2000_model_init (SIM_CPU *cpu)
2502
{
2503
  CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_IQ2000_DATA));
2504
}
2505
 
2506
#if WITH_PROFILE_MODEL_P
2507
#define TIMING_DATA(td) td
2508
#else
2509
#define TIMING_DATA(td) 0
2510
#endif
2511
 
2512
static const MODEL iq2000_models[] =
2513
{
2514
  { "iq2000", & iq2000_mach, MODEL_IQ2000, TIMING_DATA (& iq2000_timing[0]), iq2000_model_init },
2515
  { 0 }
2516
};
2517
 
2518
/* The properties of this cpu's implementation.  */
2519
 
2520
static const MACH_IMP_PROPERTIES iq2000bf_imp_properties =
2521
{
2522
  sizeof (SIM_CPU),
2523
#if WITH_SCACHE
2524
  sizeof (SCACHE)
2525
#else
2526
 
2527
#endif
2528
};
2529
 
2530
 
2531
static void
2532
iq2000bf_prepare_run (SIM_CPU *cpu)
2533
{
2534
  if (CPU_IDESC (cpu) == NULL)
2535
    iq2000bf_init_idesc_table (cpu);
2536
}
2537
 
2538
static const CGEN_INSN *
2539
iq2000bf_get_idata (SIM_CPU *cpu, int inum)
2540
{
2541
  return CPU_IDESC (cpu) [inum].idata;
2542
}
2543
 
2544
static void
2545
iq2000_init_cpu (SIM_CPU *cpu)
2546
{
2547
  CPU_REG_FETCH (cpu) = iq2000bf_fetch_register;
2548
  CPU_REG_STORE (cpu) = iq2000bf_store_register;
2549
  CPU_PC_FETCH (cpu) = iq2000bf_h_pc_get;
2550
  CPU_PC_STORE (cpu) = iq2000bf_h_pc_set;
2551
  CPU_GET_IDATA (cpu) = iq2000bf_get_idata;
2552
  CPU_MAX_INSNS (cpu) = IQ2000BF_INSN_BMB + 1;
2553
  CPU_INSN_NAME (cpu) = cgen_insn_name;
2554
  CPU_FULL_ENGINE_FN (cpu) = iq2000bf_engine_run_full;
2555
#if WITH_FAST
2556
  CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_fast;
2557
#else
2558
  CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_full;
2559
#endif
2560
}
2561
 
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
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.