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