OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

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

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

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

powered by: WebSVN 2.1.0

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