]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/cris/modelv10.c
Update years in copyright notice for the GDB files.
[thirdparty/binutils-gdb.git] / sim / cris / modelv10.c
1 /* Simulator model support for crisv10f.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2013 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
12 any later version.
13
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
18
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, see <http://www.gnu.org/licenses/>.
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
36 static int
37 model_crisv10_nop (SIM_CPU *current_cpu, void *sem_arg)
38 {
39 #define FLD(f) abuf->fields.sfmt_empty.f
40 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
41 const IDESC * UNUSED idesc = abuf->idesc;
42 int cycles = 0;
43 {
44 int referenced = 0;
45 int UNUSED insn_referenced = abuf->written;
46 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced);
47 }
48 return cycles;
49 #undef FLD
50 }
51
52 static int
53 model_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
68 static int
69 model_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
84 static int
85 model_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
100 static int
101 model_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
116 static int
117 model_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
132 static int
133 model_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
148 static int
149 model_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
164 static int
165 model_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
180 static int
181 model_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
196 static int
197 model_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
217 static int
218 model_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
238 static int
239 model_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
259 static int
260 model_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
280 static int
281 model_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
301 static int
302 model_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
322 static int
323 model_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
343 static int
344 model_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
359 static int
360 model_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
375 static int
376 model_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
391 static int
392 model_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
407 static int
408 model_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
423 static int
424 model_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
444 static int
445 model_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
465 static int
466 model_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
486 static int
487 model_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
507 static int
508 model_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
528 static int
529 model_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
549 static int
550 model_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
565 static int
566 model_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
586 static int
587 model_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
607 static int
608 model_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
628 static int
629 model_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
649 static int
650 model_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
670 static int
671 model_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
691 static int
692 model_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
712 static int
713 model_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
733 static int
734 model_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
754 static int
755 model_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
775 static int
776 model_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
796 static int
797 model_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
817 static int
818 model_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
838 static int
839 model_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
859 static int
860 model_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
880 static int
881 model_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
896 static int
897 model_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
912 static int
913 model_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
928 static int
929 model_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
949 static int
950 model_crisv10_move_c_sprv10_p5 (SIM_CPU *current_cpu, void *sem_arg)
951 {
952 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f
953 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
954 const IDESC * UNUSED idesc = abuf->idesc;
955 int cycles = 0;
956 {
957 int referenced = 0;
958 int UNUSED insn_referenced = abuf->written;
959 cycles += 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
970 static int
971 model_crisv10_move_c_sprv10_p9 (SIM_CPU *current_cpu, void *sem_arg)
972 {
973 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
991 static int
992 model_crisv10_move_c_sprv10_p10 (SIM_CPU *current_cpu, void *sem_arg)
993 {
994 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
1012 static int
1013 model_crisv10_move_c_sprv10_p11 (SIM_CPU *current_cpu, void *sem_arg)
1014 {
1015 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
1016 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1017 const IDESC * UNUSED idesc = abuf->idesc;
1018 int cycles = 0;
1019 {
1020 int referenced = 0;
1021 int UNUSED insn_referenced = abuf->written;
1022 cycles += 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
1033 static int
1034 model_crisv10_move_c_sprv10_p12 (SIM_CPU *current_cpu, void *sem_arg)
1035 {
1036 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
1054 static int
1055 model_crisv10_move_c_sprv10_p13 (SIM_CPU *current_cpu, void *sem_arg)
1056 {
1057 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
1075 static int
1076 model_crisv10_move_c_sprv10_p7 (SIM_CPU *current_cpu, void *sem_arg)
1077 {
1078 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
1096 static int
1097 model_crisv10_move_c_sprv10_p14 (SIM_CPU *current_cpu, void *sem_arg)
1098 {
1099 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
1117 static int
1118 model_crisv10_move_c_sprv10_p15 (SIM_CPU *current_cpu, void *sem_arg)
1119 {
1120 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
1138 static int
1139 model_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
1159 static int
1160 model_crisv10_sbfs (SIM_CPU *current_cpu, void *sem_arg)
1161 {
1162 #define FLD(f) abuf->fields.sfmt_empty.f
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
1175 static int
1176 model_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
1199 static int
1200 model_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
1223 static int
1224 model_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
1244 static int
1245 model_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
1260 static int
1261 model_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
1276 static int
1277 model_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
1292 static int
1293 model_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
1313 static int
1314 model_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
1334 static int
1335 model_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
1355 static int
1356 model_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
1376 static int
1377 model_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
1397 static int
1398 model_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
1418 static int
1419 model_crisv10_addcpc (SIM_CPU *current_cpu, void *sem_arg)
1420 {
1421 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
1444 static int
1445 model_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
1460 static int
1461 model_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
1476 static int
1477 model_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
1497 static int
1498 model_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
1518 static int
1519 model_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
1539 static int
1540 model_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
1560 static int
1561 model_crisv10_addspcpc (SIM_CPU *current_cpu, void *sem_arg)
1562 {
1563 #define FLD(f) abuf->fields.sfmt_empty.f
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
1586 static int
1587 model_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
1602 static int
1603 model_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
1618 static int
1619 model_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
1639 static int
1640 model_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
1660 static int
1661 model_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
1681 static int
1682 model_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
1702 static int
1703 model_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
1718 static int
1719 model_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
1734 static int
1735 model_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
1750 static int
1751 model_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
1771 static int
1772 model_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
1792 static int
1793 model_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
1813 static int
1814 model_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
1834 static int
1835 model_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
1855 static int
1856 model_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
1876 static int
1877 model_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
1892 static int
1893 model_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
1908 static int
1909 model_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
1929 static int
1930 model_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
1950 static int
1951 model_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
1971 static int
1972 model_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
1992 static int
1993 model_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
2008 static int
2009 model_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
2024 static int
2025 model_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
2045 static int
2046 model_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
2066 static int
2067 model_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
2087 static int
2088 model_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
2108 static int
2109 model_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
2124 static int
2125 model_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
2140 static int
2141 model_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
2156 static int
2157 model_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
2172 static int
2173 model_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
2188 static int
2189 model_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
2204 static int
2205 model_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
2225 static int
2226 model_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
2246 static int
2247 model_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
2267 static int
2268 model_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
2288 static int
2289 model_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
2309 static int
2310 model_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
2330 static int
2331 model_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
2351 static int
2352 model_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
2372 static int
2373 model_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
2393 static int
2394 model_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
2414 static int
2415 model_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
2435 static int
2436 model_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
2456 static int
2457 model_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
2472 static int
2473 model_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
2488 static int
2489 model_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
2504 static int
2505 model_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
2520 static int
2521 model_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
2536 static int
2537 model_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
2552 static int
2553 model_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
2573 static int
2574 model_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
2594 static int
2595 model_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
2615 static int
2616 model_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
2636 static int
2637 model_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
2657 static int
2658 model_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
2678 static int
2679 model_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
2694 static int
2695 model_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
2710 static int
2711 model_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
2726 static int
2727 model_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
2742 static int
2743 model_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
2763 static int
2764 model_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
2784 static int
2785 model_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
2805 static int
2806 model_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
2826 static int
2827 model_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
2847 static int
2848 model_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
2868 static int
2869 model_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
2884 static int
2885 model_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
2900 static int
2901 model_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
2916 static int
2917 model_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
2932 static int
2933 model_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
2948 static int
2949 model_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
2964 static int
2965 model_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
2980 static int
2981 model_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
2996 static int
2997 model_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
3012 static int
3013 model_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
3028 static int
3029 model_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
3044 static int
3045 model_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
3060 static int
3061 model_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
3076 static int
3077 model_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
3092 static int
3093 model_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
3108 static int
3109 model_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
3124 static int
3125 model_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
3140 static int
3141 model_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
3156 static int
3157 model_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
3172 static int
3173 model_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
3188 static int
3189 model_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
3204 static int
3205 model_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
3225 static int
3226 model_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
3246 static int
3247 model_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
3262 static int
3263 model_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
3283 static int
3284 model_crisv10_jump_c (SIM_CPU *current_cpu, void *sem_arg)
3285 {
3286 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
3304 static int
3305 model_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
3320 static int
3321 model_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
3336 static int
3337 model_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
3352 static int
3353 model_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
3368 static int
3369 model_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
3389 static int
3390 model_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
3410 static int
3411 model_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
3431 static int
3432 model_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
3452 static int
3453 model_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
3473 static int
3474 model_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
3494 static int
3495 model_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
3510 static int
3511 model_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
3526 static int
3527 model_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
3542 static int
3543 model_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
3558 static int
3559 model_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
3579 static int
3580 model_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
3600 static int
3601 model_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
3621 static int
3622 model_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
3642 static int
3643 model_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
3663 static int
3664 model_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
3684 static int
3685 model_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
3705 static int
3706 model_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
3726 static int
3727 model_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
3747 static int
3748 model_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
3768 static int
3769 model_crisv10_dip_c (SIM_CPU *current_cpu, void *sem_arg)
3770 {
3771 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f
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
3789 static int
3790 model_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
3805 static int
3806 model_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
3821 static int
3822 model_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
3837 static int
3838 model_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
3853 static int
3854 model_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
3869 static int
3870 model_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
3890 static 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 } } },
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 } } },
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 } } },
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 } } },
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
4104 static void
4105 crisv10_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
4116 static 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
4124 static 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
4135 static void
4136 crisv10f_prepare_run (SIM_CPU *cpu)
4137 {
4138 if (CPU_IDESC (cpu) == NULL)
4139 crisv10f_init_idesc_table (cpu);
4140 }
4141
4142 static const CGEN_INSN *
4143 crisv10f_get_idata (SIM_CPU *cpu, int inum)
4144 {
4145 return CPU_IDESC (cpu) [inum].idata;
4146 }
4147
4148 static void
4149 crisv10_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
4166 const 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