* spu-tdep.c (spu_unwind_pc): Mask off interrupt enable bit.
[deliverable/binutils-gdb.git] / sim / cris / modelv10.c
CommitLineData
f6bcefef
HPN
1/* Simulator model support for crisv10f.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
cce0efb5 5Copyright 1996-2005 Free Software Foundation, Inc.
f6bcefef
HPN
6
7This file is part of the GNU simulators.
8
9This program is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 2, or (at your option)
12any later version.
13
14This program is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License along
20with this program; if not, write to the Free Software Foundation, Inc.,
cf2bf87e 2151 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
f6bcefef
HPN
22
23*/
24
25#define WANT_CPU crisv10f
26#define WANT_CPU_CRISV10F
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
37static int
38model_crisv10_nop (SIM_CPU *current_cpu, void *sem_arg)
39{
40#define FLD(f) abuf->fields.fmt_empty.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
48 }
49 return cycles;
50#undef FLD
51}
52
53static int
54model_crisv10_move_b_r (SIM_CPU *current_cpu, void *sem_arg)
55{
56#define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
64 }
65 return cycles;
66#undef FLD
67}
68
69static int
70model_crisv10_move_w_r (SIM_CPU *current_cpu, void *sem_arg)
71{
72#define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
80 }
81 return cycles;
82#undef FLD
83}
84
85static int
86model_crisv10_move_d_r (SIM_CPU *current_cpu, void *sem_arg)
87{
88#define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
96 }
97 return cycles;
98#undef FLD
99}
100
101static int
102model_crisv10_movepcr (SIM_CPU *current_cpu, void *sem_arg)
103{
104#define FLD(f) abuf->fields.sfmt_moveq.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
112 }
113 return cycles;
114#undef FLD
115}
116
117static int
118model_crisv10_moveq (SIM_CPU *current_cpu, void *sem_arg)
119{
120#define FLD(f) abuf->fields.sfmt_moveq.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
128 }
129 return cycles;
130#undef FLD
131}
132
133static int
134model_crisv10_movs_b_r (SIM_CPU *current_cpu, void *sem_arg)
135{
136#define FLD(f) abuf->fields.sfmt_muls_b.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
144 }
145 return cycles;
146#undef FLD
147}
148
149static int
150model_crisv10_movs_w_r (SIM_CPU *current_cpu, void *sem_arg)
151{
152#define FLD(f) abuf->fields.sfmt_muls_b.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
160 }
161 return cycles;
162#undef FLD
163}
164
165static int
166model_crisv10_movu_b_r (SIM_CPU *current_cpu, void *sem_arg)
167{
168#define FLD(f) abuf->fields.sfmt_muls_b.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
176 }
177 return cycles;
178#undef FLD
179}
180
181static int
182model_crisv10_movu_w_r (SIM_CPU *current_cpu, void *sem_arg)
183{
184#define FLD(f) abuf->fields.sfmt_muls_b.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
192 }
193 return cycles;
194#undef FLD
195}
196
197static int
198model_crisv10_movecbr (SIM_CPU *current_cpu, void *sem_arg)
199{
200#define FLD(f) abuf->fields.sfmt_addcbr.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
208 }
209 {
210 int referenced = 0;
211 int UNUSED insn_referenced = abuf->written;
212 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
213 }
214 return cycles;
215#undef FLD
216}
217
218static int
219model_crisv10_movecwr (SIM_CPU *current_cpu, void *sem_arg)
220{
221#define FLD(f) abuf->fields.sfmt_addcwr.f
222 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
223 const IDESC * UNUSED idesc = abuf->idesc;
224 int cycles = 0;
225 {
226 int referenced = 0;
227 int UNUSED insn_referenced = abuf->written;
228 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
229 }
230 {
231 int referenced = 0;
232 int UNUSED insn_referenced = abuf->written;
233 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
234 }
235 return cycles;
236#undef FLD
237}
238
239static int
240model_crisv10_movecdr (SIM_CPU *current_cpu, void *sem_arg)
241{
242#define FLD(f) abuf->fields.sfmt_bound_cd.f
243 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
244 const IDESC * UNUSED idesc = abuf->idesc;
245 int cycles = 0;
246 {
247 int referenced = 0;
248 int UNUSED insn_referenced = abuf->written;
249 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
250 }
251 {
252 int referenced = 0;
253 int UNUSED insn_referenced = abuf->written;
254 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
255 }
256 return cycles;
257#undef FLD
258}
259
260static int
261model_crisv10_movscbr (SIM_CPU *current_cpu, void *sem_arg)
262{
263#define FLD(f) abuf->fields.sfmt_bound_cb.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
271 }
272 {
273 int referenced = 0;
274 int UNUSED insn_referenced = abuf->written;
275 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
276 }
277 return cycles;
278#undef FLD
279}
280
281static int
282model_crisv10_movscwr (SIM_CPU *current_cpu, void *sem_arg)
283{
284#define FLD(f) abuf->fields.sfmt_bound_cw.f
285 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
286 const IDESC * UNUSED idesc = abuf->idesc;
287 int cycles = 0;
288 {
289 int referenced = 0;
290 int UNUSED insn_referenced = abuf->written;
291 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
292 }
293 {
294 int referenced = 0;
295 int UNUSED insn_referenced = abuf->written;
296 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
297 }
298 return cycles;
299#undef FLD
300}
301
302static int
303model_crisv10_movucbr (SIM_CPU *current_cpu, void *sem_arg)
304{
305#define FLD(f) abuf->fields.sfmt_bound_cb.f
306 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
307 const IDESC * UNUSED idesc = abuf->idesc;
308 int cycles = 0;
309 {
310 int referenced = 0;
311 int UNUSED insn_referenced = abuf->written;
312 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
313 }
314 {
315 int referenced = 0;
316 int UNUSED insn_referenced = abuf->written;
317 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
318 }
319 return cycles;
320#undef FLD
321}
322
323static int
324model_crisv10_movucwr (SIM_CPU *current_cpu, void *sem_arg)
325{
326#define FLD(f) abuf->fields.sfmt_bound_cw.f
327 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
328 const IDESC * UNUSED idesc = abuf->idesc;
329 int cycles = 0;
330 {
331 int referenced = 0;
332 int UNUSED insn_referenced = abuf->written;
333 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
334 }
335 {
336 int referenced = 0;
337 int UNUSED insn_referenced = abuf->written;
338 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
339 }
340 return cycles;
341#undef FLD
342}
343
344static int
345model_crisv10_addq (SIM_CPU *current_cpu, void *sem_arg)
346{
347#define FLD(f) abuf->fields.sfmt_addq.f
348 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
349 const IDESC * UNUSED idesc = abuf->idesc;
350 int cycles = 0;
351 {
352 int referenced = 0;
353 int UNUSED insn_referenced = abuf->written;
354 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
355 }
356 return cycles;
357#undef FLD
358}
359
360static int
361model_crisv10_subq (SIM_CPU *current_cpu, void *sem_arg)
362{
363#define FLD(f) abuf->fields.sfmt_addq.f
364 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
365 const IDESC * UNUSED idesc = abuf->idesc;
366 int cycles = 0;
367 {
368 int referenced = 0;
369 int UNUSED insn_referenced = abuf->written;
370 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
371 }
372 return cycles;
373#undef FLD
374}
375
376static int
377model_crisv10_cmp_r_b_r (SIM_CPU *current_cpu, void *sem_arg)
378{
379#define FLD(f) abuf->fields.sfmt_add_b_r.f
380 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
381 const IDESC * UNUSED idesc = abuf->idesc;
382 int cycles = 0;
383 {
384 int referenced = 0;
385 int UNUSED insn_referenced = abuf->written;
386 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
387 }
388 return cycles;
389#undef FLD
390}
391
392static int
393model_crisv10_cmp_r_w_r (SIM_CPU *current_cpu, void *sem_arg)
394{
395#define FLD(f) abuf->fields.sfmt_add_b_r.f
396 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
397 const IDESC * UNUSED idesc = abuf->idesc;
398 int cycles = 0;
399 {
400 int referenced = 0;
401 int UNUSED insn_referenced = abuf->written;
402 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
403 }
404 return cycles;
405#undef FLD
406}
407
408static int
409model_crisv10_cmp_r_d_r (SIM_CPU *current_cpu, void *sem_arg)
410{
411#define FLD(f) abuf->fields.sfmt_add_b_r.f
412 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
413 const IDESC * UNUSED idesc = abuf->idesc;
414 int cycles = 0;
415 {
416 int referenced = 0;
417 int UNUSED insn_referenced = abuf->written;
418 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
419 }
420 return cycles;
421#undef FLD
422}
423
424static int
425model_crisv10_cmp_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
426{
427#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
428 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
429 const IDESC * UNUSED idesc = abuf->idesc;
430 int cycles = 0;
431 {
432 int referenced = 0;
433 int UNUSED insn_referenced = abuf->written;
434 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
435 }
436 {
437 int referenced = 0;
438 int UNUSED insn_referenced = abuf->written;
439 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
440 }
441 return cycles;
442#undef FLD
443}
444
445static int
446model_crisv10_cmp_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
447{
448#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
449 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
450 const IDESC * UNUSED idesc = abuf->idesc;
451 int cycles = 0;
452 {
453 int referenced = 0;
454 int UNUSED insn_referenced = abuf->written;
455 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
456 }
457 {
458 int referenced = 0;
459 int UNUSED insn_referenced = abuf->written;
460 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
461 }
462 return cycles;
463#undef FLD
464}
465
466static int
467model_crisv10_cmp_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
468{
469#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
470 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
471 const IDESC * UNUSED idesc = abuf->idesc;
472 int cycles = 0;
473 {
474 int referenced = 0;
475 int UNUSED insn_referenced = abuf->written;
476 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
477 }
478 {
479 int referenced = 0;
480 int UNUSED insn_referenced = abuf->written;
481 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
482 }
483 return cycles;
484#undef FLD
485}
486
487static int
488model_crisv10_cmpcbr (SIM_CPU *current_cpu, void *sem_arg)
489{
490#define FLD(f) abuf->fields.sfmt_bound_cb.f
491 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
492 const IDESC * UNUSED idesc = abuf->idesc;
493 int cycles = 0;
494 {
495 int referenced = 0;
496 int UNUSED insn_referenced = abuf->written;
497 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
498 }
499 {
500 int referenced = 0;
501 int UNUSED insn_referenced = abuf->written;
502 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
503 }
504 return cycles;
505#undef FLD
506}
507
508static int
509model_crisv10_cmpcwr (SIM_CPU *current_cpu, void *sem_arg)
510{
511#define FLD(f) abuf->fields.sfmt_bound_cw.f
512 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
513 const IDESC * UNUSED idesc = abuf->idesc;
514 int cycles = 0;
515 {
516 int referenced = 0;
517 int UNUSED insn_referenced = abuf->written;
518 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
519 }
520 {
521 int referenced = 0;
522 int UNUSED insn_referenced = abuf->written;
523 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
524 }
525 return cycles;
526#undef FLD
527}
528
529static int
530model_crisv10_cmpcdr (SIM_CPU *current_cpu, void *sem_arg)
531{
532#define FLD(f) abuf->fields.sfmt_bound_cd.f
533 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
534 const IDESC * UNUSED idesc = abuf->idesc;
535 int cycles = 0;
536 {
537 int referenced = 0;
538 int UNUSED insn_referenced = abuf->written;
539 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
540 }
541 {
542 int referenced = 0;
543 int UNUSED insn_referenced = abuf->written;
544 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
545 }
546 return cycles;
547#undef FLD
548}
549
550static int
551model_crisv10_cmpq (SIM_CPU *current_cpu, void *sem_arg)
552{
553#define FLD(f) abuf->fields.sfmt_andq.f
554 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
555 const IDESC * UNUSED idesc = abuf->idesc;
556 int cycles = 0;
557 {
558 int referenced = 0;
559 int UNUSED insn_referenced = abuf->written;
560 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
561 }
562 return cycles;
563#undef FLD
564}
565
566static int
567model_crisv10_cmps_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
568{
569#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
570 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
571 const IDESC * UNUSED idesc = abuf->idesc;
572 int cycles = 0;
573 {
574 int referenced = 0;
575 int UNUSED insn_referenced = abuf->written;
576 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
577 }
578 {
579 int referenced = 0;
580 int UNUSED insn_referenced = abuf->written;
581 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
582 }
583 return cycles;
584#undef FLD
585}
586
587static int
588model_crisv10_cmps_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
589{
590#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
591 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
592 const IDESC * UNUSED idesc = abuf->idesc;
593 int cycles = 0;
594 {
595 int referenced = 0;
596 int UNUSED insn_referenced = abuf->written;
597 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
598 }
599 {
600 int referenced = 0;
601 int UNUSED insn_referenced = abuf->written;
602 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
603 }
604 return cycles;
605#undef FLD
606}
607
608static int
609model_crisv10_cmpscbr (SIM_CPU *current_cpu, void *sem_arg)
610{
611#define FLD(f) abuf->fields.sfmt_bound_cb.f
612 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
613 const IDESC * UNUSED idesc = abuf->idesc;
614 int cycles = 0;
615 {
616 int referenced = 0;
617 int UNUSED insn_referenced = abuf->written;
618 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
619 }
620 {
621 int referenced = 0;
622 int UNUSED insn_referenced = abuf->written;
623 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
624 }
625 return cycles;
626#undef FLD
627}
628
629static int
630model_crisv10_cmpscwr (SIM_CPU *current_cpu, void *sem_arg)
631{
632#define FLD(f) abuf->fields.sfmt_bound_cw.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
640 }
641 {
642 int referenced = 0;
643 int UNUSED insn_referenced = abuf->written;
644 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
645 }
646 return cycles;
647#undef FLD
648}
649
650static int
651model_crisv10_cmpu_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
652{
653#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
654 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
655 const IDESC * UNUSED idesc = abuf->idesc;
656 int cycles = 0;
657 {
658 int referenced = 0;
659 int UNUSED insn_referenced = abuf->written;
660 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
661 }
662 {
663 int referenced = 0;
664 int UNUSED insn_referenced = abuf->written;
665 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
666 }
667 return cycles;
668#undef FLD
669}
670
671static int
672model_crisv10_cmpu_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
673{
674#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
675 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
676 const IDESC * UNUSED idesc = abuf->idesc;
677 int cycles = 0;
678 {
679 int referenced = 0;
680 int UNUSED insn_referenced = abuf->written;
681 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
682 }
683 {
684 int referenced = 0;
685 int UNUSED insn_referenced = abuf->written;
686 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
687 }
688 return cycles;
689#undef FLD
690}
691
692static int
693model_crisv10_cmpucbr (SIM_CPU *current_cpu, void *sem_arg)
694{
695#define FLD(f) abuf->fields.sfmt_bound_cb.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
703 }
704 {
705 int referenced = 0;
706 int UNUSED insn_referenced = abuf->written;
707 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
708 }
709 return cycles;
710#undef FLD
711}
712
713static int
714model_crisv10_cmpucwr (SIM_CPU *current_cpu, void *sem_arg)
715{
716#define FLD(f) abuf->fields.sfmt_bound_cw.f
717 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
718 const IDESC * UNUSED idesc = abuf->idesc;
719 int cycles = 0;
720 {
721 int referenced = 0;
722 int UNUSED insn_referenced = abuf->written;
723 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
724 }
725 {
726 int referenced = 0;
727 int UNUSED insn_referenced = abuf->written;
728 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
729 }
730 return cycles;
731#undef FLD
732}
733
734static int
735model_crisv10_move_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
736{
737#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
738 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
739 const IDESC * UNUSED idesc = abuf->idesc;
740 int cycles = 0;
741 {
742 int referenced = 0;
743 int UNUSED insn_referenced = abuf->written;
744 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
745 }
746 {
747 int referenced = 0;
748 int UNUSED insn_referenced = abuf->written;
749 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
750 }
751 return cycles;
752#undef FLD
753}
754
755static int
756model_crisv10_move_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
757{
758#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
759 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
760 const IDESC * UNUSED idesc = abuf->idesc;
761 int cycles = 0;
762 {
763 int referenced = 0;
764 int UNUSED insn_referenced = abuf->written;
765 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
766 }
767 {
768 int referenced = 0;
769 int UNUSED insn_referenced = abuf->written;
770 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
771 }
772 return cycles;
773#undef FLD
774}
775
776static int
777model_crisv10_move_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
778{
779#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
780 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
781 const IDESC * UNUSED idesc = abuf->idesc;
782 int cycles = 0;
783 {
784 int referenced = 0;
785 int UNUSED insn_referenced = abuf->written;
786 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
787 }
788 {
789 int referenced = 0;
790 int UNUSED insn_referenced = abuf->written;
791 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
792 }
793 return cycles;
794#undef FLD
795}
796
797static int
798model_crisv10_movs_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
799{
800#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
801 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
802 const IDESC * UNUSED idesc = abuf->idesc;
803 int cycles = 0;
804 {
805 int referenced = 0;
806 int UNUSED insn_referenced = abuf->written;
807 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
808 }
809 {
810 int referenced = 0;
811 int UNUSED insn_referenced = abuf->written;
812 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
813 }
814 return cycles;
815#undef FLD
816}
817
818static int
819model_crisv10_movs_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
820{
821#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
822 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
823 const IDESC * UNUSED idesc = abuf->idesc;
824 int cycles = 0;
825 {
826 int referenced = 0;
827 int UNUSED insn_referenced = abuf->written;
828 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
829 }
830 {
831 int referenced = 0;
832 int UNUSED insn_referenced = abuf->written;
833 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
834 }
835 return cycles;
836#undef FLD
837}
838
839static int
840model_crisv10_movu_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
841{
842#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
843 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
844 const IDESC * UNUSED idesc = abuf->idesc;
845 int cycles = 0;
846 {
847 int referenced = 0;
848 int UNUSED insn_referenced = abuf->written;
849 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
850 }
851 {
852 int referenced = 0;
853 int UNUSED insn_referenced = abuf->written;
854 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
855 }
856 return cycles;
857#undef FLD
858}
859
860static int
861model_crisv10_movu_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
862{
863#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
864 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
865 const IDESC * UNUSED idesc = abuf->idesc;
866 int cycles = 0;
867 {
868 int referenced = 0;
869 int UNUSED insn_referenced = abuf->written;
870 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
871 }
872 {
873 int referenced = 0;
874 int UNUSED insn_referenced = abuf->written;
875 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
876 }
877 return cycles;
878#undef FLD
879}
880
881static int
882model_crisv10_move_r_sprv10 (SIM_CPU *current_cpu, void *sem_arg)
883{
884#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
885 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
886 const IDESC * UNUSED idesc = abuf->idesc;
887 int cycles = 0;
888 {
889 int referenced = 0;
890 int UNUSED insn_referenced = abuf->written;
891 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
892 }
893 return cycles;
894#undef FLD
895}
896
897static int
898model_crisv10_move_spr_rv10 (SIM_CPU *current_cpu, void *sem_arg)
899{
900#define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
901 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
902 const IDESC * UNUSED idesc = abuf->idesc;
903 int cycles = 0;
904 {
905 int referenced = 0;
906 int UNUSED insn_referenced = abuf->written;
907 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
908 }
909 return cycles;
910#undef FLD
911}
912
913static int
914model_crisv10_ret_type (SIM_CPU *current_cpu, void *sem_arg)
915{
916#define FLD(f) abuf->fields.sfmt_move_spr_rv10.f
917 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
918 const IDESC * UNUSED idesc = abuf->idesc;
919 int cycles = 0;
920 {
921 int referenced = 0;
922 int UNUSED insn_referenced = abuf->written;
923 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
924 }
925 return cycles;
926#undef FLD
927}
928
929static int
930model_crisv10_move_m_sprv10 (SIM_CPU *current_cpu, void *sem_arg)
931{
932#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
933 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
934 const IDESC * UNUSED idesc = abuf->idesc;
935 int cycles = 0;
936 {
937 int referenced = 0;
938 int UNUSED insn_referenced = abuf->written;
939 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
940 }
941 {
942 int referenced = 0;
943 int UNUSED insn_referenced = abuf->written;
944 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
945 }
946 return cycles;
947#undef FLD
948}
949
f6bcefef
HPN
950static int
951model_crisv10_move_c_sprv10_p5 (SIM_CPU *current_cpu, void *sem_arg)
952{
392753ae 953#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f
f6bcefef
HPN
954 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
955 const IDESC * UNUSED idesc = abuf->idesc;
956 int cycles = 0;
957 {
958 int referenced = 0;
959 int UNUSED insn_referenced = abuf->written;
960 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
961 }
962 {
963 int referenced = 0;
964 int UNUSED insn_referenced = abuf->written;
965 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
966 }
967 return cycles;
968#undef FLD
969}
970
f6bcefef
HPN
971static int
972model_crisv10_move_c_sprv10_p9 (SIM_CPU *current_cpu, void *sem_arg)
973{
392753ae 974#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
975 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
976 const IDESC * UNUSED idesc = abuf->idesc;
977 int cycles = 0;
978 {
979 int referenced = 0;
980 int UNUSED insn_referenced = abuf->written;
981 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
982 }
983 {
984 int referenced = 0;
985 int UNUSED insn_referenced = abuf->written;
986 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
987 }
988 return cycles;
989#undef FLD
990}
991
992static int
993model_crisv10_move_c_sprv10_p10 (SIM_CPU *current_cpu, void *sem_arg)
994{
392753ae 995#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
996 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
997 const IDESC * UNUSED idesc = abuf->idesc;
998 int cycles = 0;
999 {
1000 int referenced = 0;
1001 int UNUSED insn_referenced = abuf->written;
1002 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1003 }
1004 {
1005 int referenced = 0;
1006 int UNUSED insn_referenced = abuf->written;
1007 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1008 }
1009 return cycles;
1010#undef FLD
1011}
1012
1013static int
1014model_crisv10_move_c_sprv10_p11 (SIM_CPU *current_cpu, void *sem_arg)
1015{
392753ae 1016#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
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 += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1024 }
1025 {
1026 int referenced = 0;
1027 int UNUSED insn_referenced = abuf->written;
1028 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1029 }
1030 return cycles;
1031#undef FLD
1032}
1033
1034static int
1035model_crisv10_move_c_sprv10_p12 (SIM_CPU *current_cpu, void *sem_arg)
1036{
392753ae 1037#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
1038 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1039 const IDESC * UNUSED idesc = abuf->idesc;
1040 int cycles = 0;
1041 {
1042 int referenced = 0;
1043 int UNUSED insn_referenced = abuf->written;
1044 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1045 }
1046 {
1047 int referenced = 0;
1048 int UNUSED insn_referenced = abuf->written;
1049 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1050 }
1051 return cycles;
1052#undef FLD
1053}
1054
1055static int
1056model_crisv10_move_c_sprv10_p13 (SIM_CPU *current_cpu, void *sem_arg)
1057{
392753ae 1058#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
1059 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1060 const IDESC * UNUSED idesc = abuf->idesc;
1061 int cycles = 0;
1062 {
1063 int referenced = 0;
1064 int UNUSED insn_referenced = abuf->written;
1065 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1066 }
1067 {
1068 int referenced = 0;
1069 int UNUSED insn_referenced = abuf->written;
1070 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1071 }
1072 return cycles;
1073#undef FLD
1074}
1075
1076static int
1077model_crisv10_move_c_sprv10_p7 (SIM_CPU *current_cpu, void *sem_arg)
1078{
392753ae 1079#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
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 += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1087 }
1088 {
1089 int referenced = 0;
1090 int UNUSED insn_referenced = abuf->written;
1091 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1092 }
1093 return cycles;
1094#undef FLD
1095}
1096
1097static int
1098model_crisv10_move_c_sprv10_p14 (SIM_CPU *current_cpu, void *sem_arg)
1099{
392753ae 1100#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
1101 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1102 const IDESC * UNUSED idesc = abuf->idesc;
1103 int cycles = 0;
1104 {
1105 int referenced = 0;
1106 int UNUSED insn_referenced = abuf->written;
1107 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1108 }
1109 {
1110 int referenced = 0;
1111 int UNUSED insn_referenced = abuf->written;
1112 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1113 }
1114 return cycles;
1115#undef FLD
1116}
1117
1118static int
1119model_crisv10_move_c_sprv10_p15 (SIM_CPU *current_cpu, void *sem_arg)
1120{
392753ae 1121#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
1122 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1123 const IDESC * UNUSED idesc = abuf->idesc;
1124 int cycles = 0;
1125 {
1126 int referenced = 0;
1127 int UNUSED insn_referenced = abuf->written;
1128 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1129 }
1130 {
1131 int referenced = 0;
1132 int UNUSED insn_referenced = abuf->written;
1133 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1134 }
1135 return cycles;
1136#undef FLD
1137}
1138
1139static int
1140model_crisv10_move_spr_mv10 (SIM_CPU *current_cpu, void *sem_arg)
1141{
1142#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
1143 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1144 const IDESC * UNUSED idesc = abuf->idesc;
1145 int cycles = 0;
1146 {
1147 int referenced = 0;
1148 int UNUSED insn_referenced = abuf->written;
1149 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1150 }
1151 {
1152 int referenced = 0;
1153 int UNUSED insn_referenced = abuf->written;
1154 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1155 }
1156 return cycles;
1157#undef FLD
1158}
1159
1160static int
1161model_crisv10_sbfs (SIM_CPU *current_cpu, void *sem_arg)
1162{
1163#define FLD(f) abuf->fields.fmt_empty.f
1164 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1165 const IDESC * UNUSED idesc = abuf->idesc;
1166 int cycles = 0;
1167 {
1168 int referenced = 0;
1169 int UNUSED insn_referenced = abuf->written;
1170 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1171 }
1172 return cycles;
1173#undef FLD
1174}
1175
1176static int
1177model_crisv10_movem_r_m (SIM_CPU *current_cpu, void *sem_arg)
1178{
1179#define FLD(f) abuf->fields.sfmt_movem_r_m.f
1180 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1181 const IDESC * UNUSED idesc = abuf->idesc;
1182 int cycles = 0;
1183 {
1184 int referenced = 0;
1185 int UNUSED insn_referenced = abuf->written;
1186 INT in_Rd = -1;
1187 in_Rd = FLD (in_Rd);
1188 referenced |= 1 << 0;
1189 cycles += crisv10f_model_crisv10_u_movem (current_cpu, idesc, 0, referenced, in_Rd);
1190 }
1191 {
1192 int referenced = 0;
1193 int UNUSED insn_referenced = abuf->written;
1194 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1195 }
1196 return cycles;
1197#undef FLD
1198}
1199
1200static int
1201model_crisv10_movem_m_r (SIM_CPU *current_cpu, void *sem_arg)
1202{
1203#define FLD(f) abuf->fields.sfmt_movem_m_r.f
1204 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1205 const IDESC * UNUSED idesc = abuf->idesc;
1206 int cycles = 0;
1207 {
1208 int referenced = 0;
1209 int UNUSED insn_referenced = abuf->written;
1210 INT in_Rd = -1;
1211 in_Rd = FLD (in_Rd);
1212 referenced |= 1 << 0;
1213 cycles += crisv10f_model_crisv10_u_movem (current_cpu, idesc, 0, referenced, in_Rd);
1214 }
1215 {
1216 int referenced = 0;
1217 int UNUSED insn_referenced = abuf->written;
1218 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1219 }
1220 return cycles;
1221#undef FLD
1222}
1223
1224static int
1225model_crisv10_movem_m_pc (SIM_CPU *current_cpu, void *sem_arg)
1226{
1227#define FLD(f) abuf->fields.sfmt_movem_m_r.f
1228 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1229 const IDESC * UNUSED idesc = abuf->idesc;
1230 int cycles = 0;
1231 {
1232 int referenced = 0;
1233 int UNUSED insn_referenced = abuf->written;
1234 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1235 }
1236 {
1237 int referenced = 0;
1238 int UNUSED insn_referenced = abuf->written;
1239 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1240 }
1241 return cycles;
1242#undef FLD
1243}
1244
1245static int
1246model_crisv10_add_b_r (SIM_CPU *current_cpu, void *sem_arg)
1247{
1248#define FLD(f) abuf->fields.sfmt_add_b_r.f
1249 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1250 const IDESC * UNUSED idesc = abuf->idesc;
1251 int cycles = 0;
1252 {
1253 int referenced = 0;
1254 int UNUSED insn_referenced = abuf->written;
1255 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1256 }
1257 return cycles;
1258#undef FLD
1259}
1260
1261static int
1262model_crisv10_add_w_r (SIM_CPU *current_cpu, void *sem_arg)
1263{
1264#define FLD(f) abuf->fields.sfmt_add_b_r.f
1265 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1266 const IDESC * UNUSED idesc = abuf->idesc;
1267 int cycles = 0;
1268 {
1269 int referenced = 0;
1270 int UNUSED insn_referenced = abuf->written;
1271 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1272 }
1273 return cycles;
1274#undef FLD
1275}
1276
1277static int
1278model_crisv10_add_d_r (SIM_CPU *current_cpu, void *sem_arg)
1279{
1280#define FLD(f) abuf->fields.sfmt_add_b_r.f
1281 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1282 const IDESC * UNUSED idesc = abuf->idesc;
1283 int cycles = 0;
1284 {
1285 int referenced = 0;
1286 int UNUSED insn_referenced = abuf->written;
1287 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1288 }
1289 return cycles;
1290#undef FLD
1291}
1292
1293static int
1294model_crisv10_add_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1295{
1296#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1297 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1298 const IDESC * UNUSED idesc = abuf->idesc;
1299 int cycles = 0;
1300 {
1301 int referenced = 0;
1302 int UNUSED insn_referenced = abuf->written;
1303 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1304 }
1305 {
1306 int referenced = 0;
1307 int UNUSED insn_referenced = abuf->written;
1308 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1309 }
1310 return cycles;
1311#undef FLD
1312}
1313
1314static int
1315model_crisv10_add_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1316{
1317#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1318 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1319 const IDESC * UNUSED idesc = abuf->idesc;
1320 int cycles = 0;
1321 {
1322 int referenced = 0;
1323 int UNUSED insn_referenced = abuf->written;
1324 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1325 }
1326 {
1327 int referenced = 0;
1328 int UNUSED insn_referenced = abuf->written;
1329 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1330 }
1331 return cycles;
1332#undef FLD
1333}
1334
1335static int
1336model_crisv10_add_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
1337{
1338#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1339 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1340 const IDESC * UNUSED idesc = abuf->idesc;
1341 int cycles = 0;
1342 {
1343 int referenced = 0;
1344 int UNUSED insn_referenced = abuf->written;
1345 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1346 }
1347 {
1348 int referenced = 0;
1349 int UNUSED insn_referenced = abuf->written;
1350 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1351 }
1352 return cycles;
1353#undef FLD
1354}
1355
1356static int
1357model_crisv10_addcbr (SIM_CPU *current_cpu, void *sem_arg)
1358{
1359#define FLD(f) abuf->fields.sfmt_addcbr.f
1360 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1361 const IDESC * UNUSED idesc = abuf->idesc;
1362 int cycles = 0;
1363 {
1364 int referenced = 0;
1365 int UNUSED insn_referenced = abuf->written;
1366 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1367 }
1368 {
1369 int referenced = 0;
1370 int UNUSED insn_referenced = abuf->written;
1371 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1372 }
1373 return cycles;
1374#undef FLD
1375}
1376
1377static int
1378model_crisv10_addcwr (SIM_CPU *current_cpu, void *sem_arg)
1379{
1380#define FLD(f) abuf->fields.sfmt_addcwr.f
1381 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1382 const IDESC * UNUSED idesc = abuf->idesc;
1383 int cycles = 0;
1384 {
1385 int referenced = 0;
1386 int UNUSED insn_referenced = abuf->written;
1387 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1388 }
1389 {
1390 int referenced = 0;
1391 int UNUSED insn_referenced = abuf->written;
1392 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1393 }
1394 return cycles;
1395#undef FLD
1396}
1397
1398static int
1399model_crisv10_addcdr (SIM_CPU *current_cpu, void *sem_arg)
1400{
1401#define FLD(f) abuf->fields.sfmt_addcdr.f
1402 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1403 const IDESC * UNUSED idesc = abuf->idesc;
1404 int cycles = 0;
1405 {
1406 int referenced = 0;
1407 int UNUSED insn_referenced = abuf->written;
1408 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1409 }
1410 {
1411 int referenced = 0;
1412 int UNUSED insn_referenced = abuf->written;
1413 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1414 }
1415 return cycles;
1416#undef FLD
1417}
1418
1419static int
1420model_crisv10_addcpc (SIM_CPU *current_cpu, void *sem_arg)
1421{
392753ae 1422#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
1423 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1424 const IDESC * UNUSED idesc = abuf->idesc;
1425 int cycles = 0;
1426 {
1427 int referenced = 0;
1428 int UNUSED insn_referenced = abuf->written;
1429 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1430 }
1431 {
1432 int referenced = 0;
1433 int UNUSED insn_referenced = abuf->written;
1434 cycles += crisv10f_model_crisv10_u_stall (current_cpu, idesc, 1, referenced);
1435 }
1436 {
1437 int referenced = 0;
1438 int UNUSED insn_referenced = abuf->written;
1439 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 2, referenced);
1440 }
1441 return cycles;
1442#undef FLD
1443}
1444
1445static int
1446model_crisv10_adds_b_r (SIM_CPU *current_cpu, void *sem_arg)
1447{
1448#define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1456 }
1457 return cycles;
1458#undef FLD
1459}
1460
1461static int
1462model_crisv10_adds_w_r (SIM_CPU *current_cpu, void *sem_arg)
1463{
1464#define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1472 }
1473 return cycles;
1474#undef FLD
1475}
1476
1477static int
1478model_crisv10_adds_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1479{
1480#define FLD(f) abuf->fields.sfmt_add_m_b_m.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 += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1488 }
1489 {
1490 int referenced = 0;
1491 int UNUSED insn_referenced = abuf->written;
1492 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1493 }
1494 return cycles;
1495#undef FLD
1496}
1497
1498static int
1499model_crisv10_adds_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1500{
1501#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1502 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1503 const IDESC * UNUSED idesc = abuf->idesc;
1504 int cycles = 0;
1505 {
1506 int referenced = 0;
1507 int UNUSED insn_referenced = abuf->written;
1508 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1509 }
1510 {
1511 int referenced = 0;
1512 int UNUSED insn_referenced = abuf->written;
1513 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1514 }
1515 return cycles;
1516#undef FLD
1517}
1518
1519static int
1520model_crisv10_addscbr (SIM_CPU *current_cpu, void *sem_arg)
1521{
1522#define FLD(f) abuf->fields.sfmt_addcbr.f
1523 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1524 const IDESC * UNUSED idesc = abuf->idesc;
1525 int cycles = 0;
1526 {
1527 int referenced = 0;
1528 int UNUSED insn_referenced = abuf->written;
1529 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1530 }
1531 {
1532 int referenced = 0;
1533 int UNUSED insn_referenced = abuf->written;
1534 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1535 }
1536 return cycles;
1537#undef FLD
1538}
1539
1540static int
1541model_crisv10_addscwr (SIM_CPU *current_cpu, void *sem_arg)
1542{
1543#define FLD(f) abuf->fields.sfmt_addcwr.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1551 }
1552 {
1553 int referenced = 0;
1554 int UNUSED insn_referenced = abuf->written;
1555 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1556 }
1557 return cycles;
1558#undef FLD
1559}
1560
1561static int
1562model_crisv10_addspcpc (SIM_CPU *current_cpu, void *sem_arg)
1563{
1564#define FLD(f) abuf->fields.fmt_empty.f
1565 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1566 const IDESC * UNUSED idesc = abuf->idesc;
1567 int cycles = 0;
1568 {
1569 int referenced = 0;
1570 int UNUSED insn_referenced = abuf->written;
1571 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1572 }
1573 {
1574 int referenced = 0;
1575 int UNUSED insn_referenced = abuf->written;
1576 cycles += crisv10f_model_crisv10_u_stall (current_cpu, idesc, 1, referenced);
1577 }
1578 {
1579 int referenced = 0;
1580 int UNUSED insn_referenced = abuf->written;
1581 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 2, referenced);
1582 }
1583 return cycles;
1584#undef FLD
1585}
1586
1587static int
1588model_crisv10_addu_b_r (SIM_CPU *current_cpu, void *sem_arg)
1589{
1590#define FLD(f) abuf->fields.sfmt_add_b_r.f
1591 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1592 const IDESC * UNUSED idesc = abuf->idesc;
1593 int cycles = 0;
1594 {
1595 int referenced = 0;
1596 int UNUSED insn_referenced = abuf->written;
1597 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1598 }
1599 return cycles;
1600#undef FLD
1601}
1602
1603static int
1604model_crisv10_addu_w_r (SIM_CPU *current_cpu, void *sem_arg)
1605{
1606#define FLD(f) abuf->fields.sfmt_add_b_r.f
1607 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1608 const IDESC * UNUSED idesc = abuf->idesc;
1609 int cycles = 0;
1610 {
1611 int referenced = 0;
1612 int UNUSED insn_referenced = abuf->written;
1613 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1614 }
1615 return cycles;
1616#undef FLD
1617}
1618
1619static int
1620model_crisv10_addu_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1621{
1622#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1623 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1624 const IDESC * UNUSED idesc = abuf->idesc;
1625 int cycles = 0;
1626 {
1627 int referenced = 0;
1628 int UNUSED insn_referenced = abuf->written;
1629 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1630 }
1631 {
1632 int referenced = 0;
1633 int UNUSED insn_referenced = abuf->written;
1634 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1635 }
1636 return cycles;
1637#undef FLD
1638}
1639
1640static int
1641model_crisv10_addu_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1642{
1643#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1644 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1645 const IDESC * UNUSED idesc = abuf->idesc;
1646 int cycles = 0;
1647 {
1648 int referenced = 0;
1649 int UNUSED insn_referenced = abuf->written;
1650 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1651 }
1652 {
1653 int referenced = 0;
1654 int UNUSED insn_referenced = abuf->written;
1655 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1656 }
1657 return cycles;
1658#undef FLD
1659}
1660
1661static int
1662model_crisv10_adducbr (SIM_CPU *current_cpu, void *sem_arg)
1663{
1664#define FLD(f) abuf->fields.sfmt_addcbr.f
1665 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1666 const IDESC * UNUSED idesc = abuf->idesc;
1667 int cycles = 0;
1668 {
1669 int referenced = 0;
1670 int UNUSED insn_referenced = abuf->written;
1671 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1672 }
1673 {
1674 int referenced = 0;
1675 int UNUSED insn_referenced = abuf->written;
1676 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1677 }
1678 return cycles;
1679#undef FLD
1680}
1681
1682static int
1683model_crisv10_adducwr (SIM_CPU *current_cpu, void *sem_arg)
1684{
1685#define FLD(f) abuf->fields.sfmt_addcwr.f
1686 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1687 const IDESC * UNUSED idesc = abuf->idesc;
1688 int cycles = 0;
1689 {
1690 int referenced = 0;
1691 int UNUSED insn_referenced = abuf->written;
1692 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1693 }
1694 {
1695 int referenced = 0;
1696 int UNUSED insn_referenced = abuf->written;
1697 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1698 }
1699 return cycles;
1700#undef FLD
1701}
1702
1703static int
1704model_crisv10_sub_b_r (SIM_CPU *current_cpu, void *sem_arg)
1705{
1706#define FLD(f) abuf->fields.sfmt_add_b_r.f
1707 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1708 const IDESC * UNUSED idesc = abuf->idesc;
1709 int cycles = 0;
1710 {
1711 int referenced = 0;
1712 int UNUSED insn_referenced = abuf->written;
1713 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1714 }
1715 return cycles;
1716#undef FLD
1717}
1718
1719static int
1720model_crisv10_sub_w_r (SIM_CPU *current_cpu, void *sem_arg)
1721{
1722#define FLD(f) abuf->fields.sfmt_add_b_r.f
1723 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1724 const IDESC * UNUSED idesc = abuf->idesc;
1725 int cycles = 0;
1726 {
1727 int referenced = 0;
1728 int UNUSED insn_referenced = abuf->written;
1729 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1730 }
1731 return cycles;
1732#undef FLD
1733}
1734
1735static int
1736model_crisv10_sub_d_r (SIM_CPU *current_cpu, void *sem_arg)
1737{
1738#define FLD(f) abuf->fields.sfmt_add_b_r.f
1739 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1740 const IDESC * UNUSED idesc = abuf->idesc;
1741 int cycles = 0;
1742 {
1743 int referenced = 0;
1744 int UNUSED insn_referenced = abuf->written;
1745 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1746 }
1747 return cycles;
1748#undef FLD
1749}
1750
1751static int
1752model_crisv10_sub_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1753{
1754#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1755 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1756 const IDESC * UNUSED idesc = abuf->idesc;
1757 int cycles = 0;
1758 {
1759 int referenced = 0;
1760 int UNUSED insn_referenced = abuf->written;
1761 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1762 }
1763 {
1764 int referenced = 0;
1765 int UNUSED insn_referenced = abuf->written;
1766 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1767 }
1768 return cycles;
1769#undef FLD
1770}
1771
1772static int
1773model_crisv10_sub_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1774{
1775#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1776 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1777 const IDESC * UNUSED idesc = abuf->idesc;
1778 int cycles = 0;
1779 {
1780 int referenced = 0;
1781 int UNUSED insn_referenced = abuf->written;
1782 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1783 }
1784 {
1785 int referenced = 0;
1786 int UNUSED insn_referenced = abuf->written;
1787 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1788 }
1789 return cycles;
1790#undef FLD
1791}
1792
1793static int
1794model_crisv10_sub_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
1795{
1796#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1797 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1798 const IDESC * UNUSED idesc = abuf->idesc;
1799 int cycles = 0;
1800 {
1801 int referenced = 0;
1802 int UNUSED insn_referenced = abuf->written;
1803 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1804 }
1805 {
1806 int referenced = 0;
1807 int UNUSED insn_referenced = abuf->written;
1808 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1809 }
1810 return cycles;
1811#undef FLD
1812}
1813
1814static int
1815model_crisv10_subcbr (SIM_CPU *current_cpu, void *sem_arg)
1816{
1817#define FLD(f) abuf->fields.sfmt_addcbr.f
1818 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1819 const IDESC * UNUSED idesc = abuf->idesc;
1820 int cycles = 0;
1821 {
1822 int referenced = 0;
1823 int UNUSED insn_referenced = abuf->written;
1824 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1825 }
1826 {
1827 int referenced = 0;
1828 int UNUSED insn_referenced = abuf->written;
1829 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1830 }
1831 return cycles;
1832#undef FLD
1833}
1834
1835static int
1836model_crisv10_subcwr (SIM_CPU *current_cpu, void *sem_arg)
1837{
1838#define FLD(f) abuf->fields.sfmt_addcwr.f
1839 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1840 const IDESC * UNUSED idesc = abuf->idesc;
1841 int cycles = 0;
1842 {
1843 int referenced = 0;
1844 int UNUSED insn_referenced = abuf->written;
1845 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1846 }
1847 {
1848 int referenced = 0;
1849 int UNUSED insn_referenced = abuf->written;
1850 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1851 }
1852 return cycles;
1853#undef FLD
1854}
1855
1856static int
1857model_crisv10_subcdr (SIM_CPU *current_cpu, void *sem_arg)
1858{
1859#define FLD(f) abuf->fields.sfmt_addcdr.f
1860 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1861 const IDESC * UNUSED idesc = abuf->idesc;
1862 int cycles = 0;
1863 {
1864 int referenced = 0;
1865 int UNUSED insn_referenced = abuf->written;
1866 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
1867 }
1868 {
1869 int referenced = 0;
1870 int UNUSED insn_referenced = abuf->written;
1871 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1872 }
1873 return cycles;
1874#undef FLD
1875}
1876
1877static int
1878model_crisv10_subs_b_r (SIM_CPU *current_cpu, void *sem_arg)
1879{
1880#define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1888 }
1889 return cycles;
1890#undef FLD
1891}
1892
1893static int
1894model_crisv10_subs_w_r (SIM_CPU *current_cpu, void *sem_arg)
1895{
1896#define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
1904 }
1905 return cycles;
1906#undef FLD
1907}
1908
1909static int
1910model_crisv10_subs_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
1911{
1912#define FLD(f) abuf->fields.sfmt_add_m_b_m.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 += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1920 }
1921 {
1922 int referenced = 0;
1923 int UNUSED insn_referenced = abuf->written;
1924 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1925 }
1926 return cycles;
1927#undef FLD
1928}
1929
1930static int
1931model_crisv10_subs_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
1932{
1933#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1934 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1935 const IDESC * UNUSED idesc = abuf->idesc;
1936 int cycles = 0;
1937 {
1938 int referenced = 0;
1939 int UNUSED insn_referenced = abuf->written;
1940 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
1941 }
1942 {
1943 int referenced = 0;
1944 int UNUSED insn_referenced = abuf->written;
1945 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1946 }
1947 return cycles;
1948#undef FLD
1949}
1950
1951static int
1952model_crisv10_subscbr (SIM_CPU *current_cpu, void *sem_arg)
1953{
1954#define FLD(f) abuf->fields.sfmt_addcbr.f
1955 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1956 const IDESC * UNUSED idesc = abuf->idesc;
1957 int cycles = 0;
1958 {
1959 int referenced = 0;
1960 int UNUSED insn_referenced = abuf->written;
1961 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1962 }
1963 {
1964 int referenced = 0;
1965 int UNUSED insn_referenced = abuf->written;
1966 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1967 }
1968 return cycles;
1969#undef FLD
1970}
1971
1972static int
1973model_crisv10_subscwr (SIM_CPU *current_cpu, void *sem_arg)
1974{
1975#define FLD(f) abuf->fields.sfmt_addcwr.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
1983 }
1984 {
1985 int referenced = 0;
1986 int UNUSED insn_referenced = abuf->written;
1987 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
1988 }
1989 return cycles;
1990#undef FLD
1991}
1992
1993static int
1994model_crisv10_subu_b_r (SIM_CPU *current_cpu, void *sem_arg)
1995{
1996#define FLD(f) abuf->fields.sfmt_add_b_r.f
1997 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1998 const IDESC * UNUSED idesc = abuf->idesc;
1999 int cycles = 0;
2000 {
2001 int referenced = 0;
2002 int UNUSED insn_referenced = abuf->written;
2003 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2004 }
2005 return cycles;
2006#undef FLD
2007}
2008
2009static int
2010model_crisv10_subu_w_r (SIM_CPU *current_cpu, void *sem_arg)
2011{
2012#define FLD(f) abuf->fields.sfmt_add_b_r.f
2013 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2014 const IDESC * UNUSED idesc = abuf->idesc;
2015 int cycles = 0;
2016 {
2017 int referenced = 0;
2018 int UNUSED insn_referenced = abuf->written;
2019 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2020 }
2021 return cycles;
2022#undef FLD
2023}
2024
2025static int
2026model_crisv10_subu_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2027{
2028#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2029 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2030 const IDESC * UNUSED idesc = abuf->idesc;
2031 int cycles = 0;
2032 {
2033 int referenced = 0;
2034 int UNUSED insn_referenced = abuf->written;
2035 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2036 }
2037 {
2038 int referenced = 0;
2039 int UNUSED insn_referenced = abuf->written;
2040 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2041 }
2042 return cycles;
2043#undef FLD
2044}
2045
2046static int
2047model_crisv10_subu_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2048{
2049#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2050 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2051 const IDESC * UNUSED idesc = abuf->idesc;
2052 int cycles = 0;
2053 {
2054 int referenced = 0;
2055 int UNUSED insn_referenced = abuf->written;
2056 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2057 }
2058 {
2059 int referenced = 0;
2060 int UNUSED insn_referenced = abuf->written;
2061 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2062 }
2063 return cycles;
2064#undef FLD
2065}
2066
2067static int
2068model_crisv10_subucbr (SIM_CPU *current_cpu, void *sem_arg)
2069{
2070#define FLD(f) abuf->fields.sfmt_addcbr.f
2071 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2072 const IDESC * UNUSED idesc = abuf->idesc;
2073 int cycles = 0;
2074 {
2075 int referenced = 0;
2076 int UNUSED insn_referenced = abuf->written;
2077 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2078 }
2079 {
2080 int referenced = 0;
2081 int UNUSED insn_referenced = abuf->written;
2082 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2083 }
2084 return cycles;
2085#undef FLD
2086}
2087
2088static int
2089model_crisv10_subucwr (SIM_CPU *current_cpu, void *sem_arg)
2090{
2091#define FLD(f) abuf->fields.sfmt_addcwr.f
2092 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2093 const IDESC * UNUSED idesc = abuf->idesc;
2094 int cycles = 0;
2095 {
2096 int referenced = 0;
2097 int UNUSED insn_referenced = abuf->written;
2098 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2099 }
2100 {
2101 int referenced = 0;
2102 int UNUSED insn_referenced = abuf->written;
2103 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2104 }
2105 return cycles;
2106#undef FLD
2107}
2108
2109static int
2110model_crisv10_addi_b_r (SIM_CPU *current_cpu, void *sem_arg)
2111{
2112#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2113 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2114 const IDESC * UNUSED idesc = abuf->idesc;
2115 int cycles = 0;
2116 {
2117 int referenced = 0;
2118 int UNUSED insn_referenced = abuf->written;
2119 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2120 }
2121 return cycles;
2122#undef FLD
2123}
2124
2125static int
2126model_crisv10_addi_w_r (SIM_CPU *current_cpu, void *sem_arg)
2127{
2128#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2129 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2130 const IDESC * UNUSED idesc = abuf->idesc;
2131 int cycles = 0;
2132 {
2133 int referenced = 0;
2134 int UNUSED insn_referenced = abuf->written;
2135 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2136 }
2137 return cycles;
2138#undef FLD
2139}
2140
2141static int
2142model_crisv10_addi_d_r (SIM_CPU *current_cpu, void *sem_arg)
2143{
2144#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2145 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2146 const IDESC * UNUSED idesc = abuf->idesc;
2147 int cycles = 0;
2148 {
2149 int referenced = 0;
2150 int UNUSED insn_referenced = abuf->written;
2151 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2152 }
2153 return cycles;
2154#undef FLD
2155}
2156
2157static int
2158model_crisv10_neg_b_r (SIM_CPU *current_cpu, void *sem_arg)
2159{
2160#define FLD(f) abuf->fields.sfmt_add_b_r.f
2161 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2162 const IDESC * UNUSED idesc = abuf->idesc;
2163 int cycles = 0;
2164 {
2165 int referenced = 0;
2166 int UNUSED insn_referenced = abuf->written;
2167 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2168 }
2169 return cycles;
2170#undef FLD
2171}
2172
2173static int
2174model_crisv10_neg_w_r (SIM_CPU *current_cpu, void *sem_arg)
2175{
2176#define FLD(f) abuf->fields.sfmt_add_b_r.f
2177 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2178 const IDESC * UNUSED idesc = abuf->idesc;
2179 int cycles = 0;
2180 {
2181 int referenced = 0;
2182 int UNUSED insn_referenced = abuf->written;
2183 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2184 }
2185 return cycles;
2186#undef FLD
2187}
2188
2189static int
2190model_crisv10_neg_d_r (SIM_CPU *current_cpu, void *sem_arg)
2191{
2192#define FLD(f) abuf->fields.sfmt_add_b_r.f
2193 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2194 const IDESC * UNUSED idesc = abuf->idesc;
2195 int cycles = 0;
2196 {
2197 int referenced = 0;
2198 int UNUSED insn_referenced = abuf->written;
2199 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2200 }
2201 return cycles;
2202#undef FLD
2203}
2204
2205static int
2206model_crisv10_test_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2207{
2208#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
2209 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2210 const IDESC * UNUSED idesc = abuf->idesc;
2211 int cycles = 0;
2212 {
2213 int referenced = 0;
2214 int UNUSED insn_referenced = abuf->written;
2215 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2216 }
2217 {
2218 int referenced = 0;
2219 int UNUSED insn_referenced = abuf->written;
2220 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2221 }
2222 return cycles;
2223#undef FLD
2224}
2225
2226static int
2227model_crisv10_test_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2228{
2229#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
2230 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2231 const IDESC * UNUSED idesc = abuf->idesc;
2232 int cycles = 0;
2233 {
2234 int referenced = 0;
2235 int UNUSED insn_referenced = abuf->written;
2236 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2237 }
2238 {
2239 int referenced = 0;
2240 int UNUSED insn_referenced = abuf->written;
2241 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2242 }
2243 return cycles;
2244#undef FLD
2245}
2246
2247static int
2248model_crisv10_test_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
2249{
2250#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
2251 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2252 const IDESC * UNUSED idesc = abuf->idesc;
2253 int cycles = 0;
2254 {
2255 int referenced = 0;
2256 int UNUSED insn_referenced = abuf->written;
2257 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2258 }
2259 {
2260 int referenced = 0;
2261 int UNUSED insn_referenced = abuf->written;
2262 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2263 }
2264 return cycles;
2265#undef FLD
2266}
2267
2268static int
2269model_crisv10_move_r_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2270{
2271#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2272 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2273 const IDESC * UNUSED idesc = abuf->idesc;
2274 int cycles = 0;
2275 {
2276 int referenced = 0;
2277 int UNUSED insn_referenced = abuf->written;
2278 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2279 }
2280 {
2281 int referenced = 0;
2282 int UNUSED insn_referenced = abuf->written;
2283 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2284 }
2285 return cycles;
2286#undef FLD
2287}
2288
2289static int
2290model_crisv10_move_r_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2291{
2292#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2293 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2294 const IDESC * UNUSED idesc = abuf->idesc;
2295 int cycles = 0;
2296 {
2297 int referenced = 0;
2298 int UNUSED insn_referenced = abuf->written;
2299 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2300 }
2301 {
2302 int referenced = 0;
2303 int UNUSED insn_referenced = abuf->written;
2304 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2305 }
2306 return cycles;
2307#undef FLD
2308}
2309
2310static int
2311model_crisv10_move_r_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
2312{
2313#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
2314 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2315 const IDESC * UNUSED idesc = abuf->idesc;
2316 int cycles = 0;
2317 {
2318 int referenced = 0;
2319 int UNUSED insn_referenced = abuf->written;
2320 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2321 }
2322 {
2323 int referenced = 0;
2324 int UNUSED insn_referenced = abuf->written;
2325 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2326 }
2327 return cycles;
2328#undef FLD
2329}
2330
2331static int
2332model_crisv10_muls_b (SIM_CPU *current_cpu, void *sem_arg)
2333{
2334#define FLD(f) abuf->fields.sfmt_muls_b.f
2335 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2336 const IDESC * UNUSED idesc = abuf->idesc;
2337 int cycles = 0;
2338 {
2339 int referenced = 0;
2340 int UNUSED insn_referenced = abuf->written;
2341 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2342 }
2343 {
2344 int referenced = 0;
2345 int UNUSED insn_referenced = abuf->written;
2346 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2347 }
2348 return cycles;
2349#undef FLD
2350}
2351
2352static int
2353model_crisv10_muls_w (SIM_CPU *current_cpu, void *sem_arg)
2354{
2355#define FLD(f) abuf->fields.sfmt_muls_b.f
2356 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2357 const IDESC * UNUSED idesc = abuf->idesc;
2358 int cycles = 0;
2359 {
2360 int referenced = 0;
2361 int UNUSED insn_referenced = abuf->written;
2362 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2363 }
2364 {
2365 int referenced = 0;
2366 int UNUSED insn_referenced = abuf->written;
2367 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2368 }
2369 return cycles;
2370#undef FLD
2371}
2372
2373static int
2374model_crisv10_muls_d (SIM_CPU *current_cpu, void *sem_arg)
2375{
2376#define FLD(f) abuf->fields.sfmt_muls_b.f
2377 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2378 const IDESC * UNUSED idesc = abuf->idesc;
2379 int cycles = 0;
2380 {
2381 int referenced = 0;
2382 int UNUSED insn_referenced = abuf->written;
2383 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2384 }
2385 {
2386 int referenced = 0;
2387 int UNUSED insn_referenced = abuf->written;
2388 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2389 }
2390 return cycles;
2391#undef FLD
2392}
2393
2394static int
2395model_crisv10_mulu_b (SIM_CPU *current_cpu, void *sem_arg)
2396{
2397#define FLD(f) abuf->fields.sfmt_muls_b.f
2398 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2399 const IDESC * UNUSED idesc = abuf->idesc;
2400 int cycles = 0;
2401 {
2402 int referenced = 0;
2403 int UNUSED insn_referenced = abuf->written;
2404 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2405 }
2406 {
2407 int referenced = 0;
2408 int UNUSED insn_referenced = abuf->written;
2409 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2410 }
2411 return cycles;
2412#undef FLD
2413}
2414
2415static int
2416model_crisv10_mulu_w (SIM_CPU *current_cpu, void *sem_arg)
2417{
2418#define FLD(f) abuf->fields.sfmt_muls_b.f
2419 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2420 const IDESC * UNUSED idesc = abuf->idesc;
2421 int cycles = 0;
2422 {
2423 int referenced = 0;
2424 int UNUSED insn_referenced = abuf->written;
2425 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2426 }
2427 {
2428 int referenced = 0;
2429 int UNUSED insn_referenced = abuf->written;
2430 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2431 }
2432 return cycles;
2433#undef FLD
2434}
2435
2436static int
2437model_crisv10_mulu_d (SIM_CPU *current_cpu, void *sem_arg)
2438{
2439#define FLD(f) abuf->fields.sfmt_muls_b.f
2440 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2441 const IDESC * UNUSED idesc = abuf->idesc;
2442 int cycles = 0;
2443 {
2444 int referenced = 0;
2445 int UNUSED insn_referenced = abuf->written;
2446 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced);
2447 }
2448 {
2449 int referenced = 0;
2450 int UNUSED insn_referenced = abuf->written;
2451 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2452 }
2453 return cycles;
2454#undef FLD
2455}
2456
2457static int
2458model_crisv10_mstep (SIM_CPU *current_cpu, void *sem_arg)
2459{
2460#define FLD(f) abuf->fields.sfmt_muls_b.f
2461 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2462 const IDESC * UNUSED idesc = abuf->idesc;
2463 int cycles = 0;
2464 {
2465 int referenced = 0;
2466 int UNUSED insn_referenced = abuf->written;
2467 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2468 }
2469 return cycles;
2470#undef FLD
2471}
2472
2473static int
2474model_crisv10_dstep (SIM_CPU *current_cpu, void *sem_arg)
2475{
2476#define FLD(f) abuf->fields.sfmt_muls_b.f
2477 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2478 const IDESC * UNUSED idesc = abuf->idesc;
2479 int cycles = 0;
2480 {
2481 int referenced = 0;
2482 int UNUSED insn_referenced = abuf->written;
2483 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2484 }
2485 return cycles;
2486#undef FLD
2487}
2488
2489static int
2490model_crisv10_abs (SIM_CPU *current_cpu, void *sem_arg)
2491{
2492#define FLD(f) abuf->fields.sfmt_muls_b.f
2493 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2494 const IDESC * UNUSED idesc = abuf->idesc;
2495 int cycles = 0;
2496 {
2497 int referenced = 0;
2498 int UNUSED insn_referenced = abuf->written;
2499 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2500 }
2501 return cycles;
2502#undef FLD
2503}
2504
2505static int
2506model_crisv10_and_b_r (SIM_CPU *current_cpu, void *sem_arg)
2507{
2508#define FLD(f) abuf->fields.sfmt_add_b_r.f
2509 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2510 const IDESC * UNUSED idesc = abuf->idesc;
2511 int cycles = 0;
2512 {
2513 int referenced = 0;
2514 int UNUSED insn_referenced = abuf->written;
2515 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2516 }
2517 return cycles;
2518#undef FLD
2519}
2520
2521static int
2522model_crisv10_and_w_r (SIM_CPU *current_cpu, void *sem_arg)
2523{
2524#define FLD(f) abuf->fields.sfmt_add_b_r.f
2525 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2526 const IDESC * UNUSED idesc = abuf->idesc;
2527 int cycles = 0;
2528 {
2529 int referenced = 0;
2530 int UNUSED insn_referenced = abuf->written;
2531 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2532 }
2533 return cycles;
2534#undef FLD
2535}
2536
2537static int
2538model_crisv10_and_d_r (SIM_CPU *current_cpu, void *sem_arg)
2539{
2540#define FLD(f) abuf->fields.sfmt_add_b_r.f
2541 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2542 const IDESC * UNUSED idesc = abuf->idesc;
2543 int cycles = 0;
2544 {
2545 int referenced = 0;
2546 int UNUSED insn_referenced = abuf->written;
2547 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2548 }
2549 return cycles;
2550#undef FLD
2551}
2552
2553static int
2554model_crisv10_and_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2555{
2556#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2557 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2558 const IDESC * UNUSED idesc = abuf->idesc;
2559 int cycles = 0;
2560 {
2561 int referenced = 0;
2562 int UNUSED insn_referenced = abuf->written;
2563 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2564 }
2565 {
2566 int referenced = 0;
2567 int UNUSED insn_referenced = abuf->written;
2568 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2569 }
2570 return cycles;
2571#undef FLD
2572}
2573
2574static int
2575model_crisv10_and_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2576{
2577#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2578 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2579 const IDESC * UNUSED idesc = abuf->idesc;
2580 int cycles = 0;
2581 {
2582 int referenced = 0;
2583 int UNUSED insn_referenced = abuf->written;
2584 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2585 }
2586 {
2587 int referenced = 0;
2588 int UNUSED insn_referenced = abuf->written;
2589 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2590 }
2591 return cycles;
2592#undef FLD
2593}
2594
2595static int
2596model_crisv10_and_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
2597{
2598#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2599 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2600 const IDESC * UNUSED idesc = abuf->idesc;
2601 int cycles = 0;
2602 {
2603 int referenced = 0;
2604 int UNUSED insn_referenced = abuf->written;
2605 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2606 }
2607 {
2608 int referenced = 0;
2609 int UNUSED insn_referenced = abuf->written;
2610 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2611 }
2612 return cycles;
2613#undef FLD
2614}
2615
2616static int
2617model_crisv10_andcbr (SIM_CPU *current_cpu, void *sem_arg)
2618{
2619#define FLD(f) abuf->fields.sfmt_addcbr.f
2620 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2621 const IDESC * UNUSED idesc = abuf->idesc;
2622 int cycles = 0;
2623 {
2624 int referenced = 0;
2625 int UNUSED insn_referenced = abuf->written;
2626 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2627 }
2628 {
2629 int referenced = 0;
2630 int UNUSED insn_referenced = abuf->written;
2631 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2632 }
2633 return cycles;
2634#undef FLD
2635}
2636
2637static int
2638model_crisv10_andcwr (SIM_CPU *current_cpu, void *sem_arg)
2639{
2640#define FLD(f) abuf->fields.sfmt_addcwr.f
2641 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2642 const IDESC * UNUSED idesc = abuf->idesc;
2643 int cycles = 0;
2644 {
2645 int referenced = 0;
2646 int UNUSED insn_referenced = abuf->written;
2647 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2648 }
2649 {
2650 int referenced = 0;
2651 int UNUSED insn_referenced = abuf->written;
2652 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2653 }
2654 return cycles;
2655#undef FLD
2656}
2657
2658static int
2659model_crisv10_andcdr (SIM_CPU *current_cpu, void *sem_arg)
2660{
2661#define FLD(f) abuf->fields.sfmt_addcdr.f
2662 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2663 const IDESC * UNUSED idesc = abuf->idesc;
2664 int cycles = 0;
2665 {
2666 int referenced = 0;
2667 int UNUSED insn_referenced = abuf->written;
2668 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
2669 }
2670 {
2671 int referenced = 0;
2672 int UNUSED insn_referenced = abuf->written;
2673 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2674 }
2675 return cycles;
2676#undef FLD
2677}
2678
2679static int
2680model_crisv10_andq (SIM_CPU *current_cpu, void *sem_arg)
2681{
2682#define FLD(f) abuf->fields.sfmt_andq.f
2683 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2684 const IDESC * UNUSED idesc = abuf->idesc;
2685 int cycles = 0;
2686 {
2687 int referenced = 0;
2688 int UNUSED insn_referenced = abuf->written;
2689 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2690 }
2691 return cycles;
2692#undef FLD
2693}
2694
2695static int
2696model_crisv10_orr_b_r (SIM_CPU *current_cpu, void *sem_arg)
2697{
2698#define FLD(f) abuf->fields.sfmt_add_b_r.f
2699 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2700 const IDESC * UNUSED idesc = abuf->idesc;
2701 int cycles = 0;
2702 {
2703 int referenced = 0;
2704 int UNUSED insn_referenced = abuf->written;
2705 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2706 }
2707 return cycles;
2708#undef FLD
2709}
2710
2711static int
2712model_crisv10_orr_w_r (SIM_CPU *current_cpu, void *sem_arg)
2713{
2714#define FLD(f) abuf->fields.sfmt_add_b_r.f
2715 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2716 const IDESC * UNUSED idesc = abuf->idesc;
2717 int cycles = 0;
2718 {
2719 int referenced = 0;
2720 int UNUSED insn_referenced = abuf->written;
2721 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2722 }
2723 return cycles;
2724#undef FLD
2725}
2726
2727static int
2728model_crisv10_orr_d_r (SIM_CPU *current_cpu, void *sem_arg)
2729{
2730#define FLD(f) abuf->fields.sfmt_add_b_r.f
2731 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2732 const IDESC * UNUSED idesc = abuf->idesc;
2733 int cycles = 0;
2734 {
2735 int referenced = 0;
2736 int UNUSED insn_referenced = abuf->written;
2737 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2738 }
2739 return cycles;
2740#undef FLD
2741}
2742
2743static int
2744model_crisv10_or_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
2745{
2746#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2747 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2748 const IDESC * UNUSED idesc = abuf->idesc;
2749 int cycles = 0;
2750 {
2751 int referenced = 0;
2752 int UNUSED insn_referenced = abuf->written;
2753 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2754 }
2755 {
2756 int referenced = 0;
2757 int UNUSED insn_referenced = abuf->written;
2758 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2759 }
2760 return cycles;
2761#undef FLD
2762}
2763
2764static int
2765model_crisv10_or_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
2766{
2767#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2768 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2769 const IDESC * UNUSED idesc = abuf->idesc;
2770 int cycles = 0;
2771 {
2772 int referenced = 0;
2773 int UNUSED insn_referenced = abuf->written;
2774 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2775 }
2776 {
2777 int referenced = 0;
2778 int UNUSED insn_referenced = abuf->written;
2779 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2780 }
2781 return cycles;
2782#undef FLD
2783}
2784
2785static int
2786model_crisv10_or_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
2787{
2788#define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2789 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2790 const IDESC * UNUSED idesc = abuf->idesc;
2791 int cycles = 0;
2792 {
2793 int referenced = 0;
2794 int UNUSED insn_referenced = abuf->written;
2795 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
2796 }
2797 {
2798 int referenced = 0;
2799 int UNUSED insn_referenced = abuf->written;
2800 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2801 }
2802 return cycles;
2803#undef FLD
2804}
2805
2806static int
2807model_crisv10_orcbr (SIM_CPU *current_cpu, void *sem_arg)
2808{
2809#define FLD(f) abuf->fields.sfmt_addcbr.f
2810 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2811 const IDESC * UNUSED idesc = abuf->idesc;
2812 int cycles = 0;
2813 {
2814 int referenced = 0;
2815 int UNUSED insn_referenced = abuf->written;
2816 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2817 }
2818 {
2819 int referenced = 0;
2820 int UNUSED insn_referenced = abuf->written;
2821 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2822 }
2823 return cycles;
2824#undef FLD
2825}
2826
2827static int
2828model_crisv10_orcwr (SIM_CPU *current_cpu, void *sem_arg)
2829{
2830#define FLD(f) abuf->fields.sfmt_addcwr.f
2831 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2832 const IDESC * UNUSED idesc = abuf->idesc;
2833 int cycles = 0;
2834 {
2835 int referenced = 0;
2836 int UNUSED insn_referenced = abuf->written;
2837 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
2838 }
2839 {
2840 int referenced = 0;
2841 int UNUSED insn_referenced = abuf->written;
2842 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2843 }
2844 return cycles;
2845#undef FLD
2846}
2847
2848static int
2849model_crisv10_orcdr (SIM_CPU *current_cpu, void *sem_arg)
2850{
2851#define FLD(f) abuf->fields.sfmt_addcdr.f
2852 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2853 const IDESC * UNUSED idesc = abuf->idesc;
2854 int cycles = 0;
2855 {
2856 int referenced = 0;
2857 int UNUSED insn_referenced = abuf->written;
2858 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
2859 }
2860 {
2861 int referenced = 0;
2862 int UNUSED insn_referenced = abuf->written;
2863 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
2864 }
2865 return cycles;
2866#undef FLD
2867}
2868
2869static int
2870model_crisv10_orq (SIM_CPU *current_cpu, void *sem_arg)
2871{
2872#define FLD(f) abuf->fields.sfmt_andq.f
2873 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2874 const IDESC * UNUSED idesc = abuf->idesc;
2875 int cycles = 0;
2876 {
2877 int referenced = 0;
2878 int UNUSED insn_referenced = abuf->written;
2879 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2880 }
2881 return cycles;
2882#undef FLD
2883}
2884
2885static int
2886model_crisv10_xor (SIM_CPU *current_cpu, void *sem_arg)
2887{
2888#define FLD(f) abuf->fields.sfmt_muls_b.f
2889 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2890 const IDESC * UNUSED idesc = abuf->idesc;
2891 int cycles = 0;
2892 {
2893 int referenced = 0;
2894 int UNUSED insn_referenced = abuf->written;
2895 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2896 }
2897 return cycles;
2898#undef FLD
2899}
2900
2901static int
2902model_crisv10_swap (SIM_CPU *current_cpu, void *sem_arg)
2903{
2904#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
2905 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2906 const IDESC * UNUSED idesc = abuf->idesc;
2907 int cycles = 0;
2908 {
2909 int referenced = 0;
2910 int UNUSED insn_referenced = abuf->written;
2911 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2912 }
2913 return cycles;
2914#undef FLD
2915}
2916
2917static int
2918model_crisv10_asrr_b_r (SIM_CPU *current_cpu, void *sem_arg)
2919{
2920#define FLD(f) abuf->fields.sfmt_add_b_r.f
2921 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2922 const IDESC * UNUSED idesc = abuf->idesc;
2923 int cycles = 0;
2924 {
2925 int referenced = 0;
2926 int UNUSED insn_referenced = abuf->written;
2927 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2928 }
2929 return cycles;
2930#undef FLD
2931}
2932
2933static int
2934model_crisv10_asrr_w_r (SIM_CPU *current_cpu, void *sem_arg)
2935{
2936#define FLD(f) abuf->fields.sfmt_add_b_r.f
2937 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2938 const IDESC * UNUSED idesc = abuf->idesc;
2939 int cycles = 0;
2940 {
2941 int referenced = 0;
2942 int UNUSED insn_referenced = abuf->written;
2943 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2944 }
2945 return cycles;
2946#undef FLD
2947}
2948
2949static int
2950model_crisv10_asrr_d_r (SIM_CPU *current_cpu, void *sem_arg)
2951{
2952#define FLD(f) abuf->fields.sfmt_add_b_r.f
2953 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2954 const IDESC * UNUSED idesc = abuf->idesc;
2955 int cycles = 0;
2956 {
2957 int referenced = 0;
2958 int UNUSED insn_referenced = abuf->written;
2959 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2960 }
2961 return cycles;
2962#undef FLD
2963}
2964
2965static int
2966model_crisv10_asrq (SIM_CPU *current_cpu, void *sem_arg)
2967{
2968#define FLD(f) abuf->fields.sfmt_asrq.f
2969 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2970 const IDESC * UNUSED idesc = abuf->idesc;
2971 int cycles = 0;
2972 {
2973 int referenced = 0;
2974 int UNUSED insn_referenced = abuf->written;
2975 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2976 }
2977 return cycles;
2978#undef FLD
2979}
2980
2981static int
2982model_crisv10_lsrr_b_r (SIM_CPU *current_cpu, void *sem_arg)
2983{
2984#define FLD(f) abuf->fields.sfmt_add_b_r.f
2985 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2986 const IDESC * UNUSED idesc = abuf->idesc;
2987 int cycles = 0;
2988 {
2989 int referenced = 0;
2990 int UNUSED insn_referenced = abuf->written;
2991 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
2992 }
2993 return cycles;
2994#undef FLD
2995}
2996
2997static int
2998model_crisv10_lsrr_w_r (SIM_CPU *current_cpu, void *sem_arg)
2999{
3000#define FLD(f) abuf->fields.sfmt_add_b_r.f
3001 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3002 const IDESC * UNUSED idesc = abuf->idesc;
3003 int cycles = 0;
3004 {
3005 int referenced = 0;
3006 int UNUSED insn_referenced = abuf->written;
3007 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3008 }
3009 return cycles;
3010#undef FLD
3011}
3012
3013static int
3014model_crisv10_lsrr_d_r (SIM_CPU *current_cpu, void *sem_arg)
3015{
3016#define FLD(f) abuf->fields.sfmt_add_b_r.f
3017 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3018 const IDESC * UNUSED idesc = abuf->idesc;
3019 int cycles = 0;
3020 {
3021 int referenced = 0;
3022 int UNUSED insn_referenced = abuf->written;
3023 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3024 }
3025 return cycles;
3026#undef FLD
3027}
3028
3029static int
3030model_crisv10_lsrq (SIM_CPU *current_cpu, void *sem_arg)
3031{
3032#define FLD(f) abuf->fields.sfmt_asrq.f
3033 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3034 const IDESC * UNUSED idesc = abuf->idesc;
3035 int cycles = 0;
3036 {
3037 int referenced = 0;
3038 int UNUSED insn_referenced = abuf->written;
3039 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3040 }
3041 return cycles;
3042#undef FLD
3043}
3044
3045static int
3046model_crisv10_lslr_b_r (SIM_CPU *current_cpu, void *sem_arg)
3047{
3048#define FLD(f) abuf->fields.sfmt_add_b_r.f
3049 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3050 const IDESC * UNUSED idesc = abuf->idesc;
3051 int cycles = 0;
3052 {
3053 int referenced = 0;
3054 int UNUSED insn_referenced = abuf->written;
3055 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3056 }
3057 return cycles;
3058#undef FLD
3059}
3060
3061static int
3062model_crisv10_lslr_w_r (SIM_CPU *current_cpu, void *sem_arg)
3063{
3064#define FLD(f) abuf->fields.sfmt_add_b_r.f
3065 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3066 const IDESC * UNUSED idesc = abuf->idesc;
3067 int cycles = 0;
3068 {
3069 int referenced = 0;
3070 int UNUSED insn_referenced = abuf->written;
3071 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3072 }
3073 return cycles;
3074#undef FLD
3075}
3076
3077static int
3078model_crisv10_lslr_d_r (SIM_CPU *current_cpu, void *sem_arg)
3079{
3080#define FLD(f) abuf->fields.sfmt_add_b_r.f
3081 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3082 const IDESC * UNUSED idesc = abuf->idesc;
3083 int cycles = 0;
3084 {
3085 int referenced = 0;
3086 int UNUSED insn_referenced = abuf->written;
3087 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3088 }
3089 return cycles;
3090#undef FLD
3091}
3092
3093static int
3094model_crisv10_lslq (SIM_CPU *current_cpu, void *sem_arg)
3095{
3096#define FLD(f) abuf->fields.sfmt_asrq.f
3097 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3098 const IDESC * UNUSED idesc = abuf->idesc;
3099 int cycles = 0;
3100 {
3101 int referenced = 0;
3102 int UNUSED insn_referenced = abuf->written;
3103 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3104 }
3105 return cycles;
3106#undef FLD
3107}
3108
3109static int
3110model_crisv10_btst (SIM_CPU *current_cpu, void *sem_arg)
3111{
3112#define FLD(f) abuf->fields.sfmt_add_b_r.f
3113 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3114 const IDESC * UNUSED idesc = abuf->idesc;
3115 int cycles = 0;
3116 {
3117 int referenced = 0;
3118 int UNUSED insn_referenced = abuf->written;
3119 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3120 }
3121 return cycles;
3122#undef FLD
3123}
3124
3125static int
3126model_crisv10_btstq (SIM_CPU *current_cpu, void *sem_arg)
3127{
3128#define FLD(f) abuf->fields.sfmt_asrq.f
3129 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3130 const IDESC * UNUSED idesc = abuf->idesc;
3131 int cycles = 0;
3132 {
3133 int referenced = 0;
3134 int UNUSED insn_referenced = abuf->written;
3135 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3136 }
3137 return cycles;
3138#undef FLD
3139}
3140
3141static int
3142model_crisv10_setf (SIM_CPU *current_cpu, void *sem_arg)
3143{
3144#define FLD(f) abuf->fields.sfmt_setf.f
3145 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3146 const IDESC * UNUSED idesc = abuf->idesc;
3147 int cycles = 0;
3148 {
3149 int referenced = 0;
3150 int UNUSED insn_referenced = abuf->written;
3151 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3152 }
3153 return cycles;
3154#undef FLD
3155}
3156
3157static int
3158model_crisv10_clearf (SIM_CPU *current_cpu, void *sem_arg)
3159{
3160#define FLD(f) abuf->fields.sfmt_setf.f
3161 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3162 const IDESC * UNUSED idesc = abuf->idesc;
3163 int cycles = 0;
3164 {
3165 int referenced = 0;
3166 int UNUSED insn_referenced = abuf->written;
3167 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3168 }
3169 return cycles;
3170#undef FLD
3171}
3172
3173static int
3174model_crisv10_bcc_b (SIM_CPU *current_cpu, void *sem_arg)
3175{
3176#define FLD(f) abuf->fields.sfmt_bcc_b.f
3177 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3178 const IDESC * UNUSED idesc = abuf->idesc;
3179 int cycles = 0;
3180 {
3181 int referenced = 0;
3182 int UNUSED insn_referenced = abuf->written;
3183 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3184 }
3185 return cycles;
3186#undef FLD
3187}
3188
3189static int
3190model_crisv10_ba_b (SIM_CPU *current_cpu, void *sem_arg)
3191{
3192#define FLD(f) abuf->fields.sfmt_bcc_b.f
3193 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3194 const IDESC * UNUSED idesc = abuf->idesc;
3195 int cycles = 0;
3196 {
3197 int referenced = 0;
3198 int UNUSED insn_referenced = abuf->written;
3199 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3200 }
3201 return cycles;
3202#undef FLD
3203}
3204
3205static int
3206model_crisv10_bcc_w (SIM_CPU *current_cpu, void *sem_arg)
3207{
3208#define FLD(f) abuf->fields.sfmt_bcc_w.f
3209 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3210 const IDESC * UNUSED idesc = abuf->idesc;
3211 int cycles = 0;
3212 {
3213 int referenced = 0;
3214 int UNUSED insn_referenced = abuf->written;
3215 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3216 }
3217 {
3218 int referenced = 0;
3219 int UNUSED insn_referenced = abuf->written;
3220 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3221 }
3222 return cycles;
3223#undef FLD
3224}
3225
3226static int
3227model_crisv10_ba_w (SIM_CPU *current_cpu, void *sem_arg)
3228{
3229#define FLD(f) abuf->fields.sfmt_bcc_w.f
3230 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3231 const IDESC * UNUSED idesc = abuf->idesc;
3232 int cycles = 0;
3233 {
3234 int referenced = 0;
3235 int UNUSED insn_referenced = abuf->written;
3236 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3237 }
3238 {
3239 int referenced = 0;
3240 int UNUSED insn_referenced = abuf->written;
3241 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3242 }
3243 return cycles;
3244#undef FLD
3245}
3246
3247static int
3248model_crisv10_jump_r (SIM_CPU *current_cpu, void *sem_arg)
3249{
3250#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3251 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3252 const IDESC * UNUSED idesc = abuf->idesc;
3253 int cycles = 0;
3254 {
3255 int referenced = 0;
3256 int UNUSED insn_referenced = abuf->written;
3257 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3258 }
3259 return cycles;
3260#undef FLD
3261}
3262
3263static int
3264model_crisv10_jump_m (SIM_CPU *current_cpu, void *sem_arg)
3265{
3266#define FLD(f) abuf->fields.sfmt_move_m_sprv10.f
3267 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3268 const IDESC * UNUSED idesc = abuf->idesc;
3269 int cycles = 0;
3270 {
3271 int referenced = 0;
3272 int UNUSED insn_referenced = abuf->written;
3273 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3274 }
3275 {
3276 int referenced = 0;
3277 int UNUSED insn_referenced = abuf->written;
3278 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3279 }
3280 return cycles;
3281#undef FLD
3282}
3283
3284static int
3285model_crisv10_jump_c (SIM_CPU *current_cpu, void *sem_arg)
3286{
392753ae 3287#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
3288 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3289 const IDESC * UNUSED idesc = abuf->idesc;
3290 int cycles = 0;
3291 {
3292 int referenced = 0;
3293 int UNUSED insn_referenced = abuf->written;
3294 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3295 }
3296 {
3297 int referenced = 0;
3298 int UNUSED insn_referenced = abuf->written;
3299 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3300 }
3301 return cycles;
3302#undef FLD
3303}
3304
3305static int
3306model_crisv10_break (SIM_CPU *current_cpu, void *sem_arg)
3307{
3308#define FLD(f) abuf->fields.sfmt_break.f
3309 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3310 const IDESC * UNUSED idesc = abuf->idesc;
3311 int cycles = 0;
3312 {
3313 int referenced = 0;
3314 int UNUSED insn_referenced = abuf->written;
3315 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3316 }
3317 return cycles;
3318#undef FLD
3319}
3320
3321static int
3322model_crisv10_bound_r_b_r (SIM_CPU *current_cpu, void *sem_arg)
3323{
3324#define FLD(f) abuf->fields.sfmt_muls_b.f
3325 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3326 const IDESC * UNUSED idesc = abuf->idesc;
3327 int cycles = 0;
3328 {
3329 int referenced = 0;
3330 int UNUSED insn_referenced = abuf->written;
3331 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3332 }
3333 return cycles;
3334#undef FLD
3335}
3336
3337static int
3338model_crisv10_bound_r_w_r (SIM_CPU *current_cpu, void *sem_arg)
3339{
3340#define FLD(f) abuf->fields.sfmt_muls_b.f
3341 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3342 const IDESC * UNUSED idesc = abuf->idesc;
3343 int cycles = 0;
3344 {
3345 int referenced = 0;
3346 int UNUSED insn_referenced = abuf->written;
3347 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3348 }
3349 return cycles;
3350#undef FLD
3351}
3352
3353static int
3354model_crisv10_bound_r_d_r (SIM_CPU *current_cpu, void *sem_arg)
3355{
3356#define FLD(f) abuf->fields.sfmt_muls_b.f
3357 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3358 const IDESC * UNUSED idesc = abuf->idesc;
3359 int cycles = 0;
3360 {
3361 int referenced = 0;
3362 int UNUSED insn_referenced = abuf->written;
3363 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3364 }
3365 return cycles;
3366#undef FLD
3367}
3368
3369static int
3370model_crisv10_bound_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
3371{
3372#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3373 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3374 const IDESC * UNUSED idesc = abuf->idesc;
3375 int cycles = 0;
3376 {
3377 int referenced = 0;
3378 int UNUSED insn_referenced = abuf->written;
3379 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3380 }
3381 {
3382 int referenced = 0;
3383 int UNUSED insn_referenced = abuf->written;
3384 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3385 }
3386 return cycles;
3387#undef FLD
3388}
3389
3390static int
3391model_crisv10_bound_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
3392{
3393#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3394 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3395 const IDESC * UNUSED idesc = abuf->idesc;
3396 int cycles = 0;
3397 {
3398 int referenced = 0;
3399 int UNUSED insn_referenced = abuf->written;
3400 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3401 }
3402 {
3403 int referenced = 0;
3404 int UNUSED insn_referenced = abuf->written;
3405 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3406 }
3407 return cycles;
3408#undef FLD
3409}
3410
3411static int
3412model_crisv10_bound_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
3413{
3414#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3415 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3416 const IDESC * UNUSED idesc = abuf->idesc;
3417 int cycles = 0;
3418 {
3419 int referenced = 0;
3420 int UNUSED insn_referenced = abuf->written;
3421 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3422 }
3423 {
3424 int referenced = 0;
3425 int UNUSED insn_referenced = abuf->written;
3426 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3427 }
3428 return cycles;
3429#undef FLD
3430}
3431
3432static int
3433model_crisv10_bound_cb (SIM_CPU *current_cpu, void *sem_arg)
3434{
3435#define FLD(f) abuf->fields.sfmt_bound_cb.f
3436 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3437 const IDESC * UNUSED idesc = abuf->idesc;
3438 int cycles = 0;
3439 {
3440 int referenced = 0;
3441 int UNUSED insn_referenced = abuf->written;
3442 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3443 }
3444 {
3445 int referenced = 0;
3446 int UNUSED insn_referenced = abuf->written;
3447 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3448 }
3449 return cycles;
3450#undef FLD
3451}
3452
3453static int
3454model_crisv10_bound_cw (SIM_CPU *current_cpu, void *sem_arg)
3455{
3456#define FLD(f) abuf->fields.sfmt_bound_cw.f
3457 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3458 const IDESC * UNUSED idesc = abuf->idesc;
3459 int cycles = 0;
3460 {
3461 int referenced = 0;
3462 int UNUSED insn_referenced = abuf->written;
3463 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3464 }
3465 {
3466 int referenced = 0;
3467 int UNUSED insn_referenced = abuf->written;
3468 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3469 }
3470 return cycles;
3471#undef FLD
3472}
3473
3474static int
3475model_crisv10_bound_cd (SIM_CPU *current_cpu, void *sem_arg)
3476{
3477#define FLD(f) abuf->fields.sfmt_bound_cd.f
3478 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3479 const IDESC * UNUSED idesc = abuf->idesc;
3480 int cycles = 0;
3481 {
3482 int referenced = 0;
3483 int UNUSED insn_referenced = abuf->written;
3484 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3485 }
3486 {
3487 int referenced = 0;
3488 int UNUSED insn_referenced = abuf->written;
3489 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3490 }
3491 return cycles;
3492#undef FLD
3493}
3494
3495static int
3496model_crisv10_scc (SIM_CPU *current_cpu, void *sem_arg)
3497{
3498#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
3499 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3500 const IDESC * UNUSED idesc = abuf->idesc;
3501 int cycles = 0;
3502 {
3503 int referenced = 0;
3504 int UNUSED insn_referenced = abuf->written;
3505 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3506 }
3507 return cycles;
3508#undef FLD
3509}
3510
3511static int
3512model_crisv10_lz (SIM_CPU *current_cpu, void *sem_arg)
3513{
3514#define FLD(f) abuf->fields.sfmt_muls_b.f
3515 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3516 const IDESC * UNUSED idesc = abuf->idesc;
3517 int cycles = 0;
3518 {
3519 int referenced = 0;
3520 int UNUSED insn_referenced = abuf->written;
3521 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3522 }
3523 return cycles;
3524#undef FLD
3525}
3526
3527static int
3528model_crisv10_addoq (SIM_CPU *current_cpu, void *sem_arg)
3529{
3530#define FLD(f) abuf->fields.sfmt_addoq.f
3531 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3532 const IDESC * UNUSED idesc = abuf->idesc;
3533 int cycles = 0;
3534 {
3535 int referenced = 0;
3536 int UNUSED insn_referenced = abuf->written;
3537 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3538 }
3539 return cycles;
3540#undef FLD
3541}
3542
3543static int
3544model_crisv10_bdapqpc (SIM_CPU *current_cpu, void *sem_arg)
3545{
3546#define FLD(f) abuf->fields.sfmt_addoq.f
3547 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3548 const IDESC * UNUSED idesc = abuf->idesc;
3549 int cycles = 0;
3550 {
3551 int referenced = 0;
3552 int UNUSED insn_referenced = abuf->written;
3553 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3554 }
3555 return cycles;
3556#undef FLD
3557}
3558
392753ae
HPN
3559static int
3560model_crisv10_bdap_32_pc (SIM_CPU *current_cpu, void *sem_arg)
3561{
3562#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
3563 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3564 const IDESC * UNUSED idesc = abuf->idesc;
3565 int cycles = 0;
3566 {
3567 int referenced = 0;
3568 int UNUSED insn_referenced = abuf->written;
3569 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3570 }
3571 {
3572 int referenced = 0;
3573 int UNUSED insn_referenced = abuf->written;
3574 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3575 }
3576 return cycles;
3577#undef FLD
3578}
3579
3580static int
3581model_crisv10_move_m_pcplus_p0 (SIM_CPU *current_cpu, void *sem_arg)
3582{
3583#define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
3584 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3585 const IDESC * UNUSED idesc = abuf->idesc;
3586 int cycles = 0;
3587 {
3588 int referenced = 0;
3589 int UNUSED insn_referenced = abuf->written;
3590 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3591 }
3592 {
3593 int referenced = 0;
3594 int UNUSED insn_referenced = abuf->written;
3595 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3596 }
3597 return cycles;
3598#undef FLD
3599}
3600
3601static int
3602model_crisv10_move_m_spplus_p8 (SIM_CPU *current_cpu, void *sem_arg)
3603{
3604#define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f
3605 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3606 const IDESC * UNUSED idesc = abuf->idesc;
3607 int cycles = 0;
3608 {
3609 int referenced = 0;
3610 int UNUSED insn_referenced = abuf->written;
3611 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3612 }
3613 {
3614 int referenced = 0;
3615 int UNUSED insn_referenced = abuf->written;
3616 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3617 }
3618 return cycles;
3619#undef FLD
3620}
3621
f6bcefef
HPN
3622static int
3623model_crisv10_addo_m_b_m (SIM_CPU *current_cpu, void *sem_arg)
3624{
3625#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3626 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3627 const IDESC * UNUSED idesc = abuf->idesc;
3628 int cycles = 0;
3629 {
3630 int referenced = 0;
3631 int UNUSED insn_referenced = abuf->written;
3632 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3633 }
3634 {
3635 int referenced = 0;
3636 int UNUSED insn_referenced = abuf->written;
3637 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3638 }
3639 return cycles;
3640#undef FLD
3641}
3642
3643static int
3644model_crisv10_addo_m_w_m (SIM_CPU *current_cpu, void *sem_arg)
3645{
3646#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3647 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3648 const IDESC * UNUSED idesc = abuf->idesc;
3649 int cycles = 0;
3650 {
3651 int referenced = 0;
3652 int UNUSED insn_referenced = abuf->written;
3653 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3654 }
3655 {
3656 int referenced = 0;
3657 int UNUSED insn_referenced = abuf->written;
3658 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3659 }
3660 return cycles;
3661#undef FLD
3662}
3663
3664static int
3665model_crisv10_addo_m_d_m (SIM_CPU *current_cpu, void *sem_arg)
3666{
3667#define FLD(f) abuf->fields.sfmt_bound_m_b_m.f
3668 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3669 const IDESC * UNUSED idesc = abuf->idesc;
3670 int cycles = 0;
3671 {
3672 int referenced = 0;
3673 int UNUSED insn_referenced = abuf->written;
3674 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3675 }
3676 {
3677 int referenced = 0;
3678 int UNUSED insn_referenced = abuf->written;
3679 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3680 }
3681 return cycles;
3682#undef FLD
3683}
3684
3685static int
3686model_crisv10_addo_cb (SIM_CPU *current_cpu, void *sem_arg)
3687{
3688#define FLD(f) abuf->fields.sfmt_bound_cb.f
3689 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3690 const IDESC * UNUSED idesc = abuf->idesc;
3691 int cycles = 0;
3692 {
3693 int referenced = 0;
3694 int UNUSED insn_referenced = abuf->written;
3695 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3696 }
3697 {
3698 int referenced = 0;
3699 int UNUSED insn_referenced = abuf->written;
3700 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3701 }
3702 return cycles;
3703#undef FLD
3704}
3705
3706static int
3707model_crisv10_addo_cw (SIM_CPU *current_cpu, void *sem_arg)
3708{
3709#define FLD(f) abuf->fields.sfmt_bound_cw.f
3710 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3711 const IDESC * UNUSED idesc = abuf->idesc;
3712 int cycles = 0;
3713 {
3714 int referenced = 0;
3715 int UNUSED insn_referenced = abuf->written;
3716 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced);
3717 }
3718 {
3719 int referenced = 0;
3720 int UNUSED insn_referenced = abuf->written;
3721 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3722 }
3723 return cycles;
3724#undef FLD
3725}
3726
3727static int
3728model_crisv10_addo_cd (SIM_CPU *current_cpu, void *sem_arg)
3729{
3730#define FLD(f) abuf->fields.sfmt_bound_cd.f
3731 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3732 const IDESC * UNUSED idesc = abuf->idesc;
3733 int cycles = 0;
3734 {
3735 int referenced = 0;
3736 int UNUSED insn_referenced = abuf->written;
3737 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3738 }
3739 {
3740 int referenced = 0;
3741 int UNUSED insn_referenced = abuf->written;
3742 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3743 }
3744 return cycles;
3745#undef FLD
3746}
3747
3748static int
3749model_crisv10_dip_m (SIM_CPU *current_cpu, void *sem_arg)
3750{
3751#define FLD(f) abuf->fields.sfmt_move_spr_mv10.f
3752 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3753 const IDESC * UNUSED idesc = abuf->idesc;
3754 int cycles = 0;
3755 {
3756 int referenced = 0;
3757 int UNUSED insn_referenced = abuf->written;
3758 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced);
3759 }
3760 {
3761 int referenced = 0;
3762 int UNUSED insn_referenced = abuf->written;
3763 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3764 }
3765 return cycles;
3766#undef FLD
3767}
3768
3769static int
3770model_crisv10_dip_c (SIM_CPU *current_cpu, void *sem_arg)
3771{
392753ae 3772#define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
f6bcefef
HPN
3773 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3774 const IDESC * UNUSED idesc = abuf->idesc;
3775 int cycles = 0;
3776 {
3777 int referenced = 0;
3778 int UNUSED insn_referenced = abuf->written;
3779 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced);
3780 }
3781 {
3782 int referenced = 0;
3783 int UNUSED insn_referenced = abuf->written;
3784 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced);
3785 }
3786 return cycles;
3787#undef FLD
3788}
3789
3790static int
3791model_crisv10_addi_acr_b_r (SIM_CPU *current_cpu, void *sem_arg)
3792{
3793#define FLD(f) abuf->fields.sfmt_add_b_r.f
3794 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3795 const IDESC * UNUSED idesc = abuf->idesc;
3796 int cycles = 0;
3797 {
3798 int referenced = 0;
3799 int UNUSED insn_referenced = abuf->written;
3800 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3801 }
3802 return cycles;
3803#undef FLD
3804}
3805
3806static int
3807model_crisv10_addi_acr_w_r (SIM_CPU *current_cpu, void *sem_arg)
3808{
3809#define FLD(f) abuf->fields.sfmt_add_b_r.f
3810 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3811 const IDESC * UNUSED idesc = abuf->idesc;
3812 int cycles = 0;
3813 {
3814 int referenced = 0;
3815 int UNUSED insn_referenced = abuf->written;
3816 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3817 }
3818 return cycles;
3819#undef FLD
3820}
3821
3822static int
3823model_crisv10_addi_acr_d_r (SIM_CPU *current_cpu, void *sem_arg)
3824{
3825#define FLD(f) abuf->fields.sfmt_add_b_r.f
3826 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3827 const IDESC * UNUSED idesc = abuf->idesc;
3828 int cycles = 0;
3829 {
3830 int referenced = 0;
3831 int UNUSED insn_referenced = abuf->written;
3832 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3833 }
3834 return cycles;
3835#undef FLD
3836}
3837
3838static int
3839model_crisv10_biap_pc_b_r (SIM_CPU *current_cpu, void *sem_arg)
3840{
3841#define FLD(f) abuf->fields.sfmt_addoq.f
3842 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3843 const IDESC * UNUSED idesc = abuf->idesc;
3844 int cycles = 0;
3845 {
3846 int referenced = 0;
3847 int UNUSED insn_referenced = abuf->written;
3848 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3849 }
3850 return cycles;
3851#undef FLD
3852}
3853
3854static int
3855model_crisv10_biap_pc_w_r (SIM_CPU *current_cpu, void *sem_arg)
3856{
3857#define FLD(f) abuf->fields.sfmt_addoq.f
3858 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3859 const IDESC * UNUSED idesc = abuf->idesc;
3860 int cycles = 0;
3861 {
3862 int referenced = 0;
3863 int UNUSED insn_referenced = abuf->written;
3864 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3865 }
3866 return cycles;
3867#undef FLD
3868}
3869
3870static int
3871model_crisv10_biap_pc_d_r (SIM_CPU *current_cpu, void *sem_arg)
3872{
3873#define FLD(f) abuf->fields.sfmt_addoq.f
3874 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3875 const IDESC * UNUSED idesc = abuf->idesc;
3876 int cycles = 0;
3877 {
3878 int referenced = 0;
3879 int UNUSED insn_referenced = abuf->written;
3880 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
3881 }
3882 return cycles;
3883#undef FLD
3884}
3885
3886/* We assume UNIT_NONE == 0 because the tables don't always terminate
3887 entries with it. */
3888
3889/* Model timing data for `crisv10'. */
3890
3891static const INSN_TIMING crisv10_timing[] = {
3892 { CRISV10F_INSN_X_INVALID, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3893 { CRISV10F_INSN_X_AFTER, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3894 { CRISV10F_INSN_X_BEFORE, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3895 { CRISV10F_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3896 { CRISV10F_INSN_X_CHAIN, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3897 { CRISV10F_INSN_X_BEGIN, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3898 { CRISV10F_INSN_NOP, model_crisv10_nop, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3899 { CRISV10F_INSN_MOVE_B_R, model_crisv10_move_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3900 { CRISV10F_INSN_MOVE_W_R, model_crisv10_move_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3901 { CRISV10F_INSN_MOVE_D_R, model_crisv10_move_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3902 { CRISV10F_INSN_MOVEPCR, model_crisv10_movepcr, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3903 { CRISV10F_INSN_MOVEQ, model_crisv10_moveq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3904 { CRISV10F_INSN_MOVS_B_R, model_crisv10_movs_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3905 { CRISV10F_INSN_MOVS_W_R, model_crisv10_movs_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3906 { CRISV10F_INSN_MOVU_B_R, model_crisv10_movu_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3907 { CRISV10F_INSN_MOVU_W_R, model_crisv10_movu_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3908 { CRISV10F_INSN_MOVECBR, model_crisv10_movecbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3909 { CRISV10F_INSN_MOVECWR, model_crisv10_movecwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3910 { CRISV10F_INSN_MOVECDR, model_crisv10_movecdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3911 { CRISV10F_INSN_MOVSCBR, model_crisv10_movscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3912 { CRISV10F_INSN_MOVSCWR, model_crisv10_movscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3913 { CRISV10F_INSN_MOVUCBR, model_crisv10_movucbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3914 { CRISV10F_INSN_MOVUCWR, model_crisv10_movucwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3915 { CRISV10F_INSN_ADDQ, model_crisv10_addq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3916 { CRISV10F_INSN_SUBQ, model_crisv10_subq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3917 { CRISV10F_INSN_CMP_R_B_R, model_crisv10_cmp_r_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3918 { CRISV10F_INSN_CMP_R_W_R, model_crisv10_cmp_r_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3919 { CRISV10F_INSN_CMP_R_D_R, model_crisv10_cmp_r_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3920 { CRISV10F_INSN_CMP_M_B_M, model_crisv10_cmp_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3921 { CRISV10F_INSN_CMP_M_W_M, model_crisv10_cmp_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3922 { CRISV10F_INSN_CMP_M_D_M, model_crisv10_cmp_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3923 { CRISV10F_INSN_CMPCBR, model_crisv10_cmpcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3924 { CRISV10F_INSN_CMPCWR, model_crisv10_cmpcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3925 { CRISV10F_INSN_CMPCDR, model_crisv10_cmpcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3926 { CRISV10F_INSN_CMPQ, model_crisv10_cmpq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3927 { CRISV10F_INSN_CMPS_M_B_M, model_crisv10_cmps_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3928 { CRISV10F_INSN_CMPS_M_W_M, model_crisv10_cmps_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3929 { CRISV10F_INSN_CMPSCBR, model_crisv10_cmpscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3930 { CRISV10F_INSN_CMPSCWR, model_crisv10_cmpscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3931 { CRISV10F_INSN_CMPU_M_B_M, model_crisv10_cmpu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3932 { CRISV10F_INSN_CMPU_M_W_M, model_crisv10_cmpu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3933 { CRISV10F_INSN_CMPUCBR, model_crisv10_cmpucbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3934 { CRISV10F_INSN_CMPUCWR, model_crisv10_cmpucwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3935 { CRISV10F_INSN_MOVE_M_B_M, model_crisv10_move_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3936 { CRISV10F_INSN_MOVE_M_W_M, model_crisv10_move_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3937 { CRISV10F_INSN_MOVE_M_D_M, model_crisv10_move_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3938 { CRISV10F_INSN_MOVS_M_B_M, model_crisv10_movs_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3939 { CRISV10F_INSN_MOVS_M_W_M, model_crisv10_movs_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3940 { CRISV10F_INSN_MOVU_M_B_M, model_crisv10_movu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3941 { CRISV10F_INSN_MOVU_M_W_M, model_crisv10_movu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3942 { CRISV10F_INSN_MOVE_R_SPRV10, model_crisv10_move_r_sprv10, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3943 { CRISV10F_INSN_MOVE_SPR_RV10, model_crisv10_move_spr_rv10, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3944 { CRISV10F_INSN_RET_TYPE, model_crisv10_ret_type, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3945 { CRISV10F_INSN_MOVE_M_SPRV10, model_crisv10_move_m_sprv10, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
f6bcefef 3946 { CRISV10F_INSN_MOVE_C_SPRV10_P5, model_crisv10_move_c_sprv10_p5, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
f6bcefef
HPN
3947 { CRISV10F_INSN_MOVE_C_SPRV10_P9, model_crisv10_move_c_sprv10_p9, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3948 { CRISV10F_INSN_MOVE_C_SPRV10_P10, model_crisv10_move_c_sprv10_p10, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3949 { CRISV10F_INSN_MOVE_C_SPRV10_P11, model_crisv10_move_c_sprv10_p11, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3950 { CRISV10F_INSN_MOVE_C_SPRV10_P12, model_crisv10_move_c_sprv10_p12, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3951 { CRISV10F_INSN_MOVE_C_SPRV10_P13, model_crisv10_move_c_sprv10_p13, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3952 { CRISV10F_INSN_MOVE_C_SPRV10_P7, model_crisv10_move_c_sprv10_p7, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3953 { CRISV10F_INSN_MOVE_C_SPRV10_P14, model_crisv10_move_c_sprv10_p14, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3954 { CRISV10F_INSN_MOVE_C_SPRV10_P15, model_crisv10_move_c_sprv10_p15, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3955 { CRISV10F_INSN_MOVE_SPR_MV10, model_crisv10_move_spr_mv10, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3956 { CRISV10F_INSN_SBFS, model_crisv10_sbfs, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3957 { CRISV10F_INSN_MOVEM_R_M, model_crisv10_movem_r_m, { { (int) UNIT_CRISV10_U_MOVEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3958 { CRISV10F_INSN_MOVEM_M_R, model_crisv10_movem_m_r, { { (int) UNIT_CRISV10_U_MOVEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3959 { CRISV10F_INSN_MOVEM_M_PC, model_crisv10_movem_m_pc, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3960 { CRISV10F_INSN_ADD_B_R, model_crisv10_add_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3961 { CRISV10F_INSN_ADD_W_R, model_crisv10_add_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3962 { CRISV10F_INSN_ADD_D_R, model_crisv10_add_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3963 { CRISV10F_INSN_ADD_M_B_M, model_crisv10_add_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3964 { CRISV10F_INSN_ADD_M_W_M, model_crisv10_add_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3965 { CRISV10F_INSN_ADD_M_D_M, model_crisv10_add_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3966 { CRISV10F_INSN_ADDCBR, model_crisv10_addcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3967 { CRISV10F_INSN_ADDCWR, model_crisv10_addcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3968 { CRISV10F_INSN_ADDCDR, model_crisv10_addcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3969 { CRISV10F_INSN_ADDCPC, model_crisv10_addcpc, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_STALL, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3970 { CRISV10F_INSN_ADDS_B_R, model_crisv10_adds_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3971 { CRISV10F_INSN_ADDS_W_R, model_crisv10_adds_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3972 { CRISV10F_INSN_ADDS_M_B_M, model_crisv10_adds_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3973 { CRISV10F_INSN_ADDS_M_W_M, model_crisv10_adds_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3974 { CRISV10F_INSN_ADDSCBR, model_crisv10_addscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3975 { CRISV10F_INSN_ADDSCWR, model_crisv10_addscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3976 { CRISV10F_INSN_ADDSPCPC, model_crisv10_addspcpc, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_STALL, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3977 { CRISV10F_INSN_ADDU_B_R, model_crisv10_addu_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3978 { CRISV10F_INSN_ADDU_W_R, model_crisv10_addu_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3979 { CRISV10F_INSN_ADDU_M_B_M, model_crisv10_addu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3980 { CRISV10F_INSN_ADDU_M_W_M, model_crisv10_addu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3981 { CRISV10F_INSN_ADDUCBR, model_crisv10_adducbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3982 { CRISV10F_INSN_ADDUCWR, model_crisv10_adducwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3983 { CRISV10F_INSN_SUB_B_R, model_crisv10_sub_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3984 { CRISV10F_INSN_SUB_W_R, model_crisv10_sub_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3985 { CRISV10F_INSN_SUB_D_R, model_crisv10_sub_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3986 { CRISV10F_INSN_SUB_M_B_M, model_crisv10_sub_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3987 { CRISV10F_INSN_SUB_M_W_M, model_crisv10_sub_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3988 { CRISV10F_INSN_SUB_M_D_M, model_crisv10_sub_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3989 { CRISV10F_INSN_SUBCBR, model_crisv10_subcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3990 { CRISV10F_INSN_SUBCWR, model_crisv10_subcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3991 { CRISV10F_INSN_SUBCDR, model_crisv10_subcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3992 { CRISV10F_INSN_SUBS_B_R, model_crisv10_subs_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3993 { CRISV10F_INSN_SUBS_W_R, model_crisv10_subs_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3994 { CRISV10F_INSN_SUBS_M_B_M, model_crisv10_subs_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3995 { CRISV10F_INSN_SUBS_M_W_M, model_crisv10_subs_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3996 { CRISV10F_INSN_SUBSCBR, model_crisv10_subscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3997 { CRISV10F_INSN_SUBSCWR, model_crisv10_subscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3998 { CRISV10F_INSN_SUBU_B_R, model_crisv10_subu_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
3999 { CRISV10F_INSN_SUBU_W_R, model_crisv10_subu_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4000 { CRISV10F_INSN_SUBU_M_B_M, model_crisv10_subu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4001 { CRISV10F_INSN_SUBU_M_W_M, model_crisv10_subu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4002 { CRISV10F_INSN_SUBUCBR, model_crisv10_subucbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4003 { CRISV10F_INSN_SUBUCWR, model_crisv10_subucwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4004 { CRISV10F_INSN_ADDI_B_R, model_crisv10_addi_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4005 { CRISV10F_INSN_ADDI_W_R, model_crisv10_addi_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4006 { CRISV10F_INSN_ADDI_D_R, model_crisv10_addi_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4007 { CRISV10F_INSN_NEG_B_R, model_crisv10_neg_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4008 { CRISV10F_INSN_NEG_W_R, model_crisv10_neg_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4009 { CRISV10F_INSN_NEG_D_R, model_crisv10_neg_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4010 { CRISV10F_INSN_TEST_M_B_M, model_crisv10_test_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4011 { CRISV10F_INSN_TEST_M_W_M, model_crisv10_test_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4012 { CRISV10F_INSN_TEST_M_D_M, model_crisv10_test_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4013 { CRISV10F_INSN_MOVE_R_M_B_M, model_crisv10_move_r_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4014 { CRISV10F_INSN_MOVE_R_M_W_M, model_crisv10_move_r_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4015 { CRISV10F_INSN_MOVE_R_M_D_M, model_crisv10_move_r_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4016 { CRISV10F_INSN_MULS_B, model_crisv10_muls_b, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4017 { CRISV10F_INSN_MULS_W, model_crisv10_muls_w, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4018 { CRISV10F_INSN_MULS_D, model_crisv10_muls_d, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4019 { CRISV10F_INSN_MULU_B, model_crisv10_mulu_b, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4020 { CRISV10F_INSN_MULU_W, model_crisv10_mulu_w, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4021 { CRISV10F_INSN_MULU_D, model_crisv10_mulu_d, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4022 { CRISV10F_INSN_MSTEP, model_crisv10_mstep, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4023 { CRISV10F_INSN_DSTEP, model_crisv10_dstep, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4024 { CRISV10F_INSN_ABS, model_crisv10_abs, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4025 { CRISV10F_INSN_AND_B_R, model_crisv10_and_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4026 { CRISV10F_INSN_AND_W_R, model_crisv10_and_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4027 { CRISV10F_INSN_AND_D_R, model_crisv10_and_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4028 { CRISV10F_INSN_AND_M_B_M, model_crisv10_and_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4029 { CRISV10F_INSN_AND_M_W_M, model_crisv10_and_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4030 { CRISV10F_INSN_AND_M_D_M, model_crisv10_and_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4031 { CRISV10F_INSN_ANDCBR, model_crisv10_andcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4032 { CRISV10F_INSN_ANDCWR, model_crisv10_andcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4033 { CRISV10F_INSN_ANDCDR, model_crisv10_andcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4034 { CRISV10F_INSN_ANDQ, model_crisv10_andq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4035 { CRISV10F_INSN_ORR_B_R, model_crisv10_orr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4036 { CRISV10F_INSN_ORR_W_R, model_crisv10_orr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4037 { CRISV10F_INSN_ORR_D_R, model_crisv10_orr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4038 { CRISV10F_INSN_OR_M_B_M, model_crisv10_or_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4039 { CRISV10F_INSN_OR_M_W_M, model_crisv10_or_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4040 { CRISV10F_INSN_OR_M_D_M, model_crisv10_or_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4041 { CRISV10F_INSN_ORCBR, model_crisv10_orcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4042 { CRISV10F_INSN_ORCWR, model_crisv10_orcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4043 { CRISV10F_INSN_ORCDR, model_crisv10_orcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4044 { CRISV10F_INSN_ORQ, model_crisv10_orq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4045 { CRISV10F_INSN_XOR, model_crisv10_xor, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4046 { CRISV10F_INSN_SWAP, model_crisv10_swap, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4047 { CRISV10F_INSN_ASRR_B_R, model_crisv10_asrr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4048 { CRISV10F_INSN_ASRR_W_R, model_crisv10_asrr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4049 { CRISV10F_INSN_ASRR_D_R, model_crisv10_asrr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4050 { CRISV10F_INSN_ASRQ, model_crisv10_asrq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4051 { CRISV10F_INSN_LSRR_B_R, model_crisv10_lsrr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4052 { CRISV10F_INSN_LSRR_W_R, model_crisv10_lsrr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4053 { CRISV10F_INSN_LSRR_D_R, model_crisv10_lsrr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4054 { CRISV10F_INSN_LSRQ, model_crisv10_lsrq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4055 { CRISV10F_INSN_LSLR_B_R, model_crisv10_lslr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4056 { CRISV10F_INSN_LSLR_W_R, model_crisv10_lslr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4057 { CRISV10F_INSN_LSLR_D_R, model_crisv10_lslr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4058 { CRISV10F_INSN_LSLQ, model_crisv10_lslq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4059 { CRISV10F_INSN_BTST, model_crisv10_btst, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4060 { CRISV10F_INSN_BTSTQ, model_crisv10_btstq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4061 { CRISV10F_INSN_SETF, model_crisv10_setf, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4062 { CRISV10F_INSN_CLEARF, model_crisv10_clearf, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4063 { CRISV10F_INSN_BCC_B, model_crisv10_bcc_b, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4064 { CRISV10F_INSN_BA_B, model_crisv10_ba_b, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4065 { CRISV10F_INSN_BCC_W, model_crisv10_bcc_w, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4066 { CRISV10F_INSN_BA_W, model_crisv10_ba_w, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4067 { CRISV10F_INSN_JUMP_R, model_crisv10_jump_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4068 { CRISV10F_INSN_JUMP_M, model_crisv10_jump_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4069 { CRISV10F_INSN_JUMP_C, model_crisv10_jump_c, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4070 { CRISV10F_INSN_BREAK, model_crisv10_break, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4071 { CRISV10F_INSN_BOUND_R_B_R, model_crisv10_bound_r_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4072 { CRISV10F_INSN_BOUND_R_W_R, model_crisv10_bound_r_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4073 { CRISV10F_INSN_BOUND_R_D_R, model_crisv10_bound_r_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4074 { CRISV10F_INSN_BOUND_M_B_M, model_crisv10_bound_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4075 { CRISV10F_INSN_BOUND_M_W_M, model_crisv10_bound_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4076 { CRISV10F_INSN_BOUND_M_D_M, model_crisv10_bound_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4077 { CRISV10F_INSN_BOUND_CB, model_crisv10_bound_cb, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4078 { CRISV10F_INSN_BOUND_CW, model_crisv10_bound_cw, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4079 { CRISV10F_INSN_BOUND_CD, model_crisv10_bound_cd, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4080 { CRISV10F_INSN_SCC, model_crisv10_scc, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4081 { CRISV10F_INSN_LZ, model_crisv10_lz, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4082 { CRISV10F_INSN_ADDOQ, model_crisv10_addoq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4083 { CRISV10F_INSN_BDAPQPC, model_crisv10_bdapqpc, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
392753ae
HPN
4084 { CRISV10F_INSN_BDAP_32_PC, model_crisv10_bdap_32_pc, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4085 { CRISV10F_INSN_MOVE_M_PCPLUS_P0, model_crisv10_move_m_pcplus_p0, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4086 { CRISV10F_INSN_MOVE_M_SPPLUS_P8, model_crisv10_move_m_spplus_p8, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
f6bcefef
HPN
4087 { CRISV10F_INSN_ADDO_M_B_M, model_crisv10_addo_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4088 { CRISV10F_INSN_ADDO_M_W_M, model_crisv10_addo_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4089 { CRISV10F_INSN_ADDO_M_D_M, model_crisv10_addo_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4090 { CRISV10F_INSN_ADDO_CB, model_crisv10_addo_cb, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4091 { CRISV10F_INSN_ADDO_CW, model_crisv10_addo_cw, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4092 { CRISV10F_INSN_ADDO_CD, model_crisv10_addo_cd, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4093 { CRISV10F_INSN_DIP_M, model_crisv10_dip_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4094 { CRISV10F_INSN_DIP_C, model_crisv10_dip_c, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4095 { CRISV10F_INSN_ADDI_ACR_B_R, model_crisv10_addi_acr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4096 { CRISV10F_INSN_ADDI_ACR_W_R, model_crisv10_addi_acr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4097 { CRISV10F_INSN_ADDI_ACR_D_R, model_crisv10_addi_acr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4098 { CRISV10F_INSN_BIAP_PC_B_R, model_crisv10_biap_pc_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4099 { CRISV10F_INSN_BIAP_PC_W_R, model_crisv10_biap_pc_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4100 { CRISV10F_INSN_BIAP_PC_D_R, model_crisv10_biap_pc_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } },
4101};
4102
4103#endif /* WITH_PROFILE_MODEL_P */
4104
4105static void
4106crisv10_model_init (SIM_CPU *cpu)
4107{
4108 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_CRISV10_DATA));
4109}
4110
4111#if WITH_PROFILE_MODEL_P
4112#define TIMING_DATA(td) td
4113#else
4114#define TIMING_DATA(td) 0
4115#endif
4116
4117static const MODEL crisv10_models[] =
4118{
4119 { "crisv10", & crisv10_mach, MODEL_CRISV10, TIMING_DATA (& crisv10_timing[0]), crisv10_model_init },
4120 { 0 }
4121};
4122
4123/* The properties of this cpu's implementation. */
4124
4125static const MACH_IMP_PROPERTIES crisv10f_imp_properties =
4126{
4127 sizeof (SIM_CPU),
4128#if WITH_SCACHE
4129 sizeof (SCACHE)
4130#else
4131 0
4132#endif
4133};
4134
4135
4136static void
4137crisv10f_prepare_run (SIM_CPU *cpu)
4138{
4139 if (CPU_IDESC (cpu) == NULL)
4140 crisv10f_init_idesc_table (cpu);
4141}
4142
4143static const CGEN_INSN *
4144crisv10f_get_idata (SIM_CPU *cpu, int inum)
4145{
4146 return CPU_IDESC (cpu) [inum].idata;
4147}
4148
4149static void
4150crisv10_init_cpu (SIM_CPU *cpu)
4151{
4152 CPU_REG_FETCH (cpu) = crisv10f_fetch_register;
4153 CPU_REG_STORE (cpu) = crisv10f_store_register;
4154 CPU_PC_FETCH (cpu) = crisv10f_h_pc_get;
4155 CPU_PC_STORE (cpu) = crisv10f_h_pc_set;
4156 CPU_GET_IDATA (cpu) = crisv10f_get_idata;
4157 CPU_MAX_INSNS (cpu) = CRISV10F_INSN__MAX;
4158 CPU_INSN_NAME (cpu) = cgen_insn_name;
4159 CPU_FULL_ENGINE_FN (cpu) = crisv10f_engine_run_full;
4160#if WITH_FAST
4161 CPU_FAST_ENGINE_FN (cpu) = crisv10f_engine_run_fast;
4162#else
4163 CPU_FAST_ENGINE_FN (cpu) = crisv10f_engine_run_full;
4164#endif
4165}
4166
4167const MACH crisv10_mach =
4168{
4169 "crisv10", "cris", MACH_CRISV10,
4170 32, 32, & crisv10_models[0], & crisv10f_imp_properties,
4171 crisv10_init_cpu,
4172 crisv10f_prepare_run
4173};
4174
This page took 0.379018 seconds and 4 git commands to generate.