1 /* Simulator model support for crisv32f.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2020 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
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)
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.
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/>.
24 #define WANT_CPU crisv32f
25 #define WANT_CPU_CRISV32F
29 /* The profiling data is recorded here, but is accessed via the profiling
30 mechanism. After all, this is information for profiling. */
32 #if WITH_PROFILE_MODEL_P
34 /* Model handlers for each insn. */
37 model_crisv32_move_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
39 #define FLD(f) abuf->fields.sfmt_addc_m.f
40 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
41 const IDESC
* UNUSED idesc
= abuf
->idesc
;
45 int UNUSED insn_referenced
= abuf
->written
;
51 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
58 model_crisv32_move_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
60 #define FLD(f) abuf->fields.sfmt_addc_m.f
61 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
62 const IDESC
* UNUSED idesc
= abuf
->idesc
;
66 int UNUSED insn_referenced
= abuf
->written
;
72 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
79 model_crisv32_move_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
81 #define FLD(f) abuf->fields.sfmt_addc_m.f
82 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
83 const IDESC
* UNUSED idesc
= abuf
->idesc
;
87 int UNUSED insn_referenced
= abuf
->written
;
93 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
100 model_crisv32_moveq (SIM_CPU
*current_cpu
, void *sem_arg
)
102 #define FLD(f) abuf->fields.sfmt_moveq.f
103 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
104 const IDESC
* UNUSED idesc
= abuf
->idesc
;
108 int UNUSED insn_referenced
= abuf
->written
;
112 out_Rd
= FLD (out_Rd
);
113 referenced
|= 1 << 2;
114 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
121 model_crisv32_movs_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
123 #define FLD(f) abuf->fields.sfmt_muls_b.f
124 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
125 const IDESC
* UNUSED idesc
= abuf
->idesc
;
129 int UNUSED insn_referenced
= abuf
->written
;
134 out_Rd
= FLD (out_Rd
);
135 referenced
|= 1 << 1;
136 referenced
|= 1 << 2;
137 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
144 model_crisv32_movs_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
146 #define FLD(f) abuf->fields.sfmt_muls_b.f
147 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
148 const IDESC
* UNUSED idesc
= abuf
->idesc
;
152 int UNUSED insn_referenced
= abuf
->written
;
157 out_Rd
= FLD (out_Rd
);
158 referenced
|= 1 << 1;
159 referenced
|= 1 << 2;
160 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
167 model_crisv32_movu_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
169 #define FLD(f) abuf->fields.sfmt_muls_b.f
170 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
171 const IDESC
* UNUSED idesc
= abuf
->idesc
;
175 int UNUSED insn_referenced
= abuf
->written
;
180 out_Rd
= FLD (out_Rd
);
181 referenced
|= 1 << 1;
182 referenced
|= 1 << 2;
183 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
190 model_crisv32_movu_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
192 #define FLD(f) abuf->fields.sfmt_muls_b.f
193 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
194 const IDESC
* UNUSED idesc
= abuf
->idesc
;
198 int UNUSED insn_referenced
= abuf
->written
;
203 out_Rd
= FLD (out_Rd
);
204 referenced
|= 1 << 1;
205 referenced
|= 1 << 2;
206 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
213 model_crisv32_movecbr (SIM_CPU
*current_cpu
, void *sem_arg
)
215 #define FLD(f) abuf->fields.sfmt_addcbr.f
216 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
217 const IDESC
* UNUSED idesc
= abuf
->idesc
;
221 int UNUSED insn_referenced
= abuf
->written
;
222 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
226 int UNUSED insn_referenced
= abuf
->written
;
230 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
237 model_crisv32_movecwr (SIM_CPU
*current_cpu
, void *sem_arg
)
239 #define FLD(f) abuf->fields.sfmt_addcwr.f
240 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
241 const IDESC
* UNUSED idesc
= abuf
->idesc
;
245 int UNUSED insn_referenced
= abuf
->written
;
246 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
250 int UNUSED insn_referenced
= abuf
->written
;
254 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
261 model_crisv32_movecdr (SIM_CPU
*current_cpu
, void *sem_arg
)
263 #define FLD(f) abuf->fields.sfmt_bound_cd.f
264 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
265 const IDESC
* UNUSED idesc
= abuf
->idesc
;
269 int UNUSED insn_referenced
= abuf
->written
;
270 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
274 int UNUSED insn_referenced
= abuf
->written
;
278 out_Rd
= FLD (out_Rd
);
279 referenced
|= 1 << 2;
280 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
287 model_crisv32_movscbr (SIM_CPU
*current_cpu
, void *sem_arg
)
289 #define FLD(f) abuf->fields.sfmt_bound_cb.f
290 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
291 const IDESC
* UNUSED idesc
= abuf
->idesc
;
295 int UNUSED insn_referenced
= abuf
->written
;
296 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
300 int UNUSED insn_referenced
= abuf
->written
;
304 out_Rd
= FLD (out_Rd
);
305 referenced
|= 1 << 2;
306 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
313 model_crisv32_movscwr (SIM_CPU
*current_cpu
, void *sem_arg
)
315 #define FLD(f) abuf->fields.sfmt_bound_cw.f
316 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
317 const IDESC
* UNUSED idesc
= abuf
->idesc
;
321 int UNUSED insn_referenced
= abuf
->written
;
322 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
326 int UNUSED insn_referenced
= abuf
->written
;
330 out_Rd
= FLD (out_Rd
);
331 referenced
|= 1 << 2;
332 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
339 model_crisv32_movucbr (SIM_CPU
*current_cpu
, void *sem_arg
)
341 #define FLD(f) abuf->fields.sfmt_bound_cb.f
342 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
343 const IDESC
* UNUSED idesc
= abuf
->idesc
;
347 int UNUSED insn_referenced
= abuf
->written
;
348 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
352 int UNUSED insn_referenced
= abuf
->written
;
356 out_Rd
= FLD (out_Rd
);
357 referenced
|= 1 << 2;
358 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
365 model_crisv32_movucwr (SIM_CPU
*current_cpu
, void *sem_arg
)
367 #define FLD(f) abuf->fields.sfmt_bound_cw.f
368 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
369 const IDESC
* UNUSED idesc
= abuf
->idesc
;
373 int UNUSED insn_referenced
= abuf
->written
;
374 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
378 int UNUSED insn_referenced
= abuf
->written
;
382 out_Rd
= FLD (out_Rd
);
383 referenced
|= 1 << 2;
384 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
391 model_crisv32_addq (SIM_CPU
*current_cpu
, void *sem_arg
)
393 #define FLD(f) abuf->fields.sfmt_addq.f
394 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
395 const IDESC
* UNUSED idesc
= abuf
->idesc
;
399 int UNUSED insn_referenced
= abuf
->written
;
404 referenced
|= 1 << 0;
405 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
412 model_crisv32_subq (SIM_CPU
*current_cpu
, void *sem_arg
)
414 #define FLD(f) abuf->fields.sfmt_addq.f
415 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
416 const IDESC
* UNUSED idesc
= abuf
->idesc
;
420 int UNUSED insn_referenced
= abuf
->written
;
425 referenced
|= 1 << 0;
426 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
433 model_crisv32_cmp_r_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
435 #define FLD(f) abuf->fields.sfmt_muls_b.f
436 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
437 const IDESC
* UNUSED idesc
= abuf
->idesc
;
441 int UNUSED insn_referenced
= abuf
->written
;
447 referenced
|= 1 << 0;
448 referenced
|= 1 << 1;
449 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
456 model_crisv32_cmp_r_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
458 #define FLD(f) abuf->fields.sfmt_muls_b.f
459 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
460 const IDESC
* UNUSED idesc
= abuf
->idesc
;
464 int UNUSED insn_referenced
= abuf
->written
;
470 referenced
|= 1 << 0;
471 referenced
|= 1 << 1;
472 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
479 model_crisv32_cmp_r_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
481 #define FLD(f) abuf->fields.sfmt_muls_b.f
482 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
483 const IDESC
* UNUSED idesc
= abuf
->idesc
;
487 int UNUSED insn_referenced
= abuf
->written
;
493 referenced
|= 1 << 0;
494 referenced
|= 1 << 1;
495 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
502 model_crisv32_cmp_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
504 #define FLD(f) abuf->fields.sfmt_addc_m.f
505 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
506 const IDESC
* UNUSED idesc
= abuf
->idesc
;
510 int UNUSED insn_referenced
= abuf
->written
;
513 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
514 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
518 int UNUSED insn_referenced
= abuf
->written
;
519 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
523 int UNUSED insn_referenced
= abuf
->written
;
529 referenced
|= 1 << 0;
530 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
531 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
538 model_crisv32_cmp_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
540 #define FLD(f) abuf->fields.sfmt_addc_m.f
541 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
542 const IDESC
* UNUSED idesc
= abuf
->idesc
;
546 int UNUSED insn_referenced
= abuf
->written
;
549 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
550 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
554 int UNUSED insn_referenced
= abuf
->written
;
555 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
559 int UNUSED insn_referenced
= abuf
->written
;
565 referenced
|= 1 << 0;
566 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
567 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
574 model_crisv32_cmp_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
576 #define FLD(f) abuf->fields.sfmt_addc_m.f
577 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
578 const IDESC
* UNUSED idesc
= abuf
->idesc
;
582 int UNUSED insn_referenced
= abuf
->written
;
585 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
586 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
590 int UNUSED insn_referenced
= abuf
->written
;
591 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
595 int UNUSED insn_referenced
= abuf
->written
;
601 referenced
|= 1 << 0;
602 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
603 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
610 model_crisv32_cmpcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
612 #define FLD(f) abuf->fields.sfmt_bound_cb.f
613 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
614 const IDESC
* UNUSED idesc
= abuf
->idesc
;
618 int UNUSED insn_referenced
= abuf
->written
;
619 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
623 int UNUSED insn_referenced
= abuf
->written
;
628 referenced
|= 1 << 0;
629 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
636 model_crisv32_cmpcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
638 #define FLD(f) abuf->fields.sfmt_bound_cw.f
639 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
640 const IDESC
* UNUSED idesc
= abuf
->idesc
;
644 int UNUSED insn_referenced
= abuf
->written
;
645 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
649 int UNUSED insn_referenced
= abuf
->written
;
654 referenced
|= 1 << 0;
655 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
662 model_crisv32_cmpcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
664 #define FLD(f) abuf->fields.sfmt_bound_cd.f
665 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
666 const IDESC
* UNUSED idesc
= abuf
->idesc
;
670 int UNUSED insn_referenced
= abuf
->written
;
671 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
675 int UNUSED insn_referenced
= abuf
->written
;
680 referenced
|= 1 << 0;
681 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
688 model_crisv32_cmpq (SIM_CPU
*current_cpu
, void *sem_arg
)
690 #define FLD(f) abuf->fields.sfmt_andq.f
691 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
692 const IDESC
* UNUSED idesc
= abuf
->idesc
;
696 int UNUSED insn_referenced
= abuf
->written
;
701 referenced
|= 1 << 0;
702 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
709 model_crisv32_cmps_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
711 #define FLD(f) abuf->fields.sfmt_addc_m.f
712 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
713 const IDESC
* UNUSED idesc
= abuf
->idesc
;
717 int UNUSED insn_referenced
= abuf
->written
;
720 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
721 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
725 int UNUSED insn_referenced
= abuf
->written
;
726 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
730 int UNUSED insn_referenced
= abuf
->written
;
736 referenced
|= 1 << 0;
737 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
738 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
745 model_crisv32_cmps_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
747 #define FLD(f) abuf->fields.sfmt_addc_m.f
748 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
749 const IDESC
* UNUSED idesc
= abuf
->idesc
;
753 int UNUSED insn_referenced
= abuf
->written
;
756 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
757 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
761 int UNUSED insn_referenced
= abuf
->written
;
762 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
766 int UNUSED insn_referenced
= abuf
->written
;
772 referenced
|= 1 << 0;
773 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
774 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
781 model_crisv32_cmpscbr (SIM_CPU
*current_cpu
, void *sem_arg
)
783 #define FLD(f) abuf->fields.sfmt_bound_cb.f
784 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
785 const IDESC
* UNUSED idesc
= abuf
->idesc
;
789 int UNUSED insn_referenced
= abuf
->written
;
790 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
794 int UNUSED insn_referenced
= abuf
->written
;
799 referenced
|= 1 << 0;
800 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
807 model_crisv32_cmpscwr (SIM_CPU
*current_cpu
, void *sem_arg
)
809 #define FLD(f) abuf->fields.sfmt_bound_cw.f
810 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
811 const IDESC
* UNUSED idesc
= abuf
->idesc
;
815 int UNUSED insn_referenced
= abuf
->written
;
816 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
820 int UNUSED insn_referenced
= abuf
->written
;
825 referenced
|= 1 << 0;
826 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
833 model_crisv32_cmpu_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
835 #define FLD(f) abuf->fields.sfmt_addc_m.f
836 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
837 const IDESC
* UNUSED idesc
= abuf
->idesc
;
841 int UNUSED insn_referenced
= abuf
->written
;
844 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
845 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
849 int UNUSED insn_referenced
= abuf
->written
;
850 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
854 int UNUSED insn_referenced
= abuf
->written
;
860 referenced
|= 1 << 0;
861 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
862 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
869 model_crisv32_cmpu_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
871 #define FLD(f) abuf->fields.sfmt_addc_m.f
872 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
873 const IDESC
* UNUSED idesc
= abuf
->idesc
;
877 int UNUSED insn_referenced
= abuf
->written
;
880 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
881 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
885 int UNUSED insn_referenced
= abuf
->written
;
886 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
890 int UNUSED insn_referenced
= abuf
->written
;
896 referenced
|= 1 << 0;
897 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
898 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
905 model_crisv32_cmpucbr (SIM_CPU
*current_cpu
, void *sem_arg
)
907 #define FLD(f) abuf->fields.sfmt_bound_cb.f
908 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
909 const IDESC
* UNUSED idesc
= abuf
->idesc
;
913 int UNUSED insn_referenced
= abuf
->written
;
914 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
918 int UNUSED insn_referenced
= abuf
->written
;
923 referenced
|= 1 << 0;
924 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
931 model_crisv32_cmpucwr (SIM_CPU
*current_cpu
, void *sem_arg
)
933 #define FLD(f) abuf->fields.sfmt_bound_cw.f
934 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
935 const IDESC
* UNUSED idesc
= abuf
->idesc
;
939 int UNUSED insn_referenced
= abuf
->written
;
940 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
944 int UNUSED insn_referenced
= abuf
->written
;
949 referenced
|= 1 << 0;
950 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
957 model_crisv32_move_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
959 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
960 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
961 const IDESC
* UNUSED idesc
= abuf
->idesc
;
965 int UNUSED insn_referenced
= abuf
->written
;
968 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
969 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
973 int UNUSED insn_referenced
= abuf
->written
;
974 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
978 int UNUSED insn_referenced
= abuf
->written
;
983 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
984 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
991 model_crisv32_move_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
993 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
994 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
995 const IDESC
* UNUSED idesc
= abuf
->idesc
;
999 int UNUSED insn_referenced
= abuf
->written
;
1001 in_Rs
= FLD (in_Rs
);
1002 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1003 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1007 int UNUSED insn_referenced
= abuf
->written
;
1008 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1012 int UNUSED insn_referenced
= abuf
->written
;
1016 in_Rs
= FLD (in_Rs
);
1017 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1018 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1025 model_crisv32_move_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1027 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1028 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1029 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1033 int UNUSED insn_referenced
= abuf
->written
;
1035 in_Rs
= FLD (in_Rs
);
1036 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1037 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1041 int UNUSED insn_referenced
= abuf
->written
;
1042 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1046 int UNUSED insn_referenced
= abuf
->written
;
1050 in_Rs
= FLD (in_Rs
);
1051 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1052 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1059 model_crisv32_movs_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1061 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
1062 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1063 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1067 int UNUSED insn_referenced
= abuf
->written
;
1069 in_Rs
= FLD (in_Rs
);
1070 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1071 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1075 int UNUSED insn_referenced
= abuf
->written
;
1076 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1080 int UNUSED insn_referenced
= abuf
->written
;
1084 in_Rs
= FLD (in_Rs
);
1085 out_Rd
= FLD (out_Rd
);
1086 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1087 if (insn_referenced
& (1 << 7)) referenced
|= 1 << 2;
1088 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1095 model_crisv32_movs_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1097 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
1098 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1099 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1103 int UNUSED insn_referenced
= abuf
->written
;
1105 in_Rs
= FLD (in_Rs
);
1106 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1107 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1111 int UNUSED insn_referenced
= abuf
->written
;
1112 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1116 int UNUSED insn_referenced
= abuf
->written
;
1120 in_Rs
= FLD (in_Rs
);
1121 out_Rd
= FLD (out_Rd
);
1122 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1123 if (insn_referenced
& (1 << 7)) referenced
|= 1 << 2;
1124 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1131 model_crisv32_movu_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1133 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
1134 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1135 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1139 int UNUSED insn_referenced
= abuf
->written
;
1141 in_Rs
= FLD (in_Rs
);
1142 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1143 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1147 int UNUSED insn_referenced
= abuf
->written
;
1148 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1152 int UNUSED insn_referenced
= abuf
->written
;
1156 in_Rs
= FLD (in_Rs
);
1157 out_Rd
= FLD (out_Rd
);
1158 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1159 if (insn_referenced
& (1 << 7)) referenced
|= 1 << 2;
1160 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1167 model_crisv32_movu_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1169 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
1170 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1171 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1175 int UNUSED insn_referenced
= abuf
->written
;
1177 in_Rs
= FLD (in_Rs
);
1178 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1179 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1183 int UNUSED insn_referenced
= abuf
->written
;
1184 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1188 int UNUSED insn_referenced
= abuf
->written
;
1192 in_Rs
= FLD (in_Rs
);
1193 out_Rd
= FLD (out_Rd
);
1194 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1195 if (insn_referenced
& (1 << 7)) referenced
|= 1 << 2;
1196 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1203 model_crisv32_move_r_sprv32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1205 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
1206 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1207 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1211 int UNUSED insn_referenced
= abuf
->written
;
1214 in_Rs
= FLD (in_Rs
);
1215 out_Pd
= FLD (out_Pd
);
1216 referenced
|= 1 << 0;
1217 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
1218 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 0, referenced
, in_Rs
, out_Pd
);
1225 model_crisv32_move_spr_rv32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1227 #define FLD(f) abuf->fields.sfmt_mcp.f
1228 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1229 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1233 int UNUSED insn_referenced
= abuf
->written
;
1237 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1244 model_crisv32_move_m_sprv32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1246 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
1247 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1248 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1252 int UNUSED insn_referenced
= abuf
->written
;
1254 in_Rs
= FLD (in_Rs
);
1255 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1256 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1260 int UNUSED insn_referenced
= abuf
->written
;
1261 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1265 int UNUSED insn_referenced
= abuf
->written
;
1268 in_Rs
= FLD (in_Rs
);
1269 out_Pd
= FLD (out_Pd
);
1270 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1271 referenced
|= 1 << 1;
1272 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 2, referenced
, in_Rs
, out_Pd
);
1279 model_crisv32_move_c_sprv32_p2 (SIM_CPU
*current_cpu
, void *sem_arg
)
1281 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1282 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1283 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1287 int UNUSED insn_referenced
= abuf
->written
;
1288 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1292 int UNUSED insn_referenced
= abuf
->written
;
1295 out_Pd
= FLD (out_Pd
);
1296 referenced
|= 1 << 1;
1297 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1304 model_crisv32_move_c_sprv32_p3 (SIM_CPU
*current_cpu
, void *sem_arg
)
1306 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1307 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1308 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1312 int UNUSED insn_referenced
= abuf
->written
;
1313 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1317 int UNUSED insn_referenced
= abuf
->written
;
1320 out_Pd
= FLD (out_Pd
);
1321 referenced
|= 1 << 1;
1322 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1329 model_crisv32_move_c_sprv32_p5 (SIM_CPU
*current_cpu
, void *sem_arg
)
1331 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1332 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1333 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1337 int UNUSED insn_referenced
= abuf
->written
;
1338 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1342 int UNUSED insn_referenced
= abuf
->written
;
1345 out_Pd
= FLD (out_Pd
);
1346 referenced
|= 1 << 1;
1347 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1354 model_crisv32_move_c_sprv32_p6 (SIM_CPU
*current_cpu
, void *sem_arg
)
1356 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1357 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1358 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1362 int UNUSED insn_referenced
= abuf
->written
;
1363 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1367 int UNUSED insn_referenced
= abuf
->written
;
1370 out_Pd
= FLD (out_Pd
);
1371 referenced
|= 1 << 1;
1372 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1379 model_crisv32_move_c_sprv32_p7 (SIM_CPU
*current_cpu
, void *sem_arg
)
1381 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1382 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1383 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1387 int UNUSED insn_referenced
= abuf
->written
;
1388 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1392 int UNUSED insn_referenced
= abuf
->written
;
1395 out_Pd
= FLD (out_Pd
);
1396 referenced
|= 1 << 1;
1397 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1404 model_crisv32_move_c_sprv32_p9 (SIM_CPU
*current_cpu
, void *sem_arg
)
1406 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1407 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1408 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1412 int UNUSED insn_referenced
= abuf
->written
;
1413 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1417 int UNUSED insn_referenced
= abuf
->written
;
1420 out_Pd
= FLD (out_Pd
);
1421 referenced
|= 1 << 1;
1422 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1429 model_crisv32_move_c_sprv32_p10 (SIM_CPU
*current_cpu
, void *sem_arg
)
1431 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1432 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1433 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1437 int UNUSED insn_referenced
= abuf
->written
;
1438 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1442 int UNUSED insn_referenced
= abuf
->written
;
1445 out_Pd
= FLD (out_Pd
);
1446 referenced
|= 1 << 1;
1447 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1454 model_crisv32_move_c_sprv32_p11 (SIM_CPU
*current_cpu
, void *sem_arg
)
1456 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1457 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1458 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1462 int UNUSED insn_referenced
= abuf
->written
;
1463 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1467 int UNUSED insn_referenced
= abuf
->written
;
1470 out_Pd
= FLD (out_Pd
);
1471 referenced
|= 1 << 1;
1472 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1479 model_crisv32_move_c_sprv32_p12 (SIM_CPU
*current_cpu
, void *sem_arg
)
1481 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1482 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1483 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1487 int UNUSED insn_referenced
= abuf
->written
;
1488 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1492 int UNUSED insn_referenced
= abuf
->written
;
1495 out_Pd
= FLD (out_Pd
);
1496 referenced
|= 1 << 1;
1497 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1504 model_crisv32_move_c_sprv32_p13 (SIM_CPU
*current_cpu
, void *sem_arg
)
1506 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1507 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1508 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1512 int UNUSED insn_referenced
= abuf
->written
;
1513 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1517 int UNUSED insn_referenced
= abuf
->written
;
1520 out_Pd
= FLD (out_Pd
);
1521 referenced
|= 1 << 1;
1522 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1529 model_crisv32_move_c_sprv32_p14 (SIM_CPU
*current_cpu
, void *sem_arg
)
1531 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1532 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1533 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1537 int UNUSED insn_referenced
= abuf
->written
;
1538 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1542 int UNUSED insn_referenced
= abuf
->written
;
1545 out_Pd
= FLD (out_Pd
);
1546 referenced
|= 1 << 1;
1547 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1554 model_crisv32_move_c_sprv32_p15 (SIM_CPU
*current_cpu
, void *sem_arg
)
1556 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
1557 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1558 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1562 int UNUSED insn_referenced
= abuf
->written
;
1563 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1567 int UNUSED insn_referenced
= abuf
->written
;
1570 out_Pd
= FLD (out_Pd
);
1571 referenced
|= 1 << 1;
1572 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1579 model_crisv32_move_spr_mv32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1581 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
1582 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1583 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1587 int UNUSED insn_referenced
= abuf
->written
;
1589 in_Rs
= FLD (in_Rs
);
1590 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1591 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1595 int UNUSED insn_referenced
= abuf
->written
;
1599 in_Rs
= FLD (in_Rs
);
1600 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
1601 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
1605 int UNUSED insn_referenced
= abuf
->written
;
1606 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 2, referenced
);
1613 model_crisv32_move_ss_r (SIM_CPU
*current_cpu
, void *sem_arg
)
1615 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
1616 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1617 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1621 int UNUSED insn_referenced
= abuf
->written
;
1625 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1632 model_crisv32_move_r_ss (SIM_CPU
*current_cpu
, void *sem_arg
)
1634 #define FLD(f) abuf->fields.sfmt_mcp.f
1635 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1636 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1640 int UNUSED insn_referenced
= abuf
->written
;
1644 in_Rs
= FLD (in_Rs
);
1645 referenced
|= 1 << 1;
1646 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1653 model_crisv32_movem_r_m_v32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1655 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
1656 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1657 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1661 int UNUSED insn_referenced
= abuf
->written
;
1663 in_Rs
= FLD (in_Rs
);
1664 referenced
|= 1 << 0;
1665 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1669 int UNUSED insn_referenced
= abuf
->written
;
1672 in_Rs
= FLD (in_Rs
);
1673 in_Rd
= FLD (in_Rd
);
1674 referenced
|= 1 << 0;
1675 referenced
|= 1 << 1;
1676 cycles
+= crisv32f_model_crisv32_u_movem_rtom (current_cpu
, idesc
, 1, referenced
, in_Rs
, in_Rd
);
1680 int UNUSED insn_referenced
= abuf
->written
;
1683 in_Rs
= FLD (in_Rs
);
1684 referenced
|= 1 << 0;
1685 cycles
+= crisv32f_model_crisv32_u_exec_movem (current_cpu
, idesc
, 2, referenced
, in_Rs
, out_Rd
);
1689 int UNUSED insn_referenced
= abuf
->written
;
1690 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 3, referenced
);
1697 model_crisv32_movem_m_r_v32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1699 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
1700 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1701 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1705 int UNUSED insn_referenced
= abuf
->written
;
1707 in_Rs
= FLD (in_Rs
);
1708 referenced
|= 1 << 0;
1709 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1713 int UNUSED insn_referenced
= abuf
->written
;
1714 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1718 int UNUSED insn_referenced
= abuf
->written
;
1721 in_Rs
= FLD (in_Rs
);
1722 in_Rd
= FLD (in_Rd
);
1723 referenced
|= 1 << 0;
1724 referenced
|= 1 << 1;
1725 cycles
+= crisv32f_model_crisv32_u_movem_mtor (current_cpu
, idesc
, 2, referenced
, in_Rs
, in_Rd
);
1729 int UNUSED insn_referenced
= abuf
->written
;
1732 in_Rs
= FLD (in_Rs
);
1733 referenced
|= 1 << 0;
1734 cycles
+= crisv32f_model_crisv32_u_exec_movem (current_cpu
, idesc
, 3, referenced
, in_Rs
, out_Rd
);
1741 model_crisv32_add_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
1743 #define FLD(f) abuf->fields.sfmt_addc_m.f
1744 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1745 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1749 int UNUSED insn_referenced
= abuf
->written
;
1753 in_Rd
= FLD (in_Rd
);
1754 in_Rs
= FLD (in_Rs
);
1755 referenced
|= 1 << 0;
1756 referenced
|= 1 << 1;
1757 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1764 model_crisv32_add_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
1766 #define FLD(f) abuf->fields.sfmt_addc_m.f
1767 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1768 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1772 int UNUSED insn_referenced
= abuf
->written
;
1776 in_Rd
= FLD (in_Rd
);
1777 in_Rs
= FLD (in_Rs
);
1778 referenced
|= 1 << 0;
1779 referenced
|= 1 << 1;
1780 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1787 model_crisv32_add_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
1789 #define FLD(f) abuf->fields.sfmt_addc_m.f
1790 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1791 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1795 int UNUSED insn_referenced
= abuf
->written
;
1799 in_Rd
= FLD (in_Rd
);
1800 in_Rs
= FLD (in_Rs
);
1801 referenced
|= 1 << 0;
1802 referenced
|= 1 << 1;
1803 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1810 model_crisv32_add_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1812 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1813 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1814 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1818 int UNUSED insn_referenced
= abuf
->written
;
1820 in_Rs
= FLD (in_Rs
);
1821 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1822 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1826 int UNUSED insn_referenced
= abuf
->written
;
1827 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1831 int UNUSED insn_referenced
= abuf
->written
;
1835 in_Rd
= FLD (in_Rd
);
1836 in_Rs
= FLD (in_Rs
);
1837 referenced
|= 1 << 0;
1838 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
1839 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1846 model_crisv32_add_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1848 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1849 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1850 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1854 int UNUSED insn_referenced
= abuf
->written
;
1856 in_Rs
= FLD (in_Rs
);
1857 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1858 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1862 int UNUSED insn_referenced
= abuf
->written
;
1863 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1867 int UNUSED insn_referenced
= abuf
->written
;
1871 in_Rd
= FLD (in_Rd
);
1872 in_Rs
= FLD (in_Rs
);
1873 referenced
|= 1 << 0;
1874 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
1875 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1882 model_crisv32_add_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1884 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1885 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1886 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1890 int UNUSED insn_referenced
= abuf
->written
;
1892 in_Rs
= FLD (in_Rs
);
1893 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1894 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1898 int UNUSED insn_referenced
= abuf
->written
;
1899 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1903 int UNUSED insn_referenced
= abuf
->written
;
1907 in_Rd
= FLD (in_Rd
);
1908 in_Rs
= FLD (in_Rs
);
1909 referenced
|= 1 << 0;
1910 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
1911 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1918 model_crisv32_addcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
1920 #define FLD(f) abuf->fields.sfmt_addcbr.f
1921 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1922 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1926 int UNUSED insn_referenced
= abuf
->written
;
1927 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
1931 int UNUSED insn_referenced
= abuf
->written
;
1935 in_Rd
= FLD (in_Rd
);
1936 referenced
|= 1 << 0;
1937 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
1944 model_crisv32_addcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
1946 #define FLD(f) abuf->fields.sfmt_addcwr.f
1947 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1948 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1952 int UNUSED insn_referenced
= abuf
->written
;
1953 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
1957 int UNUSED insn_referenced
= abuf
->written
;
1961 in_Rd
= FLD (in_Rd
);
1962 referenced
|= 1 << 0;
1963 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
1970 model_crisv32_addcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
1972 #define FLD(f) abuf->fields.sfmt_addcdr.f
1973 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1974 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1978 int UNUSED insn_referenced
= abuf
->written
;
1979 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1983 int UNUSED insn_referenced
= abuf
->written
;
1987 in_Rd
= FLD (in_Rd
);
1988 referenced
|= 1 << 0;
1989 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
1996 model_crisv32_adds_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
1998 #define FLD(f) abuf->fields.sfmt_addc_m.f
1999 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2000 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2004 int UNUSED insn_referenced
= abuf
->written
;
2008 in_Rd
= FLD (in_Rd
);
2009 in_Rs
= FLD (in_Rs
);
2010 referenced
|= 1 << 0;
2011 referenced
|= 1 << 1;
2012 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2019 model_crisv32_adds_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2021 #define FLD(f) abuf->fields.sfmt_addc_m.f
2022 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2023 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2027 int UNUSED insn_referenced
= abuf
->written
;
2031 in_Rd
= FLD (in_Rd
);
2032 in_Rs
= FLD (in_Rs
);
2033 referenced
|= 1 << 0;
2034 referenced
|= 1 << 1;
2035 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2042 model_crisv32_adds_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2044 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2045 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2046 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2050 int UNUSED insn_referenced
= abuf
->written
;
2052 in_Rs
= FLD (in_Rs
);
2053 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2054 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2058 int UNUSED insn_referenced
= abuf
->written
;
2059 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2063 int UNUSED insn_referenced
= abuf
->written
;
2067 in_Rd
= FLD (in_Rd
);
2068 in_Rs
= FLD (in_Rs
);
2069 referenced
|= 1 << 0;
2070 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2071 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2078 model_crisv32_adds_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2080 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2081 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2082 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2086 int UNUSED insn_referenced
= abuf
->written
;
2088 in_Rs
= FLD (in_Rs
);
2089 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2090 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2094 int UNUSED insn_referenced
= abuf
->written
;
2095 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2099 int UNUSED insn_referenced
= abuf
->written
;
2103 in_Rd
= FLD (in_Rd
);
2104 in_Rs
= FLD (in_Rs
);
2105 referenced
|= 1 << 0;
2106 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2107 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2114 model_crisv32_addscbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2116 #define FLD(f) abuf->fields.sfmt_addcbr.f
2117 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2118 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2122 int UNUSED insn_referenced
= abuf
->written
;
2123 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2127 int UNUSED insn_referenced
= abuf
->written
;
2131 in_Rd
= FLD (in_Rd
);
2132 referenced
|= 1 << 0;
2133 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2140 model_crisv32_addscwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2142 #define FLD(f) abuf->fields.sfmt_addcwr.f
2143 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2144 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2148 int UNUSED insn_referenced
= abuf
->written
;
2149 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2153 int UNUSED insn_referenced
= abuf
->written
;
2157 in_Rd
= FLD (in_Rd
);
2158 referenced
|= 1 << 0;
2159 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2166 model_crisv32_addu_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2168 #define FLD(f) abuf->fields.sfmt_addc_m.f
2169 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2170 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2174 int UNUSED insn_referenced
= abuf
->written
;
2178 in_Rd
= FLD (in_Rd
);
2179 in_Rs
= FLD (in_Rs
);
2180 referenced
|= 1 << 0;
2181 referenced
|= 1 << 1;
2182 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2189 model_crisv32_addu_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2191 #define FLD(f) abuf->fields.sfmt_addc_m.f
2192 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2193 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2197 int UNUSED insn_referenced
= abuf
->written
;
2201 in_Rd
= FLD (in_Rd
);
2202 in_Rs
= FLD (in_Rs
);
2203 referenced
|= 1 << 0;
2204 referenced
|= 1 << 1;
2205 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2212 model_crisv32_addu_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2214 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2215 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2216 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2220 int UNUSED insn_referenced
= abuf
->written
;
2222 in_Rs
= FLD (in_Rs
);
2223 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2224 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2228 int UNUSED insn_referenced
= abuf
->written
;
2229 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2233 int UNUSED insn_referenced
= abuf
->written
;
2237 in_Rd
= FLD (in_Rd
);
2238 in_Rs
= FLD (in_Rs
);
2239 referenced
|= 1 << 0;
2240 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2241 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2248 model_crisv32_addu_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2250 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2251 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2252 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2256 int UNUSED insn_referenced
= abuf
->written
;
2258 in_Rs
= FLD (in_Rs
);
2259 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2260 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2264 int UNUSED insn_referenced
= abuf
->written
;
2265 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2269 int UNUSED insn_referenced
= abuf
->written
;
2273 in_Rd
= FLD (in_Rd
);
2274 in_Rs
= FLD (in_Rs
);
2275 referenced
|= 1 << 0;
2276 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2277 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2284 model_crisv32_adducbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2286 #define FLD(f) abuf->fields.sfmt_addcbr.f
2287 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2288 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2292 int UNUSED insn_referenced
= abuf
->written
;
2293 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2297 int UNUSED insn_referenced
= abuf
->written
;
2301 in_Rd
= FLD (in_Rd
);
2302 referenced
|= 1 << 0;
2303 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2310 model_crisv32_adducwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2312 #define FLD(f) abuf->fields.sfmt_addcwr.f
2313 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2314 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2318 int UNUSED insn_referenced
= abuf
->written
;
2319 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2323 int UNUSED insn_referenced
= abuf
->written
;
2327 in_Rd
= FLD (in_Rd
);
2328 referenced
|= 1 << 0;
2329 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2336 model_crisv32_sub_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2338 #define FLD(f) abuf->fields.sfmt_addc_m.f
2339 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2340 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2344 int UNUSED insn_referenced
= abuf
->written
;
2348 in_Rd
= FLD (in_Rd
);
2349 in_Rs
= FLD (in_Rs
);
2350 referenced
|= 1 << 0;
2351 referenced
|= 1 << 1;
2352 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2359 model_crisv32_sub_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2361 #define FLD(f) abuf->fields.sfmt_addc_m.f
2362 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2363 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2367 int UNUSED insn_referenced
= abuf
->written
;
2371 in_Rd
= FLD (in_Rd
);
2372 in_Rs
= FLD (in_Rs
);
2373 referenced
|= 1 << 0;
2374 referenced
|= 1 << 1;
2375 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2382 model_crisv32_sub_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2384 #define FLD(f) abuf->fields.sfmt_addc_m.f
2385 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2386 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2390 int UNUSED insn_referenced
= abuf
->written
;
2394 in_Rd
= FLD (in_Rd
);
2395 in_Rs
= FLD (in_Rs
);
2396 referenced
|= 1 << 0;
2397 referenced
|= 1 << 1;
2398 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2405 model_crisv32_sub_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2407 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2408 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2409 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2413 int UNUSED insn_referenced
= abuf
->written
;
2415 in_Rs
= FLD (in_Rs
);
2416 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2417 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2421 int UNUSED insn_referenced
= abuf
->written
;
2422 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2426 int UNUSED insn_referenced
= abuf
->written
;
2430 in_Rd
= FLD (in_Rd
);
2431 in_Rs
= FLD (in_Rs
);
2432 referenced
|= 1 << 0;
2433 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2434 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2441 model_crisv32_sub_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2443 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2444 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2445 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2449 int UNUSED insn_referenced
= abuf
->written
;
2451 in_Rs
= FLD (in_Rs
);
2452 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2453 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2457 int UNUSED insn_referenced
= abuf
->written
;
2458 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2462 int UNUSED insn_referenced
= abuf
->written
;
2466 in_Rd
= FLD (in_Rd
);
2467 in_Rs
= FLD (in_Rs
);
2468 referenced
|= 1 << 0;
2469 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2470 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2477 model_crisv32_sub_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2479 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2480 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2481 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2485 int UNUSED insn_referenced
= abuf
->written
;
2487 in_Rs
= FLD (in_Rs
);
2488 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2489 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2493 int UNUSED insn_referenced
= abuf
->written
;
2494 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2498 int UNUSED insn_referenced
= abuf
->written
;
2502 in_Rd
= FLD (in_Rd
);
2503 in_Rs
= FLD (in_Rs
);
2504 referenced
|= 1 << 0;
2505 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2506 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2513 model_crisv32_subcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2515 #define FLD(f) abuf->fields.sfmt_addcbr.f
2516 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2517 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2521 int UNUSED insn_referenced
= abuf
->written
;
2522 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2526 int UNUSED insn_referenced
= abuf
->written
;
2530 in_Rd
= FLD (in_Rd
);
2531 referenced
|= 1 << 0;
2532 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2539 model_crisv32_subcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2541 #define FLD(f) abuf->fields.sfmt_addcwr.f
2542 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2543 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2547 int UNUSED insn_referenced
= abuf
->written
;
2548 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2552 int UNUSED insn_referenced
= abuf
->written
;
2556 in_Rd
= FLD (in_Rd
);
2557 referenced
|= 1 << 0;
2558 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2565 model_crisv32_subcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
2567 #define FLD(f) abuf->fields.sfmt_addcdr.f
2568 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2569 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2573 int UNUSED insn_referenced
= abuf
->written
;
2574 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
2578 int UNUSED insn_referenced
= abuf
->written
;
2582 in_Rd
= FLD (in_Rd
);
2583 referenced
|= 1 << 0;
2584 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2591 model_crisv32_subs_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2593 #define FLD(f) abuf->fields.sfmt_addc_m.f
2594 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2595 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2599 int UNUSED insn_referenced
= abuf
->written
;
2603 in_Rd
= FLD (in_Rd
);
2604 in_Rs
= FLD (in_Rs
);
2605 referenced
|= 1 << 0;
2606 referenced
|= 1 << 1;
2607 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2614 model_crisv32_subs_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2616 #define FLD(f) abuf->fields.sfmt_addc_m.f
2617 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2618 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2622 int UNUSED insn_referenced
= abuf
->written
;
2626 in_Rd
= FLD (in_Rd
);
2627 in_Rs
= FLD (in_Rs
);
2628 referenced
|= 1 << 0;
2629 referenced
|= 1 << 1;
2630 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2637 model_crisv32_subs_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2639 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2640 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2641 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2645 int UNUSED insn_referenced
= abuf
->written
;
2647 in_Rs
= FLD (in_Rs
);
2648 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2649 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2653 int UNUSED insn_referenced
= abuf
->written
;
2654 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2658 int UNUSED insn_referenced
= abuf
->written
;
2662 in_Rd
= FLD (in_Rd
);
2663 in_Rs
= FLD (in_Rs
);
2664 referenced
|= 1 << 0;
2665 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2666 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2673 model_crisv32_subs_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2675 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2676 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2677 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2681 int UNUSED insn_referenced
= abuf
->written
;
2683 in_Rs
= FLD (in_Rs
);
2684 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2685 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2689 int UNUSED insn_referenced
= abuf
->written
;
2690 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2694 int UNUSED insn_referenced
= abuf
->written
;
2698 in_Rd
= FLD (in_Rd
);
2699 in_Rs
= FLD (in_Rs
);
2700 referenced
|= 1 << 0;
2701 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2702 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2709 model_crisv32_subscbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2711 #define FLD(f) abuf->fields.sfmt_addcbr.f
2712 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2713 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2717 int UNUSED insn_referenced
= abuf
->written
;
2718 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2722 int UNUSED insn_referenced
= abuf
->written
;
2726 in_Rd
= FLD (in_Rd
);
2727 referenced
|= 1 << 0;
2728 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2735 model_crisv32_subscwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2737 #define FLD(f) abuf->fields.sfmt_addcwr.f
2738 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2739 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2743 int UNUSED insn_referenced
= abuf
->written
;
2744 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2748 int UNUSED insn_referenced
= abuf
->written
;
2752 in_Rd
= FLD (in_Rd
);
2753 referenced
|= 1 << 0;
2754 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2761 model_crisv32_subu_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2763 #define FLD(f) abuf->fields.sfmt_addc_m.f
2764 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2765 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2769 int UNUSED insn_referenced
= abuf
->written
;
2773 in_Rd
= FLD (in_Rd
);
2774 in_Rs
= FLD (in_Rs
);
2775 referenced
|= 1 << 0;
2776 referenced
|= 1 << 1;
2777 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2784 model_crisv32_subu_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2786 #define FLD(f) abuf->fields.sfmt_addc_m.f
2787 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2788 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2792 int UNUSED insn_referenced
= abuf
->written
;
2796 in_Rd
= FLD (in_Rd
);
2797 in_Rs
= FLD (in_Rs
);
2798 referenced
|= 1 << 0;
2799 referenced
|= 1 << 1;
2800 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2807 model_crisv32_subu_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2809 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2810 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2811 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2815 int UNUSED insn_referenced
= abuf
->written
;
2817 in_Rs
= FLD (in_Rs
);
2818 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2819 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2823 int UNUSED insn_referenced
= abuf
->written
;
2824 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2828 int UNUSED insn_referenced
= abuf
->written
;
2832 in_Rd
= FLD (in_Rd
);
2833 in_Rs
= FLD (in_Rs
);
2834 referenced
|= 1 << 0;
2835 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2836 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2843 model_crisv32_subu_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2845 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2846 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2847 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2851 int UNUSED insn_referenced
= abuf
->written
;
2853 in_Rs
= FLD (in_Rs
);
2854 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2855 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2859 int UNUSED insn_referenced
= abuf
->written
;
2860 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2864 int UNUSED insn_referenced
= abuf
->written
;
2868 in_Rd
= FLD (in_Rd
);
2869 in_Rs
= FLD (in_Rs
);
2870 referenced
|= 1 << 0;
2871 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2872 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2879 model_crisv32_subucbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2881 #define FLD(f) abuf->fields.sfmt_addcbr.f
2882 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2883 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2887 int UNUSED insn_referenced
= abuf
->written
;
2888 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2892 int UNUSED insn_referenced
= abuf
->written
;
2896 in_Rd
= FLD (in_Rd
);
2897 referenced
|= 1 << 0;
2898 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2905 model_crisv32_subucwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2907 #define FLD(f) abuf->fields.sfmt_addcwr.f
2908 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2909 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2913 int UNUSED insn_referenced
= abuf
->written
;
2914 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2918 int UNUSED insn_referenced
= abuf
->written
;
2922 in_Rd
= FLD (in_Rd
);
2923 referenced
|= 1 << 0;
2924 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2931 model_crisv32_addc_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2933 #define FLD(f) abuf->fields.sfmt_addc_m.f
2934 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2935 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2939 int UNUSED insn_referenced
= abuf
->written
;
2943 in_Rd
= FLD (in_Rd
);
2944 in_Rs
= FLD (in_Rs
);
2945 referenced
|= 1 << 0;
2946 referenced
|= 1 << 1;
2947 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2954 model_crisv32_addc_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2956 #define FLD(f) abuf->fields.sfmt_addc_m.f
2957 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2958 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2962 int UNUSED insn_referenced
= abuf
->written
;
2964 in_Rs
= FLD (in_Rs
);
2965 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2966 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2970 int UNUSED insn_referenced
= abuf
->written
;
2971 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2975 int UNUSED insn_referenced
= abuf
->written
;
2979 in_Rd
= FLD (in_Rd
);
2980 in_Rs
= FLD (in_Rs
);
2981 referenced
|= 1 << 0;
2982 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2983 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2990 model_crisv32_addc_c (SIM_CPU
*current_cpu
, void *sem_arg
)
2992 #define FLD(f) abuf->fields.sfmt_addcdr.f
2993 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2994 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2998 int UNUSED insn_referenced
= abuf
->written
;
2999 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
3003 int UNUSED insn_referenced
= abuf
->written
;
3007 in_Rd
= FLD (in_Rd
);
3008 referenced
|= 1 << 0;
3009 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3016 model_crisv32_lapc_d (SIM_CPU
*current_cpu
, void *sem_arg
)
3018 #define FLD(f) abuf->fields.sfmt_lapc_d.f
3019 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3020 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3024 int UNUSED insn_referenced
= abuf
->written
;
3025 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
3029 int UNUSED insn_referenced
= abuf
->written
;
3033 out_Rd
= FLD (out_Rd
);
3034 referenced
|= 1 << 2;
3035 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3042 model_crisv32_lapcq (SIM_CPU
*current_cpu
, void *sem_arg
)
3044 #define FLD(f) abuf->fields.sfmt_lapcq.f
3045 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3046 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3050 int UNUSED insn_referenced
= abuf
->written
;
3054 out_Rd
= FLD (out_Rd
);
3055 referenced
|= 1 << 2;
3056 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3063 model_crisv32_addi_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3065 #define FLD(f) abuf->fields.sfmt_addc_m.f
3066 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3067 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3071 int UNUSED insn_referenced
= abuf
->written
;
3075 in_Rd
= FLD (in_Rd
);
3076 in_Rs
= FLD (in_Rs
);
3077 referenced
|= 1 << 0;
3078 referenced
|= 1 << 1;
3079 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3086 model_crisv32_addi_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3088 #define FLD(f) abuf->fields.sfmt_addc_m.f
3089 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3090 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3094 int UNUSED insn_referenced
= abuf
->written
;
3098 in_Rd
= FLD (in_Rd
);
3099 in_Rs
= FLD (in_Rs
);
3100 referenced
|= 1 << 0;
3101 referenced
|= 1 << 1;
3102 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3109 model_crisv32_addi_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3111 #define FLD(f) abuf->fields.sfmt_addc_m.f
3112 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3113 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3117 int UNUSED insn_referenced
= abuf
->written
;
3121 in_Rd
= FLD (in_Rd
);
3122 in_Rs
= FLD (in_Rs
);
3123 referenced
|= 1 << 0;
3124 referenced
|= 1 << 1;
3125 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3132 model_crisv32_neg_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3134 #define FLD(f) abuf->fields.sfmt_addc_m.f
3135 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3136 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3140 int UNUSED insn_referenced
= abuf
->written
;
3144 in_Rs
= FLD (in_Rs
);
3145 referenced
|= 1 << 1;
3146 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3153 model_crisv32_neg_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3155 #define FLD(f) abuf->fields.sfmt_addc_m.f
3156 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3157 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3161 int UNUSED insn_referenced
= abuf
->written
;
3165 in_Rs
= FLD (in_Rs
);
3166 referenced
|= 1 << 1;
3167 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3174 model_crisv32_neg_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3176 #define FLD(f) abuf->fields.sfmt_addc_m.f
3177 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3178 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3182 int UNUSED insn_referenced
= abuf
->written
;
3186 in_Rs
= FLD (in_Rs
);
3187 referenced
|= 1 << 1;
3188 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3195 model_crisv32_test_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3197 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3198 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3199 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3203 int UNUSED insn_referenced
= abuf
->written
;
3205 in_Rs
= FLD (in_Rs
);
3206 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
3207 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3211 int UNUSED insn_referenced
= abuf
->written
;
3212 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3216 int UNUSED insn_referenced
= abuf
->written
;
3220 in_Rs
= FLD (in_Rs
);
3221 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
3222 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3229 model_crisv32_test_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3231 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3232 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3233 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3237 int UNUSED insn_referenced
= abuf
->written
;
3239 in_Rs
= FLD (in_Rs
);
3240 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
3241 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3245 int UNUSED insn_referenced
= abuf
->written
;
3246 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3250 int UNUSED insn_referenced
= abuf
->written
;
3254 in_Rs
= FLD (in_Rs
);
3255 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
3256 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3263 model_crisv32_test_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3265 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3266 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3267 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3271 int UNUSED insn_referenced
= abuf
->written
;
3273 in_Rs
= FLD (in_Rs
);
3274 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
3275 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3279 int UNUSED insn_referenced
= abuf
->written
;
3280 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3284 int UNUSED insn_referenced
= abuf
->written
;
3288 in_Rs
= FLD (in_Rs
);
3289 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
3290 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3297 model_crisv32_move_r_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3299 #define FLD(f) abuf->fields.sfmt_addc_m.f
3300 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3301 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3305 int UNUSED insn_referenced
= abuf
->written
;
3307 in_Rs
= FLD (in_Rs
);
3308 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3309 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3313 int UNUSED insn_referenced
= abuf
->written
;
3317 in_Rd
= FLD (in_Rd
);
3318 in_Rs
= FLD (in_Rs
);
3319 referenced
|= 1 << 0;
3320 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3321 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3325 int UNUSED insn_referenced
= abuf
->written
;
3326 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 2, referenced
);
3333 model_crisv32_move_r_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3335 #define FLD(f) abuf->fields.sfmt_addc_m.f
3336 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3337 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3341 int UNUSED insn_referenced
= abuf
->written
;
3343 in_Rs
= FLD (in_Rs
);
3344 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3345 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3349 int UNUSED insn_referenced
= abuf
->written
;
3353 in_Rd
= FLD (in_Rd
);
3354 in_Rs
= FLD (in_Rs
);
3355 referenced
|= 1 << 0;
3356 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3357 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3361 int UNUSED insn_referenced
= abuf
->written
;
3362 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 2, referenced
);
3369 model_crisv32_move_r_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3371 #define FLD(f) abuf->fields.sfmt_addc_m.f
3372 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3373 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3377 int UNUSED insn_referenced
= abuf
->written
;
3379 in_Rs
= FLD (in_Rs
);
3380 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3381 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3385 int UNUSED insn_referenced
= abuf
->written
;
3389 in_Rd
= FLD (in_Rd
);
3390 in_Rs
= FLD (in_Rs
);
3391 referenced
|= 1 << 0;
3392 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3393 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3397 int UNUSED insn_referenced
= abuf
->written
;
3398 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 2, referenced
);
3405 model_crisv32_muls_b (SIM_CPU
*current_cpu
, void *sem_arg
)
3407 #define FLD(f) abuf->fields.sfmt_muls_b.f
3408 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3409 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3413 int UNUSED insn_referenced
= abuf
->written
;
3416 in_Rs
= FLD (in_Rs
);
3417 in_Rd
= FLD (in_Rd
);
3418 referenced
|= 1 << 0;
3419 referenced
|= 1 << 1;
3420 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3424 int UNUSED insn_referenced
= abuf
->written
;
3428 in_Rd
= FLD (in_Rd
);
3429 in_Rs
= FLD (in_Rs
);
3430 out_Rd
= FLD (out_Rd
);
3431 referenced
|= 1 << 0;
3432 referenced
|= 1 << 1;
3433 referenced
|= 1 << 2;
3434 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3441 model_crisv32_muls_w (SIM_CPU
*current_cpu
, void *sem_arg
)
3443 #define FLD(f) abuf->fields.sfmt_muls_b.f
3444 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3445 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3449 int UNUSED insn_referenced
= abuf
->written
;
3452 in_Rs
= FLD (in_Rs
);
3453 in_Rd
= FLD (in_Rd
);
3454 referenced
|= 1 << 0;
3455 referenced
|= 1 << 1;
3456 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3460 int UNUSED insn_referenced
= abuf
->written
;
3464 in_Rd
= FLD (in_Rd
);
3465 in_Rs
= FLD (in_Rs
);
3466 out_Rd
= FLD (out_Rd
);
3467 referenced
|= 1 << 0;
3468 referenced
|= 1 << 1;
3469 referenced
|= 1 << 2;
3470 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3477 model_crisv32_muls_d (SIM_CPU
*current_cpu
, void *sem_arg
)
3479 #define FLD(f) abuf->fields.sfmt_muls_b.f
3480 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3481 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3485 int UNUSED insn_referenced
= abuf
->written
;
3488 in_Rs
= FLD (in_Rs
);
3489 in_Rd
= FLD (in_Rd
);
3490 referenced
|= 1 << 0;
3491 referenced
|= 1 << 1;
3492 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3496 int UNUSED insn_referenced
= abuf
->written
;
3500 in_Rd
= FLD (in_Rd
);
3501 in_Rs
= FLD (in_Rs
);
3502 out_Rd
= FLD (out_Rd
);
3503 referenced
|= 1 << 0;
3504 referenced
|= 1 << 1;
3505 referenced
|= 1 << 2;
3506 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3513 model_crisv32_mulu_b (SIM_CPU
*current_cpu
, void *sem_arg
)
3515 #define FLD(f) abuf->fields.sfmt_muls_b.f
3516 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3517 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3521 int UNUSED insn_referenced
= abuf
->written
;
3524 in_Rs
= FLD (in_Rs
);
3525 in_Rd
= FLD (in_Rd
);
3526 referenced
|= 1 << 0;
3527 referenced
|= 1 << 1;
3528 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3532 int UNUSED insn_referenced
= abuf
->written
;
3536 in_Rd
= FLD (in_Rd
);
3537 in_Rs
= FLD (in_Rs
);
3538 out_Rd
= FLD (out_Rd
);
3539 referenced
|= 1 << 0;
3540 referenced
|= 1 << 1;
3541 referenced
|= 1 << 2;
3542 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3549 model_crisv32_mulu_w (SIM_CPU
*current_cpu
, void *sem_arg
)
3551 #define FLD(f) abuf->fields.sfmt_muls_b.f
3552 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3553 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3557 int UNUSED insn_referenced
= abuf
->written
;
3560 in_Rs
= FLD (in_Rs
);
3561 in_Rd
= FLD (in_Rd
);
3562 referenced
|= 1 << 0;
3563 referenced
|= 1 << 1;
3564 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3568 int UNUSED insn_referenced
= abuf
->written
;
3572 in_Rd
= FLD (in_Rd
);
3573 in_Rs
= FLD (in_Rs
);
3574 out_Rd
= FLD (out_Rd
);
3575 referenced
|= 1 << 0;
3576 referenced
|= 1 << 1;
3577 referenced
|= 1 << 2;
3578 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3585 model_crisv32_mulu_d (SIM_CPU
*current_cpu
, void *sem_arg
)
3587 #define FLD(f) abuf->fields.sfmt_muls_b.f
3588 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3589 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3593 int UNUSED insn_referenced
= abuf
->written
;
3596 in_Rs
= FLD (in_Rs
);
3597 in_Rd
= FLD (in_Rd
);
3598 referenced
|= 1 << 0;
3599 referenced
|= 1 << 1;
3600 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3604 int UNUSED insn_referenced
= abuf
->written
;
3608 in_Rd
= FLD (in_Rd
);
3609 in_Rs
= FLD (in_Rs
);
3610 out_Rd
= FLD (out_Rd
);
3611 referenced
|= 1 << 0;
3612 referenced
|= 1 << 1;
3613 referenced
|= 1 << 2;
3614 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3621 model_crisv32_mcp (SIM_CPU
*current_cpu
, void *sem_arg
)
3623 #define FLD(f) abuf->fields.sfmt_mcp.f
3624 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3625 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3629 int UNUSED insn_referenced
= abuf
->written
;
3633 in_Rs
= FLD (in_Rs
);
3634 referenced
|= 1 << 1;
3635 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3642 model_crisv32_dstep (SIM_CPU
*current_cpu
, void *sem_arg
)
3644 #define FLD(f) abuf->fields.sfmt_muls_b.f
3645 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3646 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3650 int UNUSED insn_referenced
= abuf
->written
;
3654 in_Rd
= FLD (in_Rd
);
3655 in_Rs
= FLD (in_Rs
);
3656 out_Rd
= FLD (out_Rd
);
3657 referenced
|= 1 << 0;
3658 referenced
|= 1 << 1;
3659 referenced
|= 1 << 2;
3660 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3667 model_crisv32_abs (SIM_CPU
*current_cpu
, void *sem_arg
)
3669 #define FLD(f) abuf->fields.sfmt_muls_b.f
3670 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3671 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3675 int UNUSED insn_referenced
= abuf
->written
;
3679 in_Rs
= FLD (in_Rs
);
3680 out_Rd
= FLD (out_Rd
);
3681 referenced
|= 1 << 1;
3682 referenced
|= 1 << 2;
3683 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3690 model_crisv32_and_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3692 #define FLD(f) abuf->fields.sfmt_addc_m.f
3693 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3694 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3698 int UNUSED insn_referenced
= abuf
->written
;
3702 in_Rd
= FLD (in_Rd
);
3703 in_Rs
= FLD (in_Rs
);
3704 referenced
|= 1 << 0;
3705 referenced
|= 1 << 1;
3706 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3713 model_crisv32_and_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3715 #define FLD(f) abuf->fields.sfmt_addc_m.f
3716 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3717 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3721 int UNUSED insn_referenced
= abuf
->written
;
3725 in_Rd
= FLD (in_Rd
);
3726 in_Rs
= FLD (in_Rs
);
3727 referenced
|= 1 << 0;
3728 referenced
|= 1 << 1;
3729 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3736 model_crisv32_and_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3738 #define FLD(f) abuf->fields.sfmt_addc_m.f
3739 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3740 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3744 int UNUSED insn_referenced
= abuf
->written
;
3748 in_Rd
= FLD (in_Rd
);
3749 in_Rs
= FLD (in_Rs
);
3750 referenced
|= 1 << 0;
3751 referenced
|= 1 << 1;
3752 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3759 model_crisv32_and_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3761 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3762 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3763 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3767 int UNUSED insn_referenced
= abuf
->written
;
3769 in_Rs
= FLD (in_Rs
);
3770 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3771 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3775 int UNUSED insn_referenced
= abuf
->written
;
3776 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3780 int UNUSED insn_referenced
= abuf
->written
;
3784 in_Rd
= FLD (in_Rd
);
3785 in_Rs
= FLD (in_Rs
);
3786 referenced
|= 1 << 0;
3787 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3788 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3795 model_crisv32_and_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3797 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3798 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3799 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3803 int UNUSED insn_referenced
= abuf
->written
;
3805 in_Rs
= FLD (in_Rs
);
3806 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3807 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3811 int UNUSED insn_referenced
= abuf
->written
;
3812 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3816 int UNUSED insn_referenced
= abuf
->written
;
3820 in_Rd
= FLD (in_Rd
);
3821 in_Rs
= FLD (in_Rs
);
3822 referenced
|= 1 << 0;
3823 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3824 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3831 model_crisv32_and_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3833 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3834 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3835 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3839 int UNUSED insn_referenced
= abuf
->written
;
3841 in_Rs
= FLD (in_Rs
);
3842 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3843 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3847 int UNUSED insn_referenced
= abuf
->written
;
3848 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3852 int UNUSED insn_referenced
= abuf
->written
;
3856 in_Rd
= FLD (in_Rd
);
3857 in_Rs
= FLD (in_Rs
);
3858 referenced
|= 1 << 0;
3859 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3860 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3867 model_crisv32_andcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
3869 #define FLD(f) abuf->fields.sfmt_addcbr.f
3870 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3871 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3875 int UNUSED insn_referenced
= abuf
->written
;
3876 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
3880 int UNUSED insn_referenced
= abuf
->written
;
3884 in_Rd
= FLD (in_Rd
);
3885 referenced
|= 1 << 0;
3886 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3893 model_crisv32_andcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
3895 #define FLD(f) abuf->fields.sfmt_addcwr.f
3896 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3897 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3901 int UNUSED insn_referenced
= abuf
->written
;
3902 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
3906 int UNUSED insn_referenced
= abuf
->written
;
3910 in_Rd
= FLD (in_Rd
);
3911 referenced
|= 1 << 0;
3912 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3919 model_crisv32_andcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
3921 #define FLD(f) abuf->fields.sfmt_addcdr.f
3922 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3923 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3927 int UNUSED insn_referenced
= abuf
->written
;
3928 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
3932 int UNUSED insn_referenced
= abuf
->written
;
3936 in_Rd
= FLD (in_Rd
);
3937 referenced
|= 1 << 0;
3938 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3945 model_crisv32_andq (SIM_CPU
*current_cpu
, void *sem_arg
)
3947 #define FLD(f) abuf->fields.sfmt_andq.f
3948 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3949 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3953 int UNUSED insn_referenced
= abuf
->written
;
3957 in_Rd
= FLD (in_Rd
);
3958 referenced
|= 1 << 0;
3959 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3966 model_crisv32_orr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3968 #define FLD(f) abuf->fields.sfmt_addc_m.f
3969 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3970 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3974 int UNUSED insn_referenced
= abuf
->written
;
3978 in_Rd
= FLD (in_Rd
);
3979 in_Rs
= FLD (in_Rs
);
3980 referenced
|= 1 << 0;
3981 referenced
|= 1 << 1;
3982 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3989 model_crisv32_orr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3991 #define FLD(f) abuf->fields.sfmt_addc_m.f
3992 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3993 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3997 int UNUSED insn_referenced
= abuf
->written
;
4001 in_Rd
= FLD (in_Rd
);
4002 in_Rs
= FLD (in_Rs
);
4003 referenced
|= 1 << 0;
4004 referenced
|= 1 << 1;
4005 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4012 model_crisv32_orr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4014 #define FLD(f) abuf->fields.sfmt_addc_m.f
4015 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4016 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4020 int UNUSED insn_referenced
= abuf
->written
;
4024 in_Rd
= FLD (in_Rd
);
4025 in_Rs
= FLD (in_Rs
);
4026 referenced
|= 1 << 0;
4027 referenced
|= 1 << 1;
4028 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4035 model_crisv32_or_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
4037 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4038 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4039 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4043 int UNUSED insn_referenced
= abuf
->written
;
4045 in_Rs
= FLD (in_Rs
);
4046 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
4047 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
4051 int UNUSED insn_referenced
= abuf
->written
;
4052 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
4056 int UNUSED insn_referenced
= abuf
->written
;
4060 in_Rd
= FLD (in_Rd
);
4061 in_Rs
= FLD (in_Rs
);
4062 referenced
|= 1 << 0;
4063 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
4064 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4071 model_crisv32_or_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
4073 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4074 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4075 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4079 int UNUSED insn_referenced
= abuf
->written
;
4081 in_Rs
= FLD (in_Rs
);
4082 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
4083 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
4087 int UNUSED insn_referenced
= abuf
->written
;
4088 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
4092 int UNUSED insn_referenced
= abuf
->written
;
4096 in_Rd
= FLD (in_Rd
);
4097 in_Rs
= FLD (in_Rs
);
4098 referenced
|= 1 << 0;
4099 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
4100 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4107 model_crisv32_or_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
4109 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4110 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4111 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4115 int UNUSED insn_referenced
= abuf
->written
;
4117 in_Rs
= FLD (in_Rs
);
4118 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
4119 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
4123 int UNUSED insn_referenced
= abuf
->written
;
4124 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
4128 int UNUSED insn_referenced
= abuf
->written
;
4132 in_Rd
= FLD (in_Rd
);
4133 in_Rs
= FLD (in_Rs
);
4134 referenced
|= 1 << 0;
4135 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
4136 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4143 model_crisv32_orcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
4145 #define FLD(f) abuf->fields.sfmt_addcbr.f
4146 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4147 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4151 int UNUSED insn_referenced
= abuf
->written
;
4152 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
4156 int UNUSED insn_referenced
= abuf
->written
;
4160 in_Rd
= FLD (in_Rd
);
4161 referenced
|= 1 << 0;
4162 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4169 model_crisv32_orcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
4171 #define FLD(f) abuf->fields.sfmt_addcwr.f
4172 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4173 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4177 int UNUSED insn_referenced
= abuf
->written
;
4178 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
4182 int UNUSED insn_referenced
= abuf
->written
;
4186 in_Rd
= FLD (in_Rd
);
4187 referenced
|= 1 << 0;
4188 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4195 model_crisv32_orcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
4197 #define FLD(f) abuf->fields.sfmt_addcdr.f
4198 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4199 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4203 int UNUSED insn_referenced
= abuf
->written
;
4204 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
4208 int UNUSED insn_referenced
= abuf
->written
;
4212 in_Rd
= FLD (in_Rd
);
4213 referenced
|= 1 << 0;
4214 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4221 model_crisv32_orq (SIM_CPU
*current_cpu
, void *sem_arg
)
4223 #define FLD(f) abuf->fields.sfmt_andq.f
4224 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4225 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4229 int UNUSED insn_referenced
= abuf
->written
;
4233 in_Rd
= FLD (in_Rd
);
4234 referenced
|= 1 << 0;
4235 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4242 model_crisv32_xor (SIM_CPU
*current_cpu
, void *sem_arg
)
4244 #define FLD(f) abuf->fields.sfmt_muls_b.f
4245 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4246 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4250 int UNUSED insn_referenced
= abuf
->written
;
4254 in_Rd
= FLD (in_Rd
);
4255 in_Rs
= FLD (in_Rs
);
4256 out_Rd
= FLD (out_Rd
);
4257 referenced
|= 1 << 0;
4258 referenced
|= 1 << 1;
4259 referenced
|= 1 << 2;
4260 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4267 model_crisv32_swap (SIM_CPU
*current_cpu
, void *sem_arg
)
4269 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4270 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4271 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4275 int UNUSED insn_referenced
= abuf
->written
;
4279 in_Rs
= FLD (in_Rs
);
4280 referenced
|= 1 << 1;
4281 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4288 model_crisv32_asrr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4290 #define FLD(f) abuf->fields.sfmt_addc_m.f
4291 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4292 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4296 int UNUSED insn_referenced
= abuf
->written
;
4300 in_Rd
= FLD (in_Rd
);
4301 in_Rs
= FLD (in_Rs
);
4302 referenced
|= 1 << 0;
4303 referenced
|= 1 << 1;
4304 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4311 model_crisv32_asrr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4313 #define FLD(f) abuf->fields.sfmt_addc_m.f
4314 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4315 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4319 int UNUSED insn_referenced
= abuf
->written
;
4323 in_Rd
= FLD (in_Rd
);
4324 in_Rs
= FLD (in_Rs
);
4325 referenced
|= 1 << 0;
4326 referenced
|= 1 << 1;
4327 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4334 model_crisv32_asrr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4336 #define FLD(f) abuf->fields.sfmt_addc_m.f
4337 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4338 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4342 int UNUSED insn_referenced
= abuf
->written
;
4346 in_Rd
= FLD (in_Rd
);
4347 in_Rs
= FLD (in_Rs
);
4348 referenced
|= 1 << 0;
4349 referenced
|= 1 << 1;
4350 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4357 model_crisv32_asrq (SIM_CPU
*current_cpu
, void *sem_arg
)
4359 #define FLD(f) abuf->fields.sfmt_asrq.f
4360 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4361 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4365 int UNUSED insn_referenced
= abuf
->written
;
4369 in_Rd
= FLD (in_Rd
);
4370 out_Rd
= FLD (out_Rd
);
4371 referenced
|= 1 << 0;
4372 referenced
|= 1 << 2;
4373 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4380 model_crisv32_lsrr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4382 #define FLD(f) abuf->fields.sfmt_addc_m.f
4383 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4384 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4388 int UNUSED insn_referenced
= abuf
->written
;
4392 in_Rd
= FLD (in_Rd
);
4393 in_Rs
= FLD (in_Rs
);
4394 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4395 referenced
|= 1 << 1;
4396 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4403 model_crisv32_lsrr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4405 #define FLD(f) abuf->fields.sfmt_addc_m.f
4406 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4407 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4411 int UNUSED insn_referenced
= abuf
->written
;
4415 in_Rd
= FLD (in_Rd
);
4416 in_Rs
= FLD (in_Rs
);
4417 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4418 referenced
|= 1 << 1;
4419 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4426 model_crisv32_lsrr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4428 #define FLD(f) abuf->fields.sfmt_addc_m.f
4429 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4430 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4434 int UNUSED insn_referenced
= abuf
->written
;
4438 in_Rd
= FLD (in_Rd
);
4439 in_Rs
= FLD (in_Rs
);
4440 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4441 referenced
|= 1 << 1;
4442 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4449 model_crisv32_lsrq (SIM_CPU
*current_cpu
, void *sem_arg
)
4451 #define FLD(f) abuf->fields.sfmt_asrq.f
4452 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4453 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4457 int UNUSED insn_referenced
= abuf
->written
;
4461 in_Rd
= FLD (in_Rd
);
4462 out_Rd
= FLD (out_Rd
);
4463 referenced
|= 1 << 0;
4464 referenced
|= 1 << 2;
4465 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4472 model_crisv32_lslr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4474 #define FLD(f) abuf->fields.sfmt_addc_m.f
4475 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4476 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4480 int UNUSED insn_referenced
= abuf
->written
;
4484 in_Rd
= FLD (in_Rd
);
4485 in_Rs
= FLD (in_Rs
);
4486 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4487 referenced
|= 1 << 1;
4488 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4495 model_crisv32_lslr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4497 #define FLD(f) abuf->fields.sfmt_addc_m.f
4498 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4499 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4503 int UNUSED insn_referenced
= abuf
->written
;
4507 in_Rd
= FLD (in_Rd
);
4508 in_Rs
= FLD (in_Rs
);
4509 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4510 referenced
|= 1 << 1;
4511 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4518 model_crisv32_lslr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4520 #define FLD(f) abuf->fields.sfmt_addc_m.f
4521 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4522 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4526 int UNUSED insn_referenced
= abuf
->written
;
4530 in_Rd
= FLD (in_Rd
);
4531 in_Rs
= FLD (in_Rs
);
4532 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4533 referenced
|= 1 << 1;
4534 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4541 model_crisv32_lslq (SIM_CPU
*current_cpu
, void *sem_arg
)
4543 #define FLD(f) abuf->fields.sfmt_asrq.f
4544 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4545 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4549 int UNUSED insn_referenced
= abuf
->written
;
4553 in_Rd
= FLD (in_Rd
);
4554 out_Rd
= FLD (out_Rd
);
4555 referenced
|= 1 << 0;
4556 referenced
|= 1 << 2;
4557 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4564 model_crisv32_btst (SIM_CPU
*current_cpu
, void *sem_arg
)
4566 #define FLD(f) abuf->fields.sfmt_muls_b.f
4567 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4568 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4572 int UNUSED insn_referenced
= abuf
->written
;
4576 in_Rd
= FLD (in_Rd
);
4577 in_Rs
= FLD (in_Rs
);
4578 referenced
|= 1 << 0;
4579 referenced
|= 1 << 1;
4580 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4587 model_crisv32_btstq (SIM_CPU
*current_cpu
, void *sem_arg
)
4589 #define FLD(f) abuf->fields.sfmt_asrq.f
4590 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4591 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4595 int UNUSED insn_referenced
= abuf
->written
;
4599 in_Rd
= FLD (in_Rd
);
4600 referenced
|= 1 << 0;
4601 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4608 model_crisv32_setf (SIM_CPU
*current_cpu
, void *sem_arg
)
4610 #define FLD(f) abuf->fields.sfmt_setf.f
4611 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4612 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4616 int UNUSED insn_referenced
= abuf
->written
;
4620 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4627 model_crisv32_clearf (SIM_CPU
*current_cpu
, void *sem_arg
)
4629 #define FLD(f) abuf->fields.sfmt_setf.f
4630 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4631 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4635 int UNUSED insn_referenced
= abuf
->written
;
4639 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4646 model_crisv32_rfe (SIM_CPU
*current_cpu
, void *sem_arg
)
4648 #define FLD(f) abuf->fields.sfmt_rfe.f
4649 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4650 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4654 int UNUSED insn_referenced
= abuf
->written
;
4658 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4665 model_crisv32_sfe (SIM_CPU
*current_cpu
, void *sem_arg
)
4667 #define FLD(f) abuf->fields.sfmt_rfe.f
4668 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4669 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4673 int UNUSED insn_referenced
= abuf
->written
;
4677 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4684 model_crisv32_rfg (SIM_CPU
*current_cpu
, void *sem_arg
)
4686 #define FLD(f) abuf->fields.sfmt_empty.f
4687 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4688 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4692 int UNUSED insn_referenced
= abuf
->written
;
4696 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4703 model_crisv32_rfn (SIM_CPU
*current_cpu
, void *sem_arg
)
4705 #define FLD(f) abuf->fields.sfmt_rfe.f
4706 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4707 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4711 int UNUSED insn_referenced
= abuf
->written
;
4715 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4722 model_crisv32_halt (SIM_CPU
*current_cpu
, void *sem_arg
)
4724 #define FLD(f) abuf->fields.sfmt_empty.f
4725 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4726 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4730 int UNUSED insn_referenced
= abuf
->written
;
4734 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4741 model_crisv32_bcc_b (SIM_CPU
*current_cpu
, void *sem_arg
)
4743 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4744 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4745 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4749 int UNUSED insn_referenced
= abuf
->written
;
4750 cycles
+= crisv32f_model_crisv32_u_branch (current_cpu
, idesc
, 0, referenced
);
4754 int UNUSED insn_referenced
= abuf
->written
;
4758 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4765 model_crisv32_ba_b (SIM_CPU
*current_cpu
, void *sem_arg
)
4767 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4768 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4769 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4773 int UNUSED insn_referenced
= abuf
->written
;
4775 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 0, referenced
, out_Pd
);
4779 int UNUSED insn_referenced
= abuf
->written
;
4783 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4790 model_crisv32_bcc_w (SIM_CPU
*current_cpu
, void *sem_arg
)
4792 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4793 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4794 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4798 int UNUSED insn_referenced
= abuf
->written
;
4799 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
4803 int UNUSED insn_referenced
= abuf
->written
;
4804 cycles
+= crisv32f_model_crisv32_u_branch (current_cpu
, idesc
, 1, referenced
);
4808 int UNUSED insn_referenced
= abuf
->written
;
4812 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4819 model_crisv32_ba_w (SIM_CPU
*current_cpu
, void *sem_arg
)
4821 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4822 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4823 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4827 int UNUSED insn_referenced
= abuf
->written
;
4828 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
4832 int UNUSED insn_referenced
= abuf
->written
;
4834 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 1, referenced
, out_Pd
);
4838 int UNUSED insn_referenced
= abuf
->written
;
4842 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4849 model_crisv32_jas_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4851 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4852 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4853 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4857 int UNUSED insn_referenced
= abuf
->written
;
4859 in_Rs
= FLD (in_Rs
);
4860 referenced
|= 1 << 0;
4861 cycles
+= crisv32f_model_crisv32_u_jump_r (current_cpu
, idesc
, 0, referenced
, in_Rs
);
4865 int UNUSED insn_referenced
= abuf
->written
;
4867 out_Pd
= FLD (out_Pd
);
4868 referenced
|= 1 << 0;
4869 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 1, referenced
, out_Pd
);
4873 int UNUSED insn_referenced
= abuf
->written
;
4877 in_Rs
= FLD (in_Rs
);
4878 referenced
|= 1 << 1;
4879 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4886 model_crisv32_jas_c (SIM_CPU
*current_cpu
, void *sem_arg
)
4888 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
4889 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4890 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4894 int UNUSED insn_referenced
= abuf
->written
;
4895 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
4899 int UNUSED insn_referenced
= abuf
->written
;
4901 out_Pd
= FLD (out_Pd
);
4902 referenced
|= 1 << 0;
4903 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 1, referenced
, out_Pd
);
4907 int UNUSED insn_referenced
= abuf
->written
;
4911 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4918 model_crisv32_jump_p (SIM_CPU
*current_cpu
, void *sem_arg
)
4920 #define FLD(f) abuf->fields.sfmt_mcp.f
4921 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4922 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4926 int UNUSED insn_referenced
= abuf
->written
;
4928 in_Ps
= FLD (in_Ps
);
4929 referenced
|= 1 << 0;
4930 cycles
+= crisv32f_model_crisv32_u_jump_sr (current_cpu
, idesc
, 0, referenced
, in_Ps
);
4934 int UNUSED insn_referenced
= abuf
->written
;
4938 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4945 model_crisv32_bas_c (SIM_CPU
*current_cpu
, void *sem_arg
)
4947 #define FLD(f) abuf->fields.sfmt_bas_c.f
4948 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4949 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4953 int UNUSED insn_referenced
= abuf
->written
;
4954 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
4958 int UNUSED insn_referenced
= abuf
->written
;
4960 out_Pd
= FLD (out_Pd
);
4961 referenced
|= 1 << 0;
4962 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 1, referenced
, out_Pd
);
4966 int UNUSED insn_referenced
= abuf
->written
;
4970 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4977 model_crisv32_jasc_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4979 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4980 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4981 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4985 int UNUSED insn_referenced
= abuf
->written
;
4987 in_Rs
= FLD (in_Rs
);
4988 referenced
|= 1 << 0;
4989 cycles
+= crisv32f_model_crisv32_u_jump_r (current_cpu
, idesc
, 0, referenced
, in_Rs
);
4993 int UNUSED insn_referenced
= abuf
->written
;
4994 cycles
+= crisv32f_model_crisv32_u_skip4 (current_cpu
, idesc
, 1, referenced
);
4998 int UNUSED insn_referenced
= abuf
->written
;
5000 out_Pd
= FLD (out_Pd
);
5001 referenced
|= 1 << 0;
5002 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 2, referenced
, out_Pd
);
5006 int UNUSED insn_referenced
= abuf
->written
;
5010 in_Rs
= FLD (in_Rs
);
5011 referenced
|= 1 << 1;
5012 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 3, referenced
, in_Rd
, in_Rs
, out_Rd
);
5019 model_crisv32_jasc_c (SIM_CPU
*current_cpu
, void *sem_arg
)
5021 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
5022 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5023 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5027 int UNUSED insn_referenced
= abuf
->written
;
5028 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5032 int UNUSED insn_referenced
= abuf
->written
;
5033 cycles
+= crisv32f_model_crisv32_u_skip4 (current_cpu
, idesc
, 1, referenced
);
5037 int UNUSED insn_referenced
= abuf
->written
;
5039 out_Pd
= FLD (out_Pd
);
5040 referenced
|= 1 << 0;
5041 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 2, referenced
, out_Pd
);
5045 int UNUSED insn_referenced
= abuf
->written
;
5049 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 3, referenced
, in_Rd
, in_Rs
, out_Rd
);
5056 model_crisv32_basc_c (SIM_CPU
*current_cpu
, void *sem_arg
)
5058 #define FLD(f) abuf->fields.sfmt_bas_c.f
5059 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5060 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5064 int UNUSED insn_referenced
= abuf
->written
;
5065 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5069 int UNUSED insn_referenced
= abuf
->written
;
5070 cycles
+= crisv32f_model_crisv32_u_skip4 (current_cpu
, idesc
, 1, referenced
);
5074 int UNUSED insn_referenced
= abuf
->written
;
5076 out_Pd
= FLD (out_Pd
);
5077 referenced
|= 1 << 0;
5078 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 2, referenced
, out_Pd
);
5082 int UNUSED insn_referenced
= abuf
->written
;
5086 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 3, referenced
, in_Rd
, in_Rs
, out_Rd
);
5093 model_crisv32_break (SIM_CPU
*current_cpu
, void *sem_arg
)
5095 #define FLD(f) abuf->fields.sfmt_break.f
5096 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5097 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5101 int UNUSED insn_referenced
= abuf
->written
;
5105 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5112 model_crisv32_bound_r_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5114 #define FLD(f) abuf->fields.sfmt_muls_b.f
5115 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5116 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5120 int UNUSED insn_referenced
= abuf
->written
;
5124 in_Rd
= FLD (in_Rd
);
5125 in_Rs
= FLD (in_Rs
);
5126 out_Rd
= FLD (out_Rd
);
5127 referenced
|= 1 << 0;
5128 referenced
|= 1 << 1;
5129 referenced
|= 1 << 2;
5130 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5137 model_crisv32_bound_r_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5139 #define FLD(f) abuf->fields.sfmt_muls_b.f
5140 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5141 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5145 int UNUSED insn_referenced
= abuf
->written
;
5149 in_Rd
= FLD (in_Rd
);
5150 in_Rs
= FLD (in_Rs
);
5151 out_Rd
= FLD (out_Rd
);
5152 referenced
|= 1 << 0;
5153 referenced
|= 1 << 1;
5154 referenced
|= 1 << 2;
5155 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5162 model_crisv32_bound_r_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5164 #define FLD(f) abuf->fields.sfmt_muls_b.f
5165 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5166 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5170 int UNUSED insn_referenced
= abuf
->written
;
5174 in_Rd
= FLD (in_Rd
);
5175 in_Rs
= FLD (in_Rs
);
5176 out_Rd
= FLD (out_Rd
);
5177 referenced
|= 1 << 0;
5178 referenced
|= 1 << 1;
5179 referenced
|= 1 << 2;
5180 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5187 model_crisv32_bound_cb (SIM_CPU
*current_cpu
, void *sem_arg
)
5189 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5190 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5191 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5195 int UNUSED insn_referenced
= abuf
->written
;
5196 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
5200 int UNUSED insn_referenced
= abuf
->written
;
5204 in_Rd
= FLD (in_Rd
);
5205 out_Rd
= FLD (out_Rd
);
5206 referenced
|= 1 << 0;
5207 referenced
|= 1 << 2;
5208 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5215 model_crisv32_bound_cw (SIM_CPU
*current_cpu
, void *sem_arg
)
5217 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5218 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5219 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5223 int UNUSED insn_referenced
= abuf
->written
;
5224 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
5228 int UNUSED insn_referenced
= abuf
->written
;
5232 in_Rd
= FLD (in_Rd
);
5233 out_Rd
= FLD (out_Rd
);
5234 referenced
|= 1 << 0;
5235 referenced
|= 1 << 2;
5236 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5243 model_crisv32_bound_cd (SIM_CPU
*current_cpu
, void *sem_arg
)
5245 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5246 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5247 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5251 int UNUSED insn_referenced
= abuf
->written
;
5252 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5256 int UNUSED insn_referenced
= abuf
->written
;
5260 in_Rd
= FLD (in_Rd
);
5261 out_Rd
= FLD (out_Rd
);
5262 referenced
|= 1 << 0;
5263 referenced
|= 1 << 2;
5264 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5271 model_crisv32_scc (SIM_CPU
*current_cpu
, void *sem_arg
)
5273 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
5274 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5275 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5279 int UNUSED insn_referenced
= abuf
->written
;
5283 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5290 model_crisv32_lz (SIM_CPU
*current_cpu
, void *sem_arg
)
5292 #define FLD(f) abuf->fields.sfmt_muls_b.f
5293 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5294 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5298 int UNUSED insn_referenced
= abuf
->written
;
5302 in_Rs
= FLD (in_Rs
);
5303 out_Rd
= FLD (out_Rd
);
5304 referenced
|= 1 << 1;
5305 referenced
|= 1 << 2;
5306 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5313 model_crisv32_addoq (SIM_CPU
*current_cpu
, void *sem_arg
)
5315 #define FLD(f) abuf->fields.sfmt_addoq.f
5316 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5317 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5321 int UNUSED insn_referenced
= abuf
->written
;
5325 in_Rd
= FLD (in_Rd
);
5326 referenced
|= 1 << 0;
5327 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5334 model_crisv32_addo_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
5336 #define FLD(f) abuf->fields.sfmt_addc_m.f
5337 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5338 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5342 int UNUSED insn_referenced
= abuf
->written
;
5344 in_Rs
= FLD (in_Rs
);
5345 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
5346 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
5350 int UNUSED insn_referenced
= abuf
->written
;
5351 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
5355 int UNUSED insn_referenced
= abuf
->written
;
5359 in_Rd
= FLD (in_Rd
);
5360 in_Rs
= FLD (in_Rs
);
5361 referenced
|= 1 << 0;
5362 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
5363 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
5370 model_crisv32_addo_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
5372 #define FLD(f) abuf->fields.sfmt_addc_m.f
5373 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5374 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5378 int UNUSED insn_referenced
= abuf
->written
;
5380 in_Rs
= FLD (in_Rs
);
5381 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
5382 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
5386 int UNUSED insn_referenced
= abuf
->written
;
5387 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
5391 int UNUSED insn_referenced
= abuf
->written
;
5395 in_Rd
= FLD (in_Rd
);
5396 in_Rs
= FLD (in_Rs
);
5397 referenced
|= 1 << 0;
5398 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
5399 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
5406 model_crisv32_addo_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
5408 #define FLD(f) abuf->fields.sfmt_addc_m.f
5409 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5410 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5414 int UNUSED insn_referenced
= abuf
->written
;
5416 in_Rs
= FLD (in_Rs
);
5417 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
5418 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
5422 int UNUSED insn_referenced
= abuf
->written
;
5423 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
5427 int UNUSED insn_referenced
= abuf
->written
;
5431 in_Rd
= FLD (in_Rd
);
5432 in_Rs
= FLD (in_Rs
);
5433 referenced
|= 1 << 0;
5434 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
5435 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
5442 model_crisv32_addo_cb (SIM_CPU
*current_cpu
, void *sem_arg
)
5444 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5445 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5446 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5450 int UNUSED insn_referenced
= abuf
->written
;
5451 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
5455 int UNUSED insn_referenced
= abuf
->written
;
5459 in_Rd
= FLD (in_Rd
);
5460 referenced
|= 1 << 0;
5461 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5468 model_crisv32_addo_cw (SIM_CPU
*current_cpu
, void *sem_arg
)
5470 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5471 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5472 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5476 int UNUSED insn_referenced
= abuf
->written
;
5477 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
5481 int UNUSED insn_referenced
= abuf
->written
;
5485 in_Rd
= FLD (in_Rd
);
5486 referenced
|= 1 << 0;
5487 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5494 model_crisv32_addo_cd (SIM_CPU
*current_cpu
, void *sem_arg
)
5496 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5497 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5498 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5502 int UNUSED insn_referenced
= abuf
->written
;
5503 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5507 int UNUSED insn_referenced
= abuf
->written
;
5511 in_Rd
= FLD (in_Rd
);
5512 referenced
|= 1 << 0;
5513 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5520 model_crisv32_addi_acr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5522 #define FLD(f) abuf->fields.sfmt_muls_b.f
5523 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5524 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5528 int UNUSED insn_referenced
= abuf
->written
;
5532 in_Rd
= FLD (in_Rd
);
5533 in_Rs
= FLD (in_Rs
);
5534 referenced
|= 1 << 0;
5535 referenced
|= 1 << 1;
5536 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5543 model_crisv32_addi_acr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5545 #define FLD(f) abuf->fields.sfmt_muls_b.f
5546 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5547 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5551 int UNUSED insn_referenced
= abuf
->written
;
5555 in_Rd
= FLD (in_Rd
);
5556 in_Rs
= FLD (in_Rs
);
5557 referenced
|= 1 << 0;
5558 referenced
|= 1 << 1;
5559 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5566 model_crisv32_addi_acr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5568 #define FLD(f) abuf->fields.sfmt_muls_b.f
5569 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5570 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5574 int UNUSED insn_referenced
= abuf
->written
;
5578 in_Rd
= FLD (in_Rd
);
5579 in_Rs
= FLD (in_Rs
);
5580 referenced
|= 1 << 0;
5581 referenced
|= 1 << 1;
5582 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5589 model_crisv32_fidxi (SIM_CPU
*current_cpu
, void *sem_arg
)
5591 #define FLD(f) abuf->fields.sfmt_mcp.f
5592 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5593 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5597 int UNUSED insn_referenced
= abuf
->written
;
5601 in_Rs
= FLD (in_Rs
);
5602 referenced
|= 1 << 1;
5603 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5610 model_crisv32_ftagi (SIM_CPU
*current_cpu
, void *sem_arg
)
5612 #define FLD(f) abuf->fields.sfmt_mcp.f
5613 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5614 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5618 int UNUSED insn_referenced
= abuf
->written
;
5622 in_Rs
= FLD (in_Rs
);
5623 referenced
|= 1 << 1;
5624 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5631 model_crisv32_fidxd (SIM_CPU
*current_cpu
, void *sem_arg
)
5633 #define FLD(f) abuf->fields.sfmt_mcp.f
5634 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5635 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5639 int UNUSED insn_referenced
= abuf
->written
;
5643 in_Rs
= FLD (in_Rs
);
5644 referenced
|= 1 << 1;
5645 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5652 model_crisv32_ftagd (SIM_CPU
*current_cpu
, void *sem_arg
)
5654 #define FLD(f) abuf->fields.sfmt_mcp.f
5655 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5656 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5660 int UNUSED insn_referenced
= abuf
->written
;
5664 in_Rs
= FLD (in_Rs
);
5665 referenced
|= 1 << 1;
5666 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5672 /* We assume UNIT_NONE == 0 because the tables don't always terminate
5675 /* Model timing data for `crisv32'. */
5677 static const INSN_TIMING crisv32_timing
[] = {
5678 { CRISV32F_INSN_X_INVALID
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5679 { CRISV32F_INSN_X_AFTER
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5680 { CRISV32F_INSN_X_BEFORE
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5681 { CRISV32F_INSN_X_CTI_CHAIN
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5682 { CRISV32F_INSN_X_CHAIN
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5683 { CRISV32F_INSN_X_BEGIN
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5684 { CRISV32F_INSN_MOVE_B_R
, model_crisv32_move_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5685 { CRISV32F_INSN_MOVE_W_R
, model_crisv32_move_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5686 { CRISV32F_INSN_MOVE_D_R
, model_crisv32_move_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5687 { CRISV32F_INSN_MOVEQ
, model_crisv32_moveq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5688 { CRISV32F_INSN_MOVS_B_R
, model_crisv32_movs_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5689 { CRISV32F_INSN_MOVS_W_R
, model_crisv32_movs_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5690 { CRISV32F_INSN_MOVU_B_R
, model_crisv32_movu_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5691 { CRISV32F_INSN_MOVU_W_R
, model_crisv32_movu_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5692 { CRISV32F_INSN_MOVECBR
, model_crisv32_movecbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5693 { CRISV32F_INSN_MOVECWR
, model_crisv32_movecwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5694 { CRISV32F_INSN_MOVECDR
, model_crisv32_movecdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5695 { CRISV32F_INSN_MOVSCBR
, model_crisv32_movscbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5696 { CRISV32F_INSN_MOVSCWR
, model_crisv32_movscwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5697 { CRISV32F_INSN_MOVUCBR
, model_crisv32_movucbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5698 { CRISV32F_INSN_MOVUCWR
, model_crisv32_movucwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5699 { CRISV32F_INSN_ADDQ
, model_crisv32_addq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5700 { CRISV32F_INSN_SUBQ
, model_crisv32_subq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5701 { CRISV32F_INSN_CMP_R_B_R
, model_crisv32_cmp_r_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5702 { CRISV32F_INSN_CMP_R_W_R
, model_crisv32_cmp_r_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5703 { CRISV32F_INSN_CMP_R_D_R
, model_crisv32_cmp_r_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5704 { CRISV32F_INSN_CMP_M_B_M
, model_crisv32_cmp_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5705 { CRISV32F_INSN_CMP_M_W_M
, model_crisv32_cmp_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5706 { CRISV32F_INSN_CMP_M_D_M
, model_crisv32_cmp_m_d_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5707 { CRISV32F_INSN_CMPCBR
, model_crisv32_cmpcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5708 { CRISV32F_INSN_CMPCWR
, model_crisv32_cmpcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5709 { CRISV32F_INSN_CMPCDR
, model_crisv32_cmpcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5710 { CRISV32F_INSN_CMPQ
, model_crisv32_cmpq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5711 { CRISV32F_INSN_CMPS_M_B_M
, model_crisv32_cmps_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5712 { CRISV32F_INSN_CMPS_M_W_M
, model_crisv32_cmps_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5713 { CRISV32F_INSN_CMPSCBR
, model_crisv32_cmpscbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5714 { CRISV32F_INSN_CMPSCWR
, model_crisv32_cmpscwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5715 { CRISV32F_INSN_CMPU_M_B_M
, model_crisv32_cmpu_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5716 { CRISV32F_INSN_CMPU_M_W_M
, model_crisv32_cmpu_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5717 { CRISV32F_INSN_CMPUCBR
, model_crisv32_cmpucbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5718 { CRISV32F_INSN_CMPUCWR
, model_crisv32_cmpucwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5719 { CRISV32F_INSN_MOVE_M_B_M
, model_crisv32_move_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5720 { CRISV32F_INSN_MOVE_M_W_M
, model_crisv32_move_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5721 { CRISV32F_INSN_MOVE_M_D_M
, model_crisv32_move_m_d_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5722 { CRISV32F_INSN_MOVS_M_B_M
, model_crisv32_movs_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5723 { CRISV32F_INSN_MOVS_M_W_M
, model_crisv32_movs_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5724 { CRISV32F_INSN_MOVU_M_B_M
, model_crisv32_movu_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5725 { CRISV32F_INSN_MOVU_M_W_M
, model_crisv32_movu_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5726 { CRISV32F_INSN_MOVE_R_SPRV32
, model_crisv32_move_r_sprv32
, { { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5727 { CRISV32F_INSN_MOVE_SPR_RV32
, model_crisv32_move_spr_rv32
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5728 { CRISV32F_INSN_MOVE_M_SPRV32
, model_crisv32_move_m_sprv32
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5729 { CRISV32F_INSN_MOVE_C_SPRV32_P2
, model_crisv32_move_c_sprv32_p2
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5730 { CRISV32F_INSN_MOVE_C_SPRV32_P3
, model_crisv32_move_c_sprv32_p3
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5731 { CRISV32F_INSN_MOVE_C_SPRV32_P5
, model_crisv32_move_c_sprv32_p5
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5732 { CRISV32F_INSN_MOVE_C_SPRV32_P6
, model_crisv32_move_c_sprv32_p6
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5733 { CRISV32F_INSN_MOVE_C_SPRV32_P7
, model_crisv32_move_c_sprv32_p7
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5734 { CRISV32F_INSN_MOVE_C_SPRV32_P9
, model_crisv32_move_c_sprv32_p9
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5735 { CRISV32F_INSN_MOVE_C_SPRV32_P10
, model_crisv32_move_c_sprv32_p10
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5736 { CRISV32F_INSN_MOVE_C_SPRV32_P11
, model_crisv32_move_c_sprv32_p11
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5737 { CRISV32F_INSN_MOVE_C_SPRV32_P12
, model_crisv32_move_c_sprv32_p12
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5738 { CRISV32F_INSN_MOVE_C_SPRV32_P13
, model_crisv32_move_c_sprv32_p13
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5739 { CRISV32F_INSN_MOVE_C_SPRV32_P14
, model_crisv32_move_c_sprv32_p14
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5740 { CRISV32F_INSN_MOVE_C_SPRV32_P15
, model_crisv32_move_c_sprv32_p15
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5741 { CRISV32F_INSN_MOVE_SPR_MV32
, model_crisv32_move_spr_mv32
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_W
, 1, 1 } } },
5742 { CRISV32F_INSN_MOVE_SS_R
, model_crisv32_move_ss_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5743 { CRISV32F_INSN_MOVE_R_SS
, model_crisv32_move_r_ss
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5744 { CRISV32F_INSN_MOVEM_R_M_V32
, model_crisv32_movem_r_m_v32
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MOVEM_RTOM
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_MOVEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_W
, 1, 1 } } },
5745 { CRISV32F_INSN_MOVEM_M_R_V32
, model_crisv32_movem_m_r_v32
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_MOVEM_MTOR
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_MOVEM
, 1, 1 } } },
5746 { CRISV32F_INSN_ADD_B_R
, model_crisv32_add_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5747 { CRISV32F_INSN_ADD_W_R
, model_crisv32_add_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5748 { CRISV32F_INSN_ADD_D_R
, model_crisv32_add_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5749 { CRISV32F_INSN_ADD_M_B_M
, model_crisv32_add_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5750 { CRISV32F_INSN_ADD_M_W_M
, model_crisv32_add_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5751 { CRISV32F_INSN_ADD_M_D_M
, model_crisv32_add_m_d_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5752 { CRISV32F_INSN_ADDCBR
, model_crisv32_addcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5753 { CRISV32F_INSN_ADDCWR
, model_crisv32_addcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5754 { CRISV32F_INSN_ADDCDR
, model_crisv32_addcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5755 { CRISV32F_INSN_ADDS_B_R
, model_crisv32_adds_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5756 { CRISV32F_INSN_ADDS_W_R
, model_crisv32_adds_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5757 { CRISV32F_INSN_ADDS_M_B_M
, model_crisv32_adds_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5758 { CRISV32F_INSN_ADDS_M_W_M
, model_crisv32_adds_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5759 { CRISV32F_INSN_ADDSCBR
, model_crisv32_addscbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5760 { CRISV32F_INSN_ADDSCWR
, model_crisv32_addscwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5761 { CRISV32F_INSN_ADDU_B_R
, model_crisv32_addu_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5762 { CRISV32F_INSN_ADDU_W_R
, model_crisv32_addu_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5763 { CRISV32F_INSN_ADDU_M_B_M
, model_crisv32_addu_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5764 { CRISV32F_INSN_ADDU_M_W_M
, model_crisv32_addu_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5765 { CRISV32F_INSN_ADDUCBR
, model_crisv32_adducbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5766 { CRISV32F_INSN_ADDUCWR
, model_crisv32_adducwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5767 { CRISV32F_INSN_SUB_B_R
, model_crisv32_sub_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5768 { CRISV32F_INSN_SUB_W_R
, model_crisv32_sub_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5769 { CRISV32F_INSN_SUB_D_R
, model_crisv32_sub_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5770 { CRISV32F_INSN_SUB_M_B_M
, model_crisv32_sub_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5771 { CRISV32F_INSN_SUB_M_W_M
, model_crisv32_sub_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5772 { CRISV32F_INSN_SUB_M_D_M
, model_crisv32_sub_m_d_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5773 { CRISV32F_INSN_SUBCBR
, model_crisv32_subcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5774 { CRISV32F_INSN_SUBCWR
, model_crisv32_subcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5775 { CRISV32F_INSN_SUBCDR
, model_crisv32_subcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5776 { CRISV32F_INSN_SUBS_B_R
, model_crisv32_subs_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5777 { CRISV32F_INSN_SUBS_W_R
, model_crisv32_subs_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5778 { CRISV32F_INSN_SUBS_M_B_M
, model_crisv32_subs_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5779 { CRISV32F_INSN_SUBS_M_W_M
, model_crisv32_subs_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5780 { CRISV32F_INSN_SUBSCBR
, model_crisv32_subscbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5781 { CRISV32F_INSN_SUBSCWR
, model_crisv32_subscwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5782 { CRISV32F_INSN_SUBU_B_R
, model_crisv32_subu_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5783 { CRISV32F_INSN_SUBU_W_R
, model_crisv32_subu_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5784 { CRISV32F_INSN_SUBU_M_B_M
, model_crisv32_subu_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5785 { CRISV32F_INSN_SUBU_M_W_M
, model_crisv32_subu_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5786 { CRISV32F_INSN_SUBUCBR
, model_crisv32_subucbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5787 { CRISV32F_INSN_SUBUCWR
, model_crisv32_subucwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5788 { CRISV32F_INSN_ADDC_R
, model_crisv32_addc_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5789 { CRISV32F_INSN_ADDC_M
, model_crisv32_addc_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5790 { CRISV32F_INSN_ADDC_C
, model_crisv32_addc_c
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5791 { CRISV32F_INSN_LAPC_D
, model_crisv32_lapc_d
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5792 { CRISV32F_INSN_LAPCQ
, model_crisv32_lapcq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5793 { CRISV32F_INSN_ADDI_B_R
, model_crisv32_addi_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5794 { CRISV32F_INSN_ADDI_W_R
, model_crisv32_addi_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5795 { CRISV32F_INSN_ADDI_D_R
, model_crisv32_addi_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5796 { CRISV32F_INSN_NEG_B_R
, model_crisv32_neg_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5797 { CRISV32F_INSN_NEG_W_R
, model_crisv32_neg_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5798 { CRISV32F_INSN_NEG_D_R
, model_crisv32_neg_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5799 { CRISV32F_INSN_TEST_M_B_M
, model_crisv32_test_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5800 { CRISV32F_INSN_TEST_M_W_M
, model_crisv32_test_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5801 { CRISV32F_INSN_TEST_M_D_M
, model_crisv32_test_m_d_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5802 { CRISV32F_INSN_MOVE_R_M_B_M
, model_crisv32_move_r_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_W
, 1, 1 } } },
5803 { CRISV32F_INSN_MOVE_R_M_W_M
, model_crisv32_move_r_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_W
, 1, 1 } } },
5804 { CRISV32F_INSN_MOVE_R_M_D_M
, model_crisv32_move_r_m_d_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_W
, 1, 1 } } },
5805 { CRISV32F_INSN_MULS_B
, model_crisv32_muls_b
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5806 { CRISV32F_INSN_MULS_W
, model_crisv32_muls_w
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5807 { CRISV32F_INSN_MULS_D
, model_crisv32_muls_d
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5808 { CRISV32F_INSN_MULU_B
, model_crisv32_mulu_b
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5809 { CRISV32F_INSN_MULU_W
, model_crisv32_mulu_w
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5810 { CRISV32F_INSN_MULU_D
, model_crisv32_mulu_d
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5811 { CRISV32F_INSN_MCP
, model_crisv32_mcp
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5812 { CRISV32F_INSN_DSTEP
, model_crisv32_dstep
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5813 { CRISV32F_INSN_ABS
, model_crisv32_abs
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5814 { CRISV32F_INSN_AND_B_R
, model_crisv32_and_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5815 { CRISV32F_INSN_AND_W_R
, model_crisv32_and_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5816 { CRISV32F_INSN_AND_D_R
, model_crisv32_and_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5817 { CRISV32F_INSN_AND_M_B_M
, model_crisv32_and_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5818 { CRISV32F_INSN_AND_M_W_M
, model_crisv32_and_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5819 { CRISV32F_INSN_AND_M_D_M
, model_crisv32_and_m_d_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5820 { CRISV32F_INSN_ANDCBR
, model_crisv32_andcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5821 { CRISV32F_INSN_ANDCWR
, model_crisv32_andcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5822 { CRISV32F_INSN_ANDCDR
, model_crisv32_andcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5823 { CRISV32F_INSN_ANDQ
, model_crisv32_andq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5824 { CRISV32F_INSN_ORR_B_R
, model_crisv32_orr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5825 { CRISV32F_INSN_ORR_W_R
, model_crisv32_orr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5826 { CRISV32F_INSN_ORR_D_R
, model_crisv32_orr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5827 { CRISV32F_INSN_OR_M_B_M
, model_crisv32_or_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5828 { CRISV32F_INSN_OR_M_W_M
, model_crisv32_or_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5829 { CRISV32F_INSN_OR_M_D_M
, model_crisv32_or_m_d_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5830 { CRISV32F_INSN_ORCBR
, model_crisv32_orcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5831 { CRISV32F_INSN_ORCWR
, model_crisv32_orcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5832 { CRISV32F_INSN_ORCDR
, model_crisv32_orcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5833 { CRISV32F_INSN_ORQ
, model_crisv32_orq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5834 { CRISV32F_INSN_XOR
, model_crisv32_xor
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5835 { CRISV32F_INSN_SWAP
, model_crisv32_swap
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5836 { CRISV32F_INSN_ASRR_B_R
, model_crisv32_asrr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5837 { CRISV32F_INSN_ASRR_W_R
, model_crisv32_asrr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5838 { CRISV32F_INSN_ASRR_D_R
, model_crisv32_asrr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5839 { CRISV32F_INSN_ASRQ
, model_crisv32_asrq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5840 { CRISV32F_INSN_LSRR_B_R
, model_crisv32_lsrr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5841 { CRISV32F_INSN_LSRR_W_R
, model_crisv32_lsrr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5842 { CRISV32F_INSN_LSRR_D_R
, model_crisv32_lsrr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5843 { CRISV32F_INSN_LSRQ
, model_crisv32_lsrq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5844 { CRISV32F_INSN_LSLR_B_R
, model_crisv32_lslr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5845 { CRISV32F_INSN_LSLR_W_R
, model_crisv32_lslr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5846 { CRISV32F_INSN_LSLR_D_R
, model_crisv32_lslr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5847 { CRISV32F_INSN_LSLQ
, model_crisv32_lslq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5848 { CRISV32F_INSN_BTST
, model_crisv32_btst
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5849 { CRISV32F_INSN_BTSTQ
, model_crisv32_btstq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5850 { CRISV32F_INSN_SETF
, model_crisv32_setf
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5851 { CRISV32F_INSN_CLEARF
, model_crisv32_clearf
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5852 { CRISV32F_INSN_RFE
, model_crisv32_rfe
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5853 { CRISV32F_INSN_SFE
, model_crisv32_sfe
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5854 { CRISV32F_INSN_RFG
, model_crisv32_rfg
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5855 { CRISV32F_INSN_RFN
, model_crisv32_rfn
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5856 { CRISV32F_INSN_HALT
, model_crisv32_halt
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5857 { CRISV32F_INSN_BCC_B
, model_crisv32_bcc_b
, { { (int) UNIT_CRISV32_U_BRANCH
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5858 { CRISV32F_INSN_BA_B
, model_crisv32_ba_b
, { { (int) UNIT_CRISV32_U_JUMP
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5859 { CRISV32F_INSN_BCC_W
, model_crisv32_bcc_w
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_BRANCH
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5860 { CRISV32F_INSN_BA_W
, model_crisv32_ba_w
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_JUMP
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5861 { CRISV32F_INSN_JAS_R
, model_crisv32_jas_r
, { { (int) UNIT_CRISV32_U_JUMP_R
, 1, 1 }, { (int) UNIT_CRISV32_U_JUMP
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5862 { CRISV32F_INSN_JAS_C
, model_crisv32_jas_c
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_JUMP
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5863 { CRISV32F_INSN_JUMP_P
, model_crisv32_jump_p
, { { (int) UNIT_CRISV32_U_JUMP_SR
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5864 { CRISV32F_INSN_BAS_C
, model_crisv32_bas_c
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_JUMP
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5865 { CRISV32F_INSN_JASC_R
, model_crisv32_jasc_r
, { { (int) UNIT_CRISV32_U_JUMP_R
, 1, 1 }, { (int) UNIT_CRISV32_U_SKIP4
, 1, 1 }, { (int) UNIT_CRISV32_U_JUMP
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5866 { CRISV32F_INSN_JASC_C
, model_crisv32_jasc_c
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_SKIP4
, 1, 1 }, { (int) UNIT_CRISV32_U_JUMP
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5867 { CRISV32F_INSN_BASC_C
, model_crisv32_basc_c
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_SKIP4
, 1, 1 }, { (int) UNIT_CRISV32_U_JUMP
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5868 { CRISV32F_INSN_BREAK
, model_crisv32_break
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5869 { CRISV32F_INSN_BOUND_R_B_R
, model_crisv32_bound_r_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5870 { CRISV32F_INSN_BOUND_R_W_R
, model_crisv32_bound_r_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5871 { CRISV32F_INSN_BOUND_R_D_R
, model_crisv32_bound_r_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5872 { CRISV32F_INSN_BOUND_CB
, model_crisv32_bound_cb
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5873 { CRISV32F_INSN_BOUND_CW
, model_crisv32_bound_cw
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5874 { CRISV32F_INSN_BOUND_CD
, model_crisv32_bound_cd
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5875 { CRISV32F_INSN_SCC
, model_crisv32_scc
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5876 { CRISV32F_INSN_LZ
, model_crisv32_lz
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5877 { CRISV32F_INSN_ADDOQ
, model_crisv32_addoq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5878 { CRISV32F_INSN_ADDO_M_B_M
, model_crisv32_addo_m_b_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5879 { CRISV32F_INSN_ADDO_M_W_M
, model_crisv32_addo_m_w_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5880 { CRISV32F_INSN_ADDO_M_D_M
, model_crisv32_addo_m_d_m
, { { (int) UNIT_CRISV32_U_MEM
, 1, 1 }, { (int) UNIT_CRISV32_U_MEM_R
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5881 { CRISV32F_INSN_ADDO_CB
, model_crisv32_addo_cb
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5882 { CRISV32F_INSN_ADDO_CW
, model_crisv32_addo_cw
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5883 { CRISV32F_INSN_ADDO_CD
, model_crisv32_addo_cd
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5884 { CRISV32F_INSN_ADDI_ACR_B_R
, model_crisv32_addi_acr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5885 { CRISV32F_INSN_ADDI_ACR_W_R
, model_crisv32_addi_acr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5886 { CRISV32F_INSN_ADDI_ACR_D_R
, model_crisv32_addi_acr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5887 { CRISV32F_INSN_FIDXI
, model_crisv32_fidxi
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5888 { CRISV32F_INSN_FTAGI
, model_crisv32_ftagi
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5889 { CRISV32F_INSN_FIDXD
, model_crisv32_fidxd
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5890 { CRISV32F_INSN_FTAGD
, model_crisv32_ftagd
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5893 #endif /* WITH_PROFILE_MODEL_P */
5896 crisv32_model_init (SIM_CPU
*cpu
)
5898 CPU_MODEL_DATA (cpu
) = (void *) zalloc (sizeof (MODEL_CRISV32_DATA
));
5901 #if WITH_PROFILE_MODEL_P
5902 #define TIMING_DATA(td) td
5904 #define TIMING_DATA(td) 0
5907 static const SIM_MODEL crisv32_models
[] =
5909 { "crisv32", & crisv32_mach
, MODEL_CRISV32
, TIMING_DATA (& crisv32_timing
[0]), crisv32_model_init
},
5913 /* The properties of this cpu's implementation. */
5915 static const SIM_MACH_IMP_PROPERTIES crisv32f_imp_properties
=
5927 crisv32f_prepare_run (SIM_CPU
*cpu
)
5929 if (CPU_IDESC (cpu
) == NULL
)
5930 crisv32f_init_idesc_table (cpu
);
5933 static const CGEN_INSN
*
5934 crisv32f_get_idata (SIM_CPU
*cpu
, int inum
)
5936 return CPU_IDESC (cpu
) [inum
].idata
;
5940 crisv32_init_cpu (SIM_CPU
*cpu
)
5942 CPU_REG_FETCH (cpu
) = crisv32f_fetch_register
;
5943 CPU_REG_STORE (cpu
) = crisv32f_store_register
;
5944 CPU_PC_FETCH (cpu
) = crisv32f_h_pc_get
;
5945 CPU_PC_STORE (cpu
) = crisv32f_h_pc_set
;
5946 CPU_GET_IDATA (cpu
) = crisv32f_get_idata
;
5947 CPU_MAX_INSNS (cpu
) = CRISV32F_INSN__MAX
;
5948 CPU_INSN_NAME (cpu
) = cgen_insn_name
;
5949 CPU_FULL_ENGINE_FN (cpu
) = crisv32f_engine_run_full
;
5951 CPU_FAST_ENGINE_FN (cpu
) = crisv32f_engine_run_fast
;
5953 CPU_FAST_ENGINE_FN (cpu
) = crisv32f_engine_run_full
;
5957 const SIM_MACH crisv32_mach
=
5959 "crisv32", "crisv32", MACH_CRISV32
,
5960 32, 32, & crisv32_models
[0], & crisv32f_imp_properties
,
5962 crisv32f_prepare_run