2010-05-26 Ozkan Sezer <sezeroz@gmail.com>
[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
0f51e9bf 5Copyright 1996-2010 Free Software Foundation, Inc.
f6bcefef
HPN
6
7This file is part of the GNU simulators.
8
c9b3544a
HPN
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
12 any later version.
f6bcefef 13
c9b3544a
HPN
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
f6bcefef 18
c9b3544a
HPN
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
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{
2310652a 40#define FLD(f) abuf->fields.sfmt_empty.f
f6bcefef
HPN
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{
2310652a 1163#define FLD(f) abuf->fields.sfmt_empty.f
f6bcefef
HPN
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{
2310652a 1564#define FLD(f) abuf->fields.sfmt_empty.f
f6bcefef
HPN
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.363316 seconds and 4 git commands to generate.