1 /* Simulator model support for crisv32f.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2005 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This program 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 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #define WANT_CPU crisv32f
26 #define WANT_CPU_CRISV32F
30 /* The profiling data is recorded here, but is accessed via the profiling
31 mechanism. After all, this is information for profiling. */
33 #if WITH_PROFILE_MODEL_P
35 /* Model handlers for each insn. */
38 model_crisv32_move_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
40 #define FLD(f) abuf->fields.sfmt_addc_m.f
41 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
42 const IDESC
* UNUSED idesc
= abuf
->idesc
;
46 int UNUSED insn_referenced
= abuf
->written
;
52 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
59 model_crisv32_move_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
61 #define FLD(f) abuf->fields.sfmt_addc_m.f
62 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
63 const IDESC
* UNUSED idesc
= abuf
->idesc
;
67 int UNUSED insn_referenced
= abuf
->written
;
73 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
80 model_crisv32_move_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
82 #define FLD(f) abuf->fields.sfmt_addc_m.f
83 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
84 const IDESC
* UNUSED idesc
= abuf
->idesc
;
88 int UNUSED insn_referenced
= abuf
->written
;
94 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
101 model_crisv32_moveq (SIM_CPU
*current_cpu
, void *sem_arg
)
103 #define FLD(f) abuf->fields.sfmt_moveq.f
104 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
105 const IDESC
* UNUSED idesc
= abuf
->idesc
;
109 int UNUSED insn_referenced
= abuf
->written
;
113 out_Rd
= FLD (out_Rd
);
114 referenced
|= 1 << 2;
115 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
122 model_crisv32_movs_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
124 #define FLD(f) abuf->fields.sfmt_muls_b.f
125 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
126 const IDESC
* UNUSED idesc
= abuf
->idesc
;
130 int UNUSED insn_referenced
= abuf
->written
;
135 out_Rd
= FLD (out_Rd
);
136 referenced
|= 1 << 1;
137 referenced
|= 1 << 2;
138 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
145 model_crisv32_movs_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
147 #define FLD(f) abuf->fields.sfmt_muls_b.f
148 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
149 const IDESC
* UNUSED idesc
= abuf
->idesc
;
153 int UNUSED insn_referenced
= abuf
->written
;
158 out_Rd
= FLD (out_Rd
);
159 referenced
|= 1 << 1;
160 referenced
|= 1 << 2;
161 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
168 model_crisv32_movu_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
170 #define FLD(f) abuf->fields.sfmt_muls_b.f
171 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
172 const IDESC
* UNUSED idesc
= abuf
->idesc
;
176 int UNUSED insn_referenced
= abuf
->written
;
181 out_Rd
= FLD (out_Rd
);
182 referenced
|= 1 << 1;
183 referenced
|= 1 << 2;
184 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
191 model_crisv32_movu_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
193 #define FLD(f) abuf->fields.sfmt_muls_b.f
194 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
195 const IDESC
* UNUSED idesc
= abuf
->idesc
;
199 int UNUSED insn_referenced
= abuf
->written
;
204 out_Rd
= FLD (out_Rd
);
205 referenced
|= 1 << 1;
206 referenced
|= 1 << 2;
207 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
214 model_crisv32_movecbr (SIM_CPU
*current_cpu
, void *sem_arg
)
216 #define FLD(f) abuf->fields.sfmt_addcbr.f
217 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
218 const IDESC
* UNUSED idesc
= abuf
->idesc
;
222 int UNUSED insn_referenced
= abuf
->written
;
223 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
227 int UNUSED insn_referenced
= abuf
->written
;
231 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
238 model_crisv32_movecwr (SIM_CPU
*current_cpu
, void *sem_arg
)
240 #define FLD(f) abuf->fields.sfmt_addcwr.f
241 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
242 const IDESC
* UNUSED idesc
= abuf
->idesc
;
246 int UNUSED insn_referenced
= abuf
->written
;
247 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
251 int UNUSED insn_referenced
= abuf
->written
;
255 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
262 model_crisv32_movecdr (SIM_CPU
*current_cpu
, void *sem_arg
)
264 #define FLD(f) abuf->fields.sfmt_bound_cd.f
265 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
266 const IDESC
* UNUSED idesc
= abuf
->idesc
;
270 int UNUSED insn_referenced
= abuf
->written
;
271 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
275 int UNUSED insn_referenced
= abuf
->written
;
279 out_Rd
= FLD (out_Rd
);
280 referenced
|= 1 << 2;
281 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
288 model_crisv32_movscbr (SIM_CPU
*current_cpu
, void *sem_arg
)
290 #define FLD(f) abuf->fields.sfmt_bound_cb.f
291 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
292 const IDESC
* UNUSED idesc
= abuf
->idesc
;
296 int UNUSED insn_referenced
= abuf
->written
;
297 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
301 int UNUSED insn_referenced
= abuf
->written
;
305 out_Rd
= FLD (out_Rd
);
306 referenced
|= 1 << 2;
307 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
314 model_crisv32_movscwr (SIM_CPU
*current_cpu
, void *sem_arg
)
316 #define FLD(f) abuf->fields.sfmt_bound_cw.f
317 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
318 const IDESC
* UNUSED idesc
= abuf
->idesc
;
322 int UNUSED insn_referenced
= abuf
->written
;
323 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
327 int UNUSED insn_referenced
= abuf
->written
;
331 out_Rd
= FLD (out_Rd
);
332 referenced
|= 1 << 2;
333 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
340 model_crisv32_movucbr (SIM_CPU
*current_cpu
, void *sem_arg
)
342 #define FLD(f) abuf->fields.sfmt_bound_cb.f
343 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
344 const IDESC
* UNUSED idesc
= abuf
->idesc
;
348 int UNUSED insn_referenced
= abuf
->written
;
349 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
353 int UNUSED insn_referenced
= abuf
->written
;
357 out_Rd
= FLD (out_Rd
);
358 referenced
|= 1 << 2;
359 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
366 model_crisv32_movucwr (SIM_CPU
*current_cpu
, void *sem_arg
)
368 #define FLD(f) abuf->fields.sfmt_bound_cw.f
369 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
370 const IDESC
* UNUSED idesc
= abuf
->idesc
;
374 int UNUSED insn_referenced
= abuf
->written
;
375 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
379 int UNUSED insn_referenced
= abuf
->written
;
383 out_Rd
= FLD (out_Rd
);
384 referenced
|= 1 << 2;
385 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
392 model_crisv32_addq (SIM_CPU
*current_cpu
, void *sem_arg
)
394 #define FLD(f) abuf->fields.sfmt_addq.f
395 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
396 const IDESC
* UNUSED idesc
= abuf
->idesc
;
400 int UNUSED insn_referenced
= abuf
->written
;
405 referenced
|= 1 << 0;
406 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
413 model_crisv32_subq (SIM_CPU
*current_cpu
, void *sem_arg
)
415 #define FLD(f) abuf->fields.sfmt_addq.f
416 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
417 const IDESC
* UNUSED idesc
= abuf
->idesc
;
421 int UNUSED insn_referenced
= abuf
->written
;
426 referenced
|= 1 << 0;
427 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
434 model_crisv32_cmp_r_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
436 #define FLD(f) abuf->fields.sfmt_muls_b.f
437 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
438 const IDESC
* UNUSED idesc
= abuf
->idesc
;
442 int UNUSED insn_referenced
= abuf
->written
;
448 referenced
|= 1 << 0;
449 referenced
|= 1 << 1;
450 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
457 model_crisv32_cmp_r_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
459 #define FLD(f) abuf->fields.sfmt_muls_b.f
460 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
461 const IDESC
* UNUSED idesc
= abuf
->idesc
;
465 int UNUSED insn_referenced
= abuf
->written
;
471 referenced
|= 1 << 0;
472 referenced
|= 1 << 1;
473 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
480 model_crisv32_cmp_r_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
482 #define FLD(f) abuf->fields.sfmt_muls_b.f
483 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
484 const IDESC
* UNUSED idesc
= abuf
->idesc
;
488 int UNUSED insn_referenced
= abuf
->written
;
494 referenced
|= 1 << 0;
495 referenced
|= 1 << 1;
496 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
503 model_crisv32_cmp_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
505 #define FLD(f) abuf->fields.sfmt_addc_m.f
506 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
507 const IDESC
* UNUSED idesc
= abuf
->idesc
;
511 int UNUSED insn_referenced
= abuf
->written
;
514 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
515 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
519 int UNUSED insn_referenced
= abuf
->written
;
520 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
524 int UNUSED insn_referenced
= abuf
->written
;
530 referenced
|= 1 << 0;
531 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
532 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
539 model_crisv32_cmp_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
541 #define FLD(f) abuf->fields.sfmt_addc_m.f
542 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
543 const IDESC
* UNUSED idesc
= abuf
->idesc
;
547 int UNUSED insn_referenced
= abuf
->written
;
550 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
551 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
555 int UNUSED insn_referenced
= abuf
->written
;
556 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
560 int UNUSED insn_referenced
= abuf
->written
;
566 referenced
|= 1 << 0;
567 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
568 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
575 model_crisv32_cmp_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
577 #define FLD(f) abuf->fields.sfmt_addc_m.f
578 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
579 const IDESC
* UNUSED idesc
= abuf
->idesc
;
583 int UNUSED insn_referenced
= abuf
->written
;
586 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
587 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
591 int UNUSED insn_referenced
= abuf
->written
;
592 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
596 int UNUSED insn_referenced
= abuf
->written
;
602 referenced
|= 1 << 0;
603 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
604 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
611 model_crisv32_cmpcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
613 #define FLD(f) abuf->fields.sfmt_bound_cb.f
614 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
615 const IDESC
* UNUSED idesc
= abuf
->idesc
;
619 int UNUSED insn_referenced
= abuf
->written
;
620 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
624 int UNUSED insn_referenced
= abuf
->written
;
629 referenced
|= 1 << 0;
630 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
637 model_crisv32_cmpcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
639 #define FLD(f) abuf->fields.sfmt_bound_cw.f
640 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
641 const IDESC
* UNUSED idesc
= abuf
->idesc
;
645 int UNUSED insn_referenced
= abuf
->written
;
646 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
650 int UNUSED insn_referenced
= abuf
->written
;
655 referenced
|= 1 << 0;
656 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
663 model_crisv32_cmpcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
665 #define FLD(f) abuf->fields.sfmt_bound_cd.f
666 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
667 const IDESC
* UNUSED idesc
= abuf
->idesc
;
671 int UNUSED insn_referenced
= abuf
->written
;
672 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
676 int UNUSED insn_referenced
= abuf
->written
;
681 referenced
|= 1 << 0;
682 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
689 model_crisv32_cmpq (SIM_CPU
*current_cpu
, void *sem_arg
)
691 #define FLD(f) abuf->fields.sfmt_andq.f
692 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
693 const IDESC
* UNUSED idesc
= abuf
->idesc
;
697 int UNUSED insn_referenced
= abuf
->written
;
702 referenced
|= 1 << 0;
703 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
710 model_crisv32_cmps_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
712 #define FLD(f) abuf->fields.sfmt_addc_m.f
713 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
714 const IDESC
* UNUSED idesc
= abuf
->idesc
;
718 int UNUSED insn_referenced
= abuf
->written
;
721 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
722 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
726 int UNUSED insn_referenced
= abuf
->written
;
727 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
731 int UNUSED insn_referenced
= abuf
->written
;
737 referenced
|= 1 << 0;
738 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
739 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
746 model_crisv32_cmps_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
748 #define FLD(f) abuf->fields.sfmt_addc_m.f
749 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
750 const IDESC
* UNUSED idesc
= abuf
->idesc
;
754 int UNUSED insn_referenced
= abuf
->written
;
757 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
758 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
762 int UNUSED insn_referenced
= abuf
->written
;
763 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
767 int UNUSED insn_referenced
= abuf
->written
;
773 referenced
|= 1 << 0;
774 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
775 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
782 model_crisv32_cmpscbr (SIM_CPU
*current_cpu
, void *sem_arg
)
784 #define FLD(f) abuf->fields.sfmt_bound_cb.f
785 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
786 const IDESC
* UNUSED idesc
= abuf
->idesc
;
790 int UNUSED insn_referenced
= abuf
->written
;
791 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
795 int UNUSED insn_referenced
= abuf
->written
;
800 referenced
|= 1 << 0;
801 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
808 model_crisv32_cmpscwr (SIM_CPU
*current_cpu
, void *sem_arg
)
810 #define FLD(f) abuf->fields.sfmt_bound_cw.f
811 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
812 const IDESC
* UNUSED idesc
= abuf
->idesc
;
816 int UNUSED insn_referenced
= abuf
->written
;
817 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
821 int UNUSED insn_referenced
= abuf
->written
;
826 referenced
|= 1 << 0;
827 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
834 model_crisv32_cmpu_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
836 #define FLD(f) abuf->fields.sfmt_addc_m.f
837 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
838 const IDESC
* UNUSED idesc
= abuf
->idesc
;
842 int UNUSED insn_referenced
= abuf
->written
;
845 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
846 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
850 int UNUSED insn_referenced
= abuf
->written
;
851 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
855 int UNUSED insn_referenced
= abuf
->written
;
861 referenced
|= 1 << 0;
862 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
863 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
870 model_crisv32_cmpu_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
872 #define FLD(f) abuf->fields.sfmt_addc_m.f
873 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
874 const IDESC
* UNUSED idesc
= abuf
->idesc
;
878 int UNUSED insn_referenced
= abuf
->written
;
881 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
882 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
886 int UNUSED insn_referenced
= abuf
->written
;
887 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
891 int UNUSED insn_referenced
= abuf
->written
;
897 referenced
|= 1 << 0;
898 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
899 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
906 model_crisv32_cmpucbr (SIM_CPU
*current_cpu
, void *sem_arg
)
908 #define FLD(f) abuf->fields.sfmt_bound_cb.f
909 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
910 const IDESC
* UNUSED idesc
= abuf
->idesc
;
914 int UNUSED insn_referenced
= abuf
->written
;
915 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
919 int UNUSED insn_referenced
= abuf
->written
;
924 referenced
|= 1 << 0;
925 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
932 model_crisv32_cmpucwr (SIM_CPU
*current_cpu
, void *sem_arg
)
934 #define FLD(f) abuf->fields.sfmt_bound_cw.f
935 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
936 const IDESC
* UNUSED idesc
= abuf
->idesc
;
940 int UNUSED insn_referenced
= abuf
->written
;
941 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
945 int UNUSED insn_referenced
= abuf
->written
;
950 referenced
|= 1 << 0;
951 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
958 model_crisv32_move_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
960 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
961 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
962 const IDESC
* UNUSED idesc
= abuf
->idesc
;
966 int UNUSED insn_referenced
= abuf
->written
;
969 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
970 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
974 int UNUSED insn_referenced
= abuf
->written
;
975 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
979 int UNUSED insn_referenced
= abuf
->written
;
984 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
985 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
992 model_crisv32_move_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
994 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
995 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
996 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1000 int UNUSED insn_referenced
= abuf
->written
;
1002 in_Rs
= FLD (in_Rs
);
1003 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1004 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1008 int UNUSED insn_referenced
= abuf
->written
;
1009 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1013 int UNUSED insn_referenced
= abuf
->written
;
1017 in_Rs
= FLD (in_Rs
);
1018 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1019 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1026 model_crisv32_move_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1028 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1029 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1030 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1034 int UNUSED insn_referenced
= abuf
->written
;
1036 in_Rs
= FLD (in_Rs
);
1037 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1038 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1042 int UNUSED insn_referenced
= abuf
->written
;
1043 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1047 int UNUSED insn_referenced
= abuf
->written
;
1051 in_Rs
= FLD (in_Rs
);
1052 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1053 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1060 model_crisv32_movs_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1062 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
1063 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1064 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1068 int UNUSED insn_referenced
= abuf
->written
;
1070 in_Rs
= FLD (in_Rs
);
1071 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1072 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1076 int UNUSED insn_referenced
= abuf
->written
;
1077 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1081 int UNUSED insn_referenced
= abuf
->written
;
1085 in_Rs
= FLD (in_Rs
);
1086 out_Rd
= FLD (out_Rd
);
1087 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1088 if (insn_referenced
& (1 << 7)) referenced
|= 1 << 2;
1089 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1096 model_crisv32_movs_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1098 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
1099 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1100 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1104 int UNUSED insn_referenced
= abuf
->written
;
1106 in_Rs
= FLD (in_Rs
);
1107 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1108 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1112 int UNUSED insn_referenced
= abuf
->written
;
1113 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1117 int UNUSED insn_referenced
= abuf
->written
;
1121 in_Rs
= FLD (in_Rs
);
1122 out_Rd
= FLD (out_Rd
);
1123 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1124 if (insn_referenced
& (1 << 7)) referenced
|= 1 << 2;
1125 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1132 model_crisv32_movu_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1134 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
1135 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1136 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1140 int UNUSED insn_referenced
= abuf
->written
;
1142 in_Rs
= FLD (in_Rs
);
1143 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1144 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1148 int UNUSED insn_referenced
= abuf
->written
;
1149 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1153 int UNUSED insn_referenced
= abuf
->written
;
1157 in_Rs
= FLD (in_Rs
);
1158 out_Rd
= FLD (out_Rd
);
1159 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1160 if (insn_referenced
& (1 << 7)) referenced
|= 1 << 2;
1161 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1168 model_crisv32_movu_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1170 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
1171 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1172 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1176 int UNUSED insn_referenced
= abuf
->written
;
1178 in_Rs
= FLD (in_Rs
);
1179 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1180 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1184 int UNUSED insn_referenced
= abuf
->written
;
1185 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1189 int UNUSED insn_referenced
= abuf
->written
;
1193 in_Rs
= FLD (in_Rs
);
1194 out_Rd
= FLD (out_Rd
);
1195 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1196 if (insn_referenced
& (1 << 7)) referenced
|= 1 << 2;
1197 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1204 model_crisv32_move_r_sprv32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1206 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
1207 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1208 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1212 int UNUSED insn_referenced
= abuf
->written
;
1215 in_Rs
= FLD (in_Rs
);
1216 out_Pd
= FLD (out_Pd
);
1217 referenced
|= 1 << 0;
1218 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
1219 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 0, referenced
, in_Rs
, out_Pd
);
1226 model_crisv32_move_spr_rv32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1228 #define FLD(f) abuf->fields.sfmt_mcp.f
1229 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1230 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1234 int UNUSED insn_referenced
= abuf
->written
;
1238 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1245 model_crisv32_move_m_sprv32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1247 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
1248 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1249 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1253 int UNUSED insn_referenced
= abuf
->written
;
1255 in_Rs
= FLD (in_Rs
);
1256 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1257 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1261 int UNUSED insn_referenced
= abuf
->written
;
1262 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1266 int UNUSED insn_referenced
= abuf
->written
;
1269 in_Rs
= FLD (in_Rs
);
1270 out_Pd
= FLD (out_Pd
);
1271 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
1272 referenced
|= 1 << 1;
1273 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 2, referenced
, in_Rs
, out_Pd
);
1280 model_crisv32_move_c_sprv32_p0 (SIM_CPU
*current_cpu
, void *sem_arg
)
1282 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1283 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1284 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1288 int UNUSED insn_referenced
= abuf
->written
;
1289 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1293 int UNUSED insn_referenced
= abuf
->written
;
1296 out_Pd
= FLD (out_Pd
);
1297 referenced
|= 1 << 1;
1298 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1305 model_crisv32_move_c_sprv32_p1 (SIM_CPU
*current_cpu
, void *sem_arg
)
1307 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1308 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1309 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1313 int UNUSED insn_referenced
= abuf
->written
;
1314 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1318 int UNUSED insn_referenced
= abuf
->written
;
1321 out_Pd
= FLD (out_Pd
);
1322 referenced
|= 1 << 1;
1323 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1330 model_crisv32_move_c_sprv32_p2 (SIM_CPU
*current_cpu
, void *sem_arg
)
1332 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1333 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1334 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1338 int UNUSED insn_referenced
= abuf
->written
;
1339 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1343 int UNUSED insn_referenced
= abuf
->written
;
1346 out_Pd
= FLD (out_Pd
);
1347 referenced
|= 1 << 1;
1348 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1355 model_crisv32_move_c_sprv32_p3 (SIM_CPU
*current_cpu
, void *sem_arg
)
1357 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1358 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1359 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1363 int UNUSED insn_referenced
= abuf
->written
;
1364 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1368 int UNUSED insn_referenced
= abuf
->written
;
1371 out_Pd
= FLD (out_Pd
);
1372 referenced
|= 1 << 1;
1373 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1380 model_crisv32_move_c_sprv32_p4 (SIM_CPU
*current_cpu
, void *sem_arg
)
1382 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1383 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1384 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1388 int UNUSED insn_referenced
= abuf
->written
;
1389 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1393 int UNUSED insn_referenced
= abuf
->written
;
1396 out_Pd
= FLD (out_Pd
);
1397 referenced
|= 1 << 1;
1398 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1405 model_crisv32_move_c_sprv32_p5 (SIM_CPU
*current_cpu
, void *sem_arg
)
1407 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1408 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1409 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1413 int UNUSED insn_referenced
= abuf
->written
;
1414 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1418 int UNUSED insn_referenced
= abuf
->written
;
1421 out_Pd
= FLD (out_Pd
);
1422 referenced
|= 1 << 1;
1423 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1430 model_crisv32_move_c_sprv32_p6 (SIM_CPU
*current_cpu
, void *sem_arg
)
1432 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1433 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1434 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1438 int UNUSED insn_referenced
= abuf
->written
;
1439 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1443 int UNUSED insn_referenced
= abuf
->written
;
1446 out_Pd
= FLD (out_Pd
);
1447 referenced
|= 1 << 1;
1448 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1455 model_crisv32_move_c_sprv32_p7 (SIM_CPU
*current_cpu
, void *sem_arg
)
1457 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1458 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1459 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1463 int UNUSED insn_referenced
= abuf
->written
;
1464 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1468 int UNUSED insn_referenced
= abuf
->written
;
1471 out_Pd
= FLD (out_Pd
);
1472 referenced
|= 1 << 1;
1473 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1480 model_crisv32_move_c_sprv32_p8 (SIM_CPU
*current_cpu
, void *sem_arg
)
1482 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1483 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1484 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1488 int UNUSED insn_referenced
= abuf
->written
;
1489 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1493 int UNUSED insn_referenced
= abuf
->written
;
1496 out_Pd
= FLD (out_Pd
);
1497 referenced
|= 1 << 1;
1498 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1505 model_crisv32_move_c_sprv32_p9 (SIM_CPU
*current_cpu
, void *sem_arg
)
1507 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1508 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1509 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1513 int UNUSED insn_referenced
= abuf
->written
;
1514 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1518 int UNUSED insn_referenced
= abuf
->written
;
1521 out_Pd
= FLD (out_Pd
);
1522 referenced
|= 1 << 1;
1523 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1530 model_crisv32_move_c_sprv32_p10 (SIM_CPU
*current_cpu
, void *sem_arg
)
1532 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1533 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1534 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1538 int UNUSED insn_referenced
= abuf
->written
;
1539 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1543 int UNUSED insn_referenced
= abuf
->written
;
1546 out_Pd
= FLD (out_Pd
);
1547 referenced
|= 1 << 1;
1548 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1555 model_crisv32_move_c_sprv32_p11 (SIM_CPU
*current_cpu
, void *sem_arg
)
1557 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1558 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1559 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1563 int UNUSED insn_referenced
= abuf
->written
;
1564 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1568 int UNUSED insn_referenced
= abuf
->written
;
1571 out_Pd
= FLD (out_Pd
);
1572 referenced
|= 1 << 1;
1573 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1580 model_crisv32_move_c_sprv32_p12 (SIM_CPU
*current_cpu
, void *sem_arg
)
1582 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1583 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1584 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1588 int UNUSED insn_referenced
= abuf
->written
;
1589 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1593 int UNUSED insn_referenced
= abuf
->written
;
1596 out_Pd
= FLD (out_Pd
);
1597 referenced
|= 1 << 1;
1598 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1605 model_crisv32_move_c_sprv32_p13 (SIM_CPU
*current_cpu
, void *sem_arg
)
1607 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1608 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1609 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1613 int UNUSED insn_referenced
= abuf
->written
;
1614 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1618 int UNUSED insn_referenced
= abuf
->written
;
1621 out_Pd
= FLD (out_Pd
);
1622 referenced
|= 1 << 1;
1623 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1630 model_crisv32_move_c_sprv32_p14 (SIM_CPU
*current_cpu
, void *sem_arg
)
1632 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1633 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1634 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1638 int UNUSED insn_referenced
= abuf
->written
;
1639 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1643 int UNUSED insn_referenced
= abuf
->written
;
1646 out_Pd
= FLD (out_Pd
);
1647 referenced
|= 1 << 1;
1648 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1655 model_crisv32_move_c_sprv32_p15 (SIM_CPU
*current_cpu
, void *sem_arg
)
1657 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
1658 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1659 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1663 int UNUSED insn_referenced
= abuf
->written
;
1664 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
1668 int UNUSED insn_referenced
= abuf
->written
;
1671 out_Pd
= FLD (out_Pd
);
1672 referenced
|= 1 << 1;
1673 cycles
+= crisv32f_model_crisv32_u_exec_to_sr (current_cpu
, idesc
, 1, referenced
, in_Rs
, out_Pd
);
1680 model_crisv32_move_spr_mv32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1682 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
1683 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1684 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1688 int UNUSED insn_referenced
= abuf
->written
;
1690 in_Rs
= FLD (in_Rs
);
1691 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1692 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1696 int UNUSED insn_referenced
= abuf
->written
;
1700 in_Rs
= FLD (in_Rs
);
1701 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
1702 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
1706 int UNUSED insn_referenced
= abuf
->written
;
1707 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 2, referenced
);
1714 model_crisv32_move_ss_r (SIM_CPU
*current_cpu
, void *sem_arg
)
1716 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
1717 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1718 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1722 int UNUSED insn_referenced
= abuf
->written
;
1726 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1733 model_crisv32_move_r_ss (SIM_CPU
*current_cpu
, void *sem_arg
)
1735 #define FLD(f) abuf->fields.sfmt_mcp.f
1736 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1737 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1741 int UNUSED insn_referenced
= abuf
->written
;
1745 in_Rs
= FLD (in_Rs
);
1746 referenced
|= 1 << 1;
1747 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1754 model_crisv32_movem_r_m_v32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1756 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
1757 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1758 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1762 int UNUSED insn_referenced
= abuf
->written
;
1764 in_Rs
= FLD (in_Rs
);
1765 referenced
|= 1 << 0;
1766 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1770 int UNUSED insn_referenced
= abuf
->written
;
1773 in_Rs
= FLD (in_Rs
);
1774 in_Rd
= FLD (in_Rd
);
1775 referenced
|= 1 << 0;
1776 referenced
|= 1 << 1;
1777 cycles
+= crisv32f_model_crisv32_u_movem_rtom (current_cpu
, idesc
, 1, referenced
, in_Rs
, in_Rd
);
1781 int UNUSED insn_referenced
= abuf
->written
;
1784 in_Rs
= FLD (in_Rs
);
1785 referenced
|= 1 << 0;
1786 cycles
+= crisv32f_model_crisv32_u_exec_movem (current_cpu
, idesc
, 2, referenced
, in_Rs
, out_Rd
);
1790 int UNUSED insn_referenced
= abuf
->written
;
1791 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 3, referenced
);
1798 model_crisv32_movem_m_r_v32 (SIM_CPU
*current_cpu
, void *sem_arg
)
1800 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
1801 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1802 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1806 int UNUSED insn_referenced
= abuf
->written
;
1808 in_Rs
= FLD (in_Rs
);
1809 referenced
|= 1 << 0;
1810 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1814 int UNUSED insn_referenced
= abuf
->written
;
1815 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1819 int UNUSED insn_referenced
= abuf
->written
;
1822 in_Rs
= FLD (in_Rs
);
1823 in_Rd
= FLD (in_Rd
);
1824 referenced
|= 1 << 0;
1825 referenced
|= 1 << 1;
1826 cycles
+= crisv32f_model_crisv32_u_movem_mtor (current_cpu
, idesc
, 2, referenced
, in_Rs
, in_Rd
);
1830 int UNUSED insn_referenced
= abuf
->written
;
1833 in_Rs
= FLD (in_Rs
);
1834 referenced
|= 1 << 0;
1835 cycles
+= crisv32f_model_crisv32_u_exec_movem (current_cpu
, idesc
, 3, referenced
, in_Rs
, out_Rd
);
1842 model_crisv32_add_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
1844 #define FLD(f) abuf->fields.sfmt_addc_m.f
1845 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1846 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1850 int UNUSED insn_referenced
= abuf
->written
;
1854 in_Rd
= FLD (in_Rd
);
1855 in_Rs
= FLD (in_Rs
);
1856 referenced
|= 1 << 0;
1857 referenced
|= 1 << 1;
1858 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1865 model_crisv32_add_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
1867 #define FLD(f) abuf->fields.sfmt_addc_m.f
1868 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1869 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1873 int UNUSED insn_referenced
= abuf
->written
;
1877 in_Rd
= FLD (in_Rd
);
1878 in_Rs
= FLD (in_Rs
);
1879 referenced
|= 1 << 0;
1880 referenced
|= 1 << 1;
1881 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1888 model_crisv32_add_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
1890 #define FLD(f) abuf->fields.sfmt_addc_m.f
1891 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1892 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1896 int UNUSED insn_referenced
= abuf
->written
;
1900 in_Rd
= FLD (in_Rd
);
1901 in_Rs
= FLD (in_Rs
);
1902 referenced
|= 1 << 0;
1903 referenced
|= 1 << 1;
1904 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
1911 model_crisv32_add_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1913 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1914 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1915 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1919 int UNUSED insn_referenced
= abuf
->written
;
1921 in_Rs
= FLD (in_Rs
);
1922 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1923 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1927 int UNUSED insn_referenced
= abuf
->written
;
1928 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1932 int UNUSED insn_referenced
= abuf
->written
;
1936 in_Rd
= FLD (in_Rd
);
1937 in_Rs
= FLD (in_Rs
);
1938 referenced
|= 1 << 0;
1939 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
1940 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1947 model_crisv32_add_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1949 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1950 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1951 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1955 int UNUSED insn_referenced
= abuf
->written
;
1957 in_Rs
= FLD (in_Rs
);
1958 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1959 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1963 int UNUSED insn_referenced
= abuf
->written
;
1964 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
1968 int UNUSED insn_referenced
= abuf
->written
;
1972 in_Rd
= FLD (in_Rd
);
1973 in_Rs
= FLD (in_Rs
);
1974 referenced
|= 1 << 0;
1975 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
1976 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
1983 model_crisv32_add_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
1985 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
1986 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1987 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1991 int UNUSED insn_referenced
= abuf
->written
;
1993 in_Rs
= FLD (in_Rs
);
1994 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1995 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
1999 int UNUSED insn_referenced
= abuf
->written
;
2000 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2004 int UNUSED insn_referenced
= abuf
->written
;
2008 in_Rd
= FLD (in_Rd
);
2009 in_Rs
= FLD (in_Rs
);
2010 referenced
|= 1 << 0;
2011 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2012 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2019 model_crisv32_addcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2021 #define FLD(f) abuf->fields.sfmt_addcbr.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
;
2028 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2032 int UNUSED insn_referenced
= abuf
->written
;
2036 in_Rd
= FLD (in_Rd
);
2037 referenced
|= 1 << 0;
2038 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2045 model_crisv32_addcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2047 #define FLD(f) abuf->fields.sfmt_addcwr.f
2048 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2049 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2053 int UNUSED insn_referenced
= abuf
->written
;
2054 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2058 int UNUSED insn_referenced
= abuf
->written
;
2062 in_Rd
= FLD (in_Rd
);
2063 referenced
|= 1 << 0;
2064 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2071 model_crisv32_addcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
2073 #define FLD(f) abuf->fields.sfmt_addcdr.f
2074 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2075 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2079 int UNUSED insn_referenced
= abuf
->written
;
2080 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
2084 int UNUSED insn_referenced
= abuf
->written
;
2088 in_Rd
= FLD (in_Rd
);
2089 referenced
|= 1 << 0;
2090 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2097 model_crisv32_adds_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2099 #define FLD(f) abuf->fields.sfmt_addc_m.f
2100 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2101 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2105 int UNUSED insn_referenced
= abuf
->written
;
2109 in_Rd
= FLD (in_Rd
);
2110 in_Rs
= FLD (in_Rs
);
2111 referenced
|= 1 << 0;
2112 referenced
|= 1 << 1;
2113 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2120 model_crisv32_adds_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2122 #define FLD(f) abuf->fields.sfmt_addc_m.f
2123 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2124 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2128 int UNUSED insn_referenced
= abuf
->written
;
2132 in_Rd
= FLD (in_Rd
);
2133 in_Rs
= FLD (in_Rs
);
2134 referenced
|= 1 << 0;
2135 referenced
|= 1 << 1;
2136 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2143 model_crisv32_adds_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2145 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2146 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2147 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2151 int UNUSED insn_referenced
= abuf
->written
;
2153 in_Rs
= FLD (in_Rs
);
2154 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2155 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2159 int UNUSED insn_referenced
= abuf
->written
;
2160 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2164 int UNUSED insn_referenced
= abuf
->written
;
2168 in_Rd
= FLD (in_Rd
);
2169 in_Rs
= FLD (in_Rs
);
2170 referenced
|= 1 << 0;
2171 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2172 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2179 model_crisv32_adds_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2181 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2182 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2183 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2187 int UNUSED insn_referenced
= abuf
->written
;
2189 in_Rs
= FLD (in_Rs
);
2190 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2191 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2195 int UNUSED insn_referenced
= abuf
->written
;
2196 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2200 int UNUSED insn_referenced
= abuf
->written
;
2204 in_Rd
= FLD (in_Rd
);
2205 in_Rs
= FLD (in_Rs
);
2206 referenced
|= 1 << 0;
2207 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2208 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2215 model_crisv32_addscbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2217 #define FLD(f) abuf->fields.sfmt_addcbr.f
2218 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2219 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2223 int UNUSED insn_referenced
= abuf
->written
;
2224 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2228 int UNUSED insn_referenced
= abuf
->written
;
2232 in_Rd
= FLD (in_Rd
);
2233 referenced
|= 1 << 0;
2234 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2241 model_crisv32_addscwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2243 #define FLD(f) abuf->fields.sfmt_addcwr.f
2244 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2245 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2249 int UNUSED insn_referenced
= abuf
->written
;
2250 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2254 int UNUSED insn_referenced
= abuf
->written
;
2258 in_Rd
= FLD (in_Rd
);
2259 referenced
|= 1 << 0;
2260 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2267 model_crisv32_addu_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2269 #define FLD(f) abuf->fields.sfmt_addc_m.f
2270 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2271 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2275 int UNUSED insn_referenced
= abuf
->written
;
2279 in_Rd
= FLD (in_Rd
);
2280 in_Rs
= FLD (in_Rs
);
2281 referenced
|= 1 << 0;
2282 referenced
|= 1 << 1;
2283 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2290 model_crisv32_addu_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2292 #define FLD(f) abuf->fields.sfmt_addc_m.f
2293 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2294 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2298 int UNUSED insn_referenced
= abuf
->written
;
2302 in_Rd
= FLD (in_Rd
);
2303 in_Rs
= FLD (in_Rs
);
2304 referenced
|= 1 << 0;
2305 referenced
|= 1 << 1;
2306 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2313 model_crisv32_addu_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2315 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2316 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2317 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2321 int UNUSED insn_referenced
= abuf
->written
;
2323 in_Rs
= FLD (in_Rs
);
2324 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2325 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2329 int UNUSED insn_referenced
= abuf
->written
;
2330 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2334 int UNUSED insn_referenced
= abuf
->written
;
2338 in_Rd
= FLD (in_Rd
);
2339 in_Rs
= FLD (in_Rs
);
2340 referenced
|= 1 << 0;
2341 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2342 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2349 model_crisv32_addu_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2351 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2352 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2353 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2357 int UNUSED insn_referenced
= abuf
->written
;
2359 in_Rs
= FLD (in_Rs
);
2360 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2361 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2365 int UNUSED insn_referenced
= abuf
->written
;
2366 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2370 int UNUSED insn_referenced
= abuf
->written
;
2374 in_Rd
= FLD (in_Rd
);
2375 in_Rs
= FLD (in_Rs
);
2376 referenced
|= 1 << 0;
2377 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2378 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2385 model_crisv32_adducbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2387 #define FLD(f) abuf->fields.sfmt_addcbr.f
2388 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2389 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2393 int UNUSED insn_referenced
= abuf
->written
;
2394 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2398 int UNUSED insn_referenced
= abuf
->written
;
2402 in_Rd
= FLD (in_Rd
);
2403 referenced
|= 1 << 0;
2404 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2411 model_crisv32_adducwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2413 #define FLD(f) abuf->fields.sfmt_addcwr.f
2414 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2415 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2419 int UNUSED insn_referenced
= abuf
->written
;
2420 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2424 int UNUSED insn_referenced
= abuf
->written
;
2428 in_Rd
= FLD (in_Rd
);
2429 referenced
|= 1 << 0;
2430 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2437 model_crisv32_sub_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2439 #define FLD(f) abuf->fields.sfmt_addc_m.f
2440 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2441 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2445 int UNUSED insn_referenced
= abuf
->written
;
2449 in_Rd
= FLD (in_Rd
);
2450 in_Rs
= FLD (in_Rs
);
2451 referenced
|= 1 << 0;
2452 referenced
|= 1 << 1;
2453 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2460 model_crisv32_sub_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2462 #define FLD(f) abuf->fields.sfmt_addc_m.f
2463 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2464 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2468 int UNUSED insn_referenced
= abuf
->written
;
2472 in_Rd
= FLD (in_Rd
);
2473 in_Rs
= FLD (in_Rs
);
2474 referenced
|= 1 << 0;
2475 referenced
|= 1 << 1;
2476 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2483 model_crisv32_sub_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2485 #define FLD(f) abuf->fields.sfmt_addc_m.f
2486 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2487 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2491 int UNUSED insn_referenced
= abuf
->written
;
2495 in_Rd
= FLD (in_Rd
);
2496 in_Rs
= FLD (in_Rs
);
2497 referenced
|= 1 << 0;
2498 referenced
|= 1 << 1;
2499 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2506 model_crisv32_sub_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2508 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2509 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2510 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2514 int UNUSED insn_referenced
= abuf
->written
;
2516 in_Rs
= FLD (in_Rs
);
2517 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2518 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2522 int UNUSED insn_referenced
= abuf
->written
;
2523 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2527 int UNUSED insn_referenced
= abuf
->written
;
2531 in_Rd
= FLD (in_Rd
);
2532 in_Rs
= FLD (in_Rs
);
2533 referenced
|= 1 << 0;
2534 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2535 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2542 model_crisv32_sub_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2544 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2545 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2546 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2550 int UNUSED insn_referenced
= abuf
->written
;
2552 in_Rs
= FLD (in_Rs
);
2553 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2554 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2558 int UNUSED insn_referenced
= abuf
->written
;
2559 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2563 int UNUSED insn_referenced
= abuf
->written
;
2567 in_Rd
= FLD (in_Rd
);
2568 in_Rs
= FLD (in_Rs
);
2569 referenced
|= 1 << 0;
2570 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2571 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2578 model_crisv32_sub_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2580 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2581 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2582 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2586 int UNUSED insn_referenced
= abuf
->written
;
2588 in_Rs
= FLD (in_Rs
);
2589 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2590 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2594 int UNUSED insn_referenced
= abuf
->written
;
2595 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2599 int UNUSED insn_referenced
= abuf
->written
;
2603 in_Rd
= FLD (in_Rd
);
2604 in_Rs
= FLD (in_Rs
);
2605 referenced
|= 1 << 0;
2606 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2607 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2614 model_crisv32_subcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2616 #define FLD(f) abuf->fields.sfmt_addcbr.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
;
2623 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2627 int UNUSED insn_referenced
= abuf
->written
;
2631 in_Rd
= FLD (in_Rd
);
2632 referenced
|= 1 << 0;
2633 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2640 model_crisv32_subcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2642 #define FLD(f) abuf->fields.sfmt_addcwr.f
2643 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2644 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2648 int UNUSED insn_referenced
= abuf
->written
;
2649 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2653 int UNUSED insn_referenced
= abuf
->written
;
2657 in_Rd
= FLD (in_Rd
);
2658 referenced
|= 1 << 0;
2659 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2666 model_crisv32_subcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
2668 #define FLD(f) abuf->fields.sfmt_addcdr.f
2669 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2670 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2674 int UNUSED insn_referenced
= abuf
->written
;
2675 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
2679 int UNUSED insn_referenced
= abuf
->written
;
2683 in_Rd
= FLD (in_Rd
);
2684 referenced
|= 1 << 0;
2685 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2692 model_crisv32_subs_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2694 #define FLD(f) abuf->fields.sfmt_addc_m.f
2695 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2696 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2700 int UNUSED insn_referenced
= abuf
->written
;
2704 in_Rd
= FLD (in_Rd
);
2705 in_Rs
= FLD (in_Rs
);
2706 referenced
|= 1 << 0;
2707 referenced
|= 1 << 1;
2708 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2715 model_crisv32_subs_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2717 #define FLD(f) abuf->fields.sfmt_addc_m.f
2718 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2719 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2723 int UNUSED insn_referenced
= abuf
->written
;
2727 in_Rd
= FLD (in_Rd
);
2728 in_Rs
= FLD (in_Rs
);
2729 referenced
|= 1 << 0;
2730 referenced
|= 1 << 1;
2731 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2738 model_crisv32_subs_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2740 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2741 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2742 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2746 int UNUSED insn_referenced
= abuf
->written
;
2748 in_Rs
= FLD (in_Rs
);
2749 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2750 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2754 int UNUSED insn_referenced
= abuf
->written
;
2755 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2759 int UNUSED insn_referenced
= abuf
->written
;
2763 in_Rd
= FLD (in_Rd
);
2764 in_Rs
= FLD (in_Rs
);
2765 referenced
|= 1 << 0;
2766 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2767 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2774 model_crisv32_subs_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2776 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2777 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2778 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2782 int UNUSED insn_referenced
= abuf
->written
;
2784 in_Rs
= FLD (in_Rs
);
2785 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2786 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2790 int UNUSED insn_referenced
= abuf
->written
;
2791 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2795 int UNUSED insn_referenced
= abuf
->written
;
2799 in_Rd
= FLD (in_Rd
);
2800 in_Rs
= FLD (in_Rs
);
2801 referenced
|= 1 << 0;
2802 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2803 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2810 model_crisv32_subscbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2812 #define FLD(f) abuf->fields.sfmt_addcbr.f
2813 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2814 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2818 int UNUSED insn_referenced
= abuf
->written
;
2819 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2823 int UNUSED insn_referenced
= abuf
->written
;
2827 in_Rd
= FLD (in_Rd
);
2828 referenced
|= 1 << 0;
2829 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2836 model_crisv32_subscwr (SIM_CPU
*current_cpu
, void *sem_arg
)
2838 #define FLD(f) abuf->fields.sfmt_addcwr.f
2839 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2840 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2844 int UNUSED insn_referenced
= abuf
->written
;
2845 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2849 int UNUSED insn_referenced
= abuf
->written
;
2853 in_Rd
= FLD (in_Rd
);
2854 referenced
|= 1 << 0;
2855 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
2862 model_crisv32_subu_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2864 #define FLD(f) abuf->fields.sfmt_addc_m.f
2865 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2866 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2870 int UNUSED insn_referenced
= abuf
->written
;
2874 in_Rd
= FLD (in_Rd
);
2875 in_Rs
= FLD (in_Rs
);
2876 referenced
|= 1 << 0;
2877 referenced
|= 1 << 1;
2878 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2885 model_crisv32_subu_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
2887 #define FLD(f) abuf->fields.sfmt_addc_m.f
2888 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2889 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2893 int UNUSED insn_referenced
= abuf
->written
;
2897 in_Rd
= FLD (in_Rd
);
2898 in_Rs
= FLD (in_Rs
);
2899 referenced
|= 1 << 0;
2900 referenced
|= 1 << 1;
2901 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
2908 model_crisv32_subu_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2910 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2911 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2912 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2916 int UNUSED insn_referenced
= abuf
->written
;
2918 in_Rs
= FLD (in_Rs
);
2919 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2920 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2924 int UNUSED insn_referenced
= abuf
->written
;
2925 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2929 int UNUSED insn_referenced
= abuf
->written
;
2933 in_Rd
= FLD (in_Rd
);
2934 in_Rs
= FLD (in_Rs
);
2935 referenced
|= 1 << 0;
2936 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2937 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2944 model_crisv32_subu_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
2946 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
2947 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2948 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2952 int UNUSED insn_referenced
= abuf
->written
;
2954 in_Rs
= FLD (in_Rs
);
2955 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2956 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
2960 int UNUSED insn_referenced
= abuf
->written
;
2961 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
2965 int UNUSED insn_referenced
= abuf
->written
;
2969 in_Rd
= FLD (in_Rd
);
2970 in_Rs
= FLD (in_Rs
);
2971 referenced
|= 1 << 0;
2972 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
2973 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
2980 model_crisv32_subucbr (SIM_CPU
*current_cpu
, void *sem_arg
)
2982 #define FLD(f) abuf->fields.sfmt_addcbr.f
2983 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2984 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2988 int UNUSED insn_referenced
= abuf
->written
;
2989 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
2993 int UNUSED insn_referenced
= abuf
->written
;
2997 in_Rd
= FLD (in_Rd
);
2998 referenced
|= 1 << 0;
2999 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3006 model_crisv32_subucwr (SIM_CPU
*current_cpu
, void *sem_arg
)
3008 #define FLD(f) abuf->fields.sfmt_addcwr.f
3009 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3010 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3014 int UNUSED insn_referenced
= abuf
->written
;
3015 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
3019 int UNUSED insn_referenced
= abuf
->written
;
3023 in_Rd
= FLD (in_Rd
);
3024 referenced
|= 1 << 0;
3025 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3032 model_crisv32_addc_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3034 #define FLD(f) abuf->fields.sfmt_addc_m.f
3035 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3036 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3040 int UNUSED insn_referenced
= abuf
->written
;
3044 in_Rd
= FLD (in_Rd
);
3045 in_Rs
= FLD (in_Rs
);
3046 referenced
|= 1 << 0;
3047 referenced
|= 1 << 1;
3048 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3055 model_crisv32_addc_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3057 #define FLD(f) abuf->fields.sfmt_addc_m.f
3058 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3059 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3063 int UNUSED insn_referenced
= abuf
->written
;
3065 in_Rs
= FLD (in_Rs
);
3066 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3067 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3071 int UNUSED insn_referenced
= abuf
->written
;
3072 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3076 int UNUSED insn_referenced
= abuf
->written
;
3080 in_Rd
= FLD (in_Rd
);
3081 in_Rs
= FLD (in_Rs
);
3082 referenced
|= 1 << 0;
3083 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3084 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3091 model_crisv32_addc_c (SIM_CPU
*current_cpu
, void *sem_arg
)
3093 #define FLD(f) abuf->fields.sfmt_addcdr.f
3094 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3095 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3099 int UNUSED insn_referenced
= abuf
->written
;
3100 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
3104 int UNUSED insn_referenced
= abuf
->written
;
3108 in_Rd
= FLD (in_Rd
);
3109 referenced
|= 1 << 0;
3110 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3117 model_crisv32_lapc_d (SIM_CPU
*current_cpu
, void *sem_arg
)
3119 #define FLD(f) abuf->fields.sfmt_lapc_d.f
3120 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3121 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3125 int UNUSED insn_referenced
= abuf
->written
;
3126 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
3130 int UNUSED insn_referenced
= abuf
->written
;
3134 out_Rd
= FLD (out_Rd
);
3135 referenced
|= 1 << 2;
3136 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3143 model_crisv32_lapcq (SIM_CPU
*current_cpu
, void *sem_arg
)
3145 #define FLD(f) abuf->fields.sfmt_lapcq.f
3146 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3147 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3151 int UNUSED insn_referenced
= abuf
->written
;
3155 out_Rd
= FLD (out_Rd
);
3156 referenced
|= 1 << 2;
3157 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3164 model_crisv32_addi_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3166 #define FLD(f) abuf->fields.sfmt_addc_m.f
3167 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3168 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3172 int UNUSED insn_referenced
= abuf
->written
;
3176 in_Rd
= FLD (in_Rd
);
3177 in_Rs
= FLD (in_Rs
);
3178 referenced
|= 1 << 0;
3179 referenced
|= 1 << 1;
3180 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3187 model_crisv32_addi_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3189 #define FLD(f) abuf->fields.sfmt_addc_m.f
3190 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3191 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3195 int UNUSED insn_referenced
= abuf
->written
;
3199 in_Rd
= FLD (in_Rd
);
3200 in_Rs
= FLD (in_Rs
);
3201 referenced
|= 1 << 0;
3202 referenced
|= 1 << 1;
3203 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3210 model_crisv32_addi_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3212 #define FLD(f) abuf->fields.sfmt_addc_m.f
3213 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3214 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3218 int UNUSED insn_referenced
= abuf
->written
;
3222 in_Rd
= FLD (in_Rd
);
3223 in_Rs
= FLD (in_Rs
);
3224 referenced
|= 1 << 0;
3225 referenced
|= 1 << 1;
3226 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3233 model_crisv32_neg_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3235 #define FLD(f) abuf->fields.sfmt_addc_m.f
3236 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3237 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3241 int UNUSED insn_referenced
= abuf
->written
;
3245 in_Rs
= FLD (in_Rs
);
3246 referenced
|= 1 << 1;
3247 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3254 model_crisv32_neg_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3256 #define FLD(f) abuf->fields.sfmt_addc_m.f
3257 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3258 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3262 int UNUSED insn_referenced
= abuf
->written
;
3266 in_Rs
= FLD (in_Rs
);
3267 referenced
|= 1 << 1;
3268 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3275 model_crisv32_neg_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3277 #define FLD(f) abuf->fields.sfmt_addc_m.f
3278 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3279 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3283 int UNUSED insn_referenced
= abuf
->written
;
3287 in_Rs
= FLD (in_Rs
);
3288 referenced
|= 1 << 1;
3289 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3296 model_crisv32_test_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3298 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3299 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3300 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3304 int UNUSED insn_referenced
= abuf
->written
;
3306 in_Rs
= FLD (in_Rs
);
3307 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
3308 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3312 int UNUSED insn_referenced
= abuf
->written
;
3313 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3317 int UNUSED insn_referenced
= abuf
->written
;
3321 in_Rs
= FLD (in_Rs
);
3322 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
3323 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3330 model_crisv32_test_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3332 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3333 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3334 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3338 int UNUSED insn_referenced
= abuf
->written
;
3340 in_Rs
= FLD (in_Rs
);
3341 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
3342 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3346 int UNUSED insn_referenced
= abuf
->written
;
3347 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3351 int UNUSED insn_referenced
= abuf
->written
;
3355 in_Rs
= FLD (in_Rs
);
3356 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
3357 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3364 model_crisv32_test_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3366 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
3367 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3368 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3372 int UNUSED insn_referenced
= abuf
->written
;
3374 in_Rs
= FLD (in_Rs
);
3375 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
3376 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3380 int UNUSED insn_referenced
= abuf
->written
;
3381 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3385 int UNUSED insn_referenced
= abuf
->written
;
3389 in_Rs
= FLD (in_Rs
);
3390 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
3391 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3398 model_crisv32_move_r_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3400 #define FLD(f) abuf->fields.sfmt_addc_m.f
3401 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3402 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3406 int UNUSED insn_referenced
= abuf
->written
;
3408 in_Rs
= FLD (in_Rs
);
3409 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3410 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3414 int UNUSED insn_referenced
= abuf
->written
;
3418 in_Rd
= FLD (in_Rd
);
3419 in_Rs
= FLD (in_Rs
);
3420 referenced
|= 1 << 0;
3421 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3422 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3426 int UNUSED insn_referenced
= abuf
->written
;
3427 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 2, referenced
);
3434 model_crisv32_move_r_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3436 #define FLD(f) abuf->fields.sfmt_addc_m.f
3437 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3438 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3442 int UNUSED insn_referenced
= abuf
->written
;
3444 in_Rs
= FLD (in_Rs
);
3445 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3446 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3450 int UNUSED insn_referenced
= abuf
->written
;
3454 in_Rd
= FLD (in_Rd
);
3455 in_Rs
= FLD (in_Rs
);
3456 referenced
|= 1 << 0;
3457 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3458 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3462 int UNUSED insn_referenced
= abuf
->written
;
3463 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 2, referenced
);
3470 model_crisv32_move_r_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3472 #define FLD(f) abuf->fields.sfmt_addc_m.f
3473 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3474 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3478 int UNUSED insn_referenced
= abuf
->written
;
3480 in_Rs
= FLD (in_Rs
);
3481 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3482 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3486 int UNUSED insn_referenced
= abuf
->written
;
3490 in_Rd
= FLD (in_Rd
);
3491 in_Rs
= FLD (in_Rs
);
3492 referenced
|= 1 << 0;
3493 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3494 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3498 int UNUSED insn_referenced
= abuf
->written
;
3499 cycles
+= crisv32f_model_crisv32_u_mem_w (current_cpu
, idesc
, 2, referenced
);
3506 model_crisv32_muls_b (SIM_CPU
*current_cpu
, void *sem_arg
)
3508 #define FLD(f) abuf->fields.sfmt_muls_b.f
3509 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3510 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3514 int UNUSED insn_referenced
= abuf
->written
;
3517 in_Rs
= FLD (in_Rs
);
3518 in_Rd
= FLD (in_Rd
);
3519 referenced
|= 1 << 0;
3520 referenced
|= 1 << 1;
3521 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3525 int UNUSED insn_referenced
= abuf
->written
;
3529 in_Rd
= FLD (in_Rd
);
3530 in_Rs
= FLD (in_Rs
);
3531 out_Rd
= FLD (out_Rd
);
3532 referenced
|= 1 << 0;
3533 referenced
|= 1 << 1;
3534 referenced
|= 1 << 2;
3535 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3542 model_crisv32_muls_w (SIM_CPU
*current_cpu
, void *sem_arg
)
3544 #define FLD(f) abuf->fields.sfmt_muls_b.f
3545 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3546 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3550 int UNUSED insn_referenced
= abuf
->written
;
3553 in_Rs
= FLD (in_Rs
);
3554 in_Rd
= FLD (in_Rd
);
3555 referenced
|= 1 << 0;
3556 referenced
|= 1 << 1;
3557 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3561 int UNUSED insn_referenced
= abuf
->written
;
3565 in_Rd
= FLD (in_Rd
);
3566 in_Rs
= FLD (in_Rs
);
3567 out_Rd
= FLD (out_Rd
);
3568 referenced
|= 1 << 0;
3569 referenced
|= 1 << 1;
3570 referenced
|= 1 << 2;
3571 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3578 model_crisv32_muls_d (SIM_CPU
*current_cpu
, void *sem_arg
)
3580 #define FLD(f) abuf->fields.sfmt_muls_b.f
3581 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3582 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3586 int UNUSED insn_referenced
= abuf
->written
;
3589 in_Rs
= FLD (in_Rs
);
3590 in_Rd
= FLD (in_Rd
);
3591 referenced
|= 1 << 0;
3592 referenced
|= 1 << 1;
3593 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3597 int UNUSED insn_referenced
= abuf
->written
;
3601 in_Rd
= FLD (in_Rd
);
3602 in_Rs
= FLD (in_Rs
);
3603 out_Rd
= FLD (out_Rd
);
3604 referenced
|= 1 << 0;
3605 referenced
|= 1 << 1;
3606 referenced
|= 1 << 2;
3607 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3614 model_crisv32_mulu_b (SIM_CPU
*current_cpu
, void *sem_arg
)
3616 #define FLD(f) abuf->fields.sfmt_muls_b.f
3617 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3618 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3622 int UNUSED insn_referenced
= abuf
->written
;
3625 in_Rs
= FLD (in_Rs
);
3626 in_Rd
= FLD (in_Rd
);
3627 referenced
|= 1 << 0;
3628 referenced
|= 1 << 1;
3629 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3633 int UNUSED insn_referenced
= abuf
->written
;
3637 in_Rd
= FLD (in_Rd
);
3638 in_Rs
= FLD (in_Rs
);
3639 out_Rd
= FLD (out_Rd
);
3640 referenced
|= 1 << 0;
3641 referenced
|= 1 << 1;
3642 referenced
|= 1 << 2;
3643 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3650 model_crisv32_mulu_w (SIM_CPU
*current_cpu
, void *sem_arg
)
3652 #define FLD(f) abuf->fields.sfmt_muls_b.f
3653 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3654 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3658 int UNUSED insn_referenced
= abuf
->written
;
3661 in_Rs
= FLD (in_Rs
);
3662 in_Rd
= FLD (in_Rd
);
3663 referenced
|= 1 << 0;
3664 referenced
|= 1 << 1;
3665 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3669 int UNUSED insn_referenced
= abuf
->written
;
3673 in_Rd
= FLD (in_Rd
);
3674 in_Rs
= FLD (in_Rs
);
3675 out_Rd
= FLD (out_Rd
);
3676 referenced
|= 1 << 0;
3677 referenced
|= 1 << 1;
3678 referenced
|= 1 << 2;
3679 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3686 model_crisv32_mulu_d (SIM_CPU
*current_cpu
, void *sem_arg
)
3688 #define FLD(f) abuf->fields.sfmt_muls_b.f
3689 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3690 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3694 int UNUSED insn_referenced
= abuf
->written
;
3697 in_Rs
= FLD (in_Rs
);
3698 in_Rd
= FLD (in_Rd
);
3699 referenced
|= 1 << 0;
3700 referenced
|= 1 << 1;
3701 cycles
+= crisv32f_model_crisv32_u_multiply (current_cpu
, idesc
, 0, referenced
, in_Rs
, in_Rd
);
3705 int UNUSED insn_referenced
= abuf
->written
;
3709 in_Rd
= FLD (in_Rd
);
3710 in_Rs
= FLD (in_Rs
);
3711 out_Rd
= FLD (out_Rd
);
3712 referenced
|= 1 << 0;
3713 referenced
|= 1 << 1;
3714 referenced
|= 1 << 2;
3715 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3722 model_crisv32_mcp (SIM_CPU
*current_cpu
, void *sem_arg
)
3724 #define FLD(f) abuf->fields.sfmt_mcp.f
3725 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3726 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3730 int UNUSED insn_referenced
= abuf
->written
;
3734 in_Rs
= FLD (in_Rs
);
3735 referenced
|= 1 << 1;
3736 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3743 model_crisv32_dstep (SIM_CPU
*current_cpu
, void *sem_arg
)
3745 #define FLD(f) abuf->fields.sfmt_muls_b.f
3746 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3747 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3751 int UNUSED insn_referenced
= abuf
->written
;
3755 in_Rd
= FLD (in_Rd
);
3756 in_Rs
= FLD (in_Rs
);
3757 out_Rd
= FLD (out_Rd
);
3758 referenced
|= 1 << 0;
3759 referenced
|= 1 << 1;
3760 referenced
|= 1 << 2;
3761 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3768 model_crisv32_abs (SIM_CPU
*current_cpu
, void *sem_arg
)
3770 #define FLD(f) abuf->fields.sfmt_muls_b.f
3771 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3772 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3776 int UNUSED insn_referenced
= abuf
->written
;
3780 in_Rs
= FLD (in_Rs
);
3781 out_Rd
= FLD (out_Rd
);
3782 referenced
|= 1 << 1;
3783 referenced
|= 1 << 2;
3784 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3791 model_crisv32_and_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3793 #define FLD(f) abuf->fields.sfmt_addc_m.f
3794 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3795 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3799 int UNUSED insn_referenced
= abuf
->written
;
3803 in_Rd
= FLD (in_Rd
);
3804 in_Rs
= FLD (in_Rs
);
3805 referenced
|= 1 << 0;
3806 referenced
|= 1 << 1;
3807 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3814 model_crisv32_and_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3816 #define FLD(f) abuf->fields.sfmt_addc_m.f
3817 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3818 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3822 int UNUSED insn_referenced
= abuf
->written
;
3826 in_Rd
= FLD (in_Rd
);
3827 in_Rs
= FLD (in_Rs
);
3828 referenced
|= 1 << 0;
3829 referenced
|= 1 << 1;
3830 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3837 model_crisv32_and_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
3839 #define FLD(f) abuf->fields.sfmt_addc_m.f
3840 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3841 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3845 int UNUSED insn_referenced
= abuf
->written
;
3849 in_Rd
= FLD (in_Rd
);
3850 in_Rs
= FLD (in_Rs
);
3851 referenced
|= 1 << 0;
3852 referenced
|= 1 << 1;
3853 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
3860 model_crisv32_and_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3862 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3863 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3864 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3868 int UNUSED insn_referenced
= abuf
->written
;
3870 in_Rs
= FLD (in_Rs
);
3871 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3872 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3876 int UNUSED insn_referenced
= abuf
->written
;
3877 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3881 int UNUSED insn_referenced
= abuf
->written
;
3885 in_Rd
= FLD (in_Rd
);
3886 in_Rs
= FLD (in_Rs
);
3887 referenced
|= 1 << 0;
3888 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3889 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3896 model_crisv32_and_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3898 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3899 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3900 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3904 int UNUSED insn_referenced
= abuf
->written
;
3906 in_Rs
= FLD (in_Rs
);
3907 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3908 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3912 int UNUSED insn_referenced
= abuf
->written
;
3913 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3917 int UNUSED insn_referenced
= abuf
->written
;
3921 in_Rd
= FLD (in_Rd
);
3922 in_Rs
= FLD (in_Rs
);
3923 referenced
|= 1 << 0;
3924 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3925 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3932 model_crisv32_and_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
3934 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
3935 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3936 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3940 int UNUSED insn_referenced
= abuf
->written
;
3942 in_Rs
= FLD (in_Rs
);
3943 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
3944 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
3948 int UNUSED insn_referenced
= abuf
->written
;
3949 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
3953 int UNUSED insn_referenced
= abuf
->written
;
3957 in_Rd
= FLD (in_Rd
);
3958 in_Rs
= FLD (in_Rs
);
3959 referenced
|= 1 << 0;
3960 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
3961 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
3968 model_crisv32_andcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
3970 #define FLD(f) abuf->fields.sfmt_addcbr.f
3971 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3972 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3976 int UNUSED insn_referenced
= abuf
->written
;
3977 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
3981 int UNUSED insn_referenced
= abuf
->written
;
3985 in_Rd
= FLD (in_Rd
);
3986 referenced
|= 1 << 0;
3987 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
3994 model_crisv32_andcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
3996 #define FLD(f) abuf->fields.sfmt_addcwr.f
3997 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3998 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4002 int UNUSED insn_referenced
= abuf
->written
;
4003 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
4007 int UNUSED insn_referenced
= abuf
->written
;
4011 in_Rd
= FLD (in_Rd
);
4012 referenced
|= 1 << 0;
4013 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4020 model_crisv32_andcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
4022 #define FLD(f) abuf->fields.sfmt_addcdr.f
4023 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4024 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4028 int UNUSED insn_referenced
= abuf
->written
;
4029 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
4033 int UNUSED insn_referenced
= abuf
->written
;
4037 in_Rd
= FLD (in_Rd
);
4038 referenced
|= 1 << 0;
4039 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4046 model_crisv32_andq (SIM_CPU
*current_cpu
, void *sem_arg
)
4048 #define FLD(f) abuf->fields.sfmt_andq.f
4049 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4050 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4054 int UNUSED insn_referenced
= abuf
->written
;
4058 in_Rd
= FLD (in_Rd
);
4059 referenced
|= 1 << 0;
4060 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4067 model_crisv32_orr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4069 #define FLD(f) abuf->fields.sfmt_addc_m.f
4070 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4071 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4075 int UNUSED insn_referenced
= abuf
->written
;
4079 in_Rd
= FLD (in_Rd
);
4080 in_Rs
= FLD (in_Rs
);
4081 referenced
|= 1 << 0;
4082 referenced
|= 1 << 1;
4083 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4090 model_crisv32_orr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4092 #define FLD(f) abuf->fields.sfmt_addc_m.f
4093 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4094 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4098 int UNUSED insn_referenced
= abuf
->written
;
4102 in_Rd
= FLD (in_Rd
);
4103 in_Rs
= FLD (in_Rs
);
4104 referenced
|= 1 << 0;
4105 referenced
|= 1 << 1;
4106 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4113 model_crisv32_orr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4115 #define FLD(f) abuf->fields.sfmt_addc_m.f
4116 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4117 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4121 int UNUSED insn_referenced
= abuf
->written
;
4125 in_Rd
= FLD (in_Rd
);
4126 in_Rs
= FLD (in_Rs
);
4127 referenced
|= 1 << 0;
4128 referenced
|= 1 << 1;
4129 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4136 model_crisv32_or_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
4138 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4139 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4140 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4144 int UNUSED insn_referenced
= abuf
->written
;
4146 in_Rs
= FLD (in_Rs
);
4147 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
4148 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
4152 int UNUSED insn_referenced
= abuf
->written
;
4153 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
4157 int UNUSED insn_referenced
= abuf
->written
;
4161 in_Rd
= FLD (in_Rd
);
4162 in_Rs
= FLD (in_Rs
);
4163 referenced
|= 1 << 0;
4164 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
4165 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4172 model_crisv32_or_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
4174 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4175 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4176 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4180 int UNUSED insn_referenced
= abuf
->written
;
4182 in_Rs
= FLD (in_Rs
);
4183 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
4184 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
4188 int UNUSED insn_referenced
= abuf
->written
;
4189 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
4193 int UNUSED insn_referenced
= abuf
->written
;
4197 in_Rd
= FLD (in_Rd
);
4198 in_Rs
= FLD (in_Rs
);
4199 referenced
|= 1 << 0;
4200 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
4201 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4208 model_crisv32_or_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
4210 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
4211 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4212 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4216 int UNUSED insn_referenced
= abuf
->written
;
4218 in_Rs
= FLD (in_Rs
);
4219 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
4220 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
4224 int UNUSED insn_referenced
= abuf
->written
;
4225 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
4229 int UNUSED insn_referenced
= abuf
->written
;
4233 in_Rd
= FLD (in_Rd
);
4234 in_Rs
= FLD (in_Rs
);
4235 referenced
|= 1 << 0;
4236 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
4237 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4244 model_crisv32_orcbr (SIM_CPU
*current_cpu
, void *sem_arg
)
4246 #define FLD(f) abuf->fields.sfmt_addcbr.f
4247 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4248 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4252 int UNUSED insn_referenced
= abuf
->written
;
4253 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
4257 int UNUSED insn_referenced
= abuf
->written
;
4261 in_Rd
= FLD (in_Rd
);
4262 referenced
|= 1 << 0;
4263 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4270 model_crisv32_orcwr (SIM_CPU
*current_cpu
, void *sem_arg
)
4272 #define FLD(f) abuf->fields.sfmt_addcwr.f
4273 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4274 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4278 int UNUSED insn_referenced
= abuf
->written
;
4279 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
4283 int UNUSED insn_referenced
= abuf
->written
;
4287 in_Rd
= FLD (in_Rd
);
4288 referenced
|= 1 << 0;
4289 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4296 model_crisv32_orcdr (SIM_CPU
*current_cpu
, void *sem_arg
)
4298 #define FLD(f) abuf->fields.sfmt_addcdr.f
4299 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4300 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4304 int UNUSED insn_referenced
= abuf
->written
;
4305 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
4309 int UNUSED insn_referenced
= abuf
->written
;
4313 in_Rd
= FLD (in_Rd
);
4314 referenced
|= 1 << 0;
4315 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4322 model_crisv32_orq (SIM_CPU
*current_cpu
, void *sem_arg
)
4324 #define FLD(f) abuf->fields.sfmt_andq.f
4325 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4326 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4330 int UNUSED insn_referenced
= abuf
->written
;
4334 in_Rd
= FLD (in_Rd
);
4335 referenced
|= 1 << 0;
4336 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4343 model_crisv32_xor (SIM_CPU
*current_cpu
, void *sem_arg
)
4345 #define FLD(f) abuf->fields.sfmt_muls_b.f
4346 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4347 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4351 int UNUSED insn_referenced
= abuf
->written
;
4355 in_Rd
= FLD (in_Rd
);
4356 in_Rs
= FLD (in_Rs
);
4357 out_Rd
= FLD (out_Rd
);
4358 referenced
|= 1 << 0;
4359 referenced
|= 1 << 1;
4360 referenced
|= 1 << 2;
4361 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4368 model_crisv32_swap (SIM_CPU
*current_cpu
, void *sem_arg
)
4370 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
4371 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4372 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4376 int UNUSED insn_referenced
= abuf
->written
;
4380 in_Rs
= FLD (in_Rs
);
4381 referenced
|= 1 << 1;
4382 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4389 model_crisv32_asrr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4391 #define FLD(f) abuf->fields.sfmt_addc_m.f
4392 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4393 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4397 int UNUSED insn_referenced
= abuf
->written
;
4401 in_Rd
= FLD (in_Rd
);
4402 in_Rs
= FLD (in_Rs
);
4403 referenced
|= 1 << 0;
4404 referenced
|= 1 << 1;
4405 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4412 model_crisv32_asrr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4414 #define FLD(f) abuf->fields.sfmt_addc_m.f
4415 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4416 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4420 int UNUSED insn_referenced
= abuf
->written
;
4424 in_Rd
= FLD (in_Rd
);
4425 in_Rs
= FLD (in_Rs
);
4426 referenced
|= 1 << 0;
4427 referenced
|= 1 << 1;
4428 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4435 model_crisv32_asrr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4437 #define FLD(f) abuf->fields.sfmt_addc_m.f
4438 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4439 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4443 int UNUSED insn_referenced
= abuf
->written
;
4447 in_Rd
= FLD (in_Rd
);
4448 in_Rs
= FLD (in_Rs
);
4449 referenced
|= 1 << 0;
4450 referenced
|= 1 << 1;
4451 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4458 model_crisv32_asrq (SIM_CPU
*current_cpu
, void *sem_arg
)
4460 #define FLD(f) abuf->fields.sfmt_asrq.f
4461 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4462 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4466 int UNUSED insn_referenced
= abuf
->written
;
4470 in_Rd
= FLD (in_Rd
);
4471 out_Rd
= FLD (out_Rd
);
4472 referenced
|= 1 << 0;
4473 referenced
|= 1 << 2;
4474 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4481 model_crisv32_lsrr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4483 #define FLD(f) abuf->fields.sfmt_addc_m.f
4484 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4485 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4489 int UNUSED insn_referenced
= abuf
->written
;
4493 in_Rd
= FLD (in_Rd
);
4494 in_Rs
= FLD (in_Rs
);
4495 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4496 referenced
|= 1 << 1;
4497 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4504 model_crisv32_lsrr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4506 #define FLD(f) abuf->fields.sfmt_addc_m.f
4507 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4508 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4512 int UNUSED insn_referenced
= abuf
->written
;
4516 in_Rd
= FLD (in_Rd
);
4517 in_Rs
= FLD (in_Rs
);
4518 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4519 referenced
|= 1 << 1;
4520 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4527 model_crisv32_lsrr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4529 #define FLD(f) abuf->fields.sfmt_addc_m.f
4530 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4531 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4535 int UNUSED insn_referenced
= abuf
->written
;
4539 in_Rd
= FLD (in_Rd
);
4540 in_Rs
= FLD (in_Rs
);
4541 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4542 referenced
|= 1 << 1;
4543 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4550 model_crisv32_lsrq (SIM_CPU
*current_cpu
, void *sem_arg
)
4552 #define FLD(f) abuf->fields.sfmt_asrq.f
4553 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4554 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4558 int UNUSED insn_referenced
= abuf
->written
;
4562 in_Rd
= FLD (in_Rd
);
4563 out_Rd
= FLD (out_Rd
);
4564 referenced
|= 1 << 0;
4565 referenced
|= 1 << 2;
4566 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4573 model_crisv32_lslr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4575 #define FLD(f) abuf->fields.sfmt_addc_m.f
4576 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4577 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4581 int UNUSED insn_referenced
= abuf
->written
;
4585 in_Rd
= FLD (in_Rd
);
4586 in_Rs
= FLD (in_Rs
);
4587 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4588 referenced
|= 1 << 1;
4589 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4596 model_crisv32_lslr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4598 #define FLD(f) abuf->fields.sfmt_addc_m.f
4599 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4600 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4604 int UNUSED insn_referenced
= abuf
->written
;
4608 in_Rd
= FLD (in_Rd
);
4609 in_Rs
= FLD (in_Rs
);
4610 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4611 referenced
|= 1 << 1;
4612 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4619 model_crisv32_lslr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4621 #define FLD(f) abuf->fields.sfmt_addc_m.f
4622 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4623 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4627 int UNUSED insn_referenced
= abuf
->written
;
4631 in_Rd
= FLD (in_Rd
);
4632 in_Rs
= FLD (in_Rs
);
4633 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 0;
4634 referenced
|= 1 << 1;
4635 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4642 model_crisv32_lslq (SIM_CPU
*current_cpu
, void *sem_arg
)
4644 #define FLD(f) abuf->fields.sfmt_asrq.f
4645 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4646 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4650 int UNUSED insn_referenced
= abuf
->written
;
4654 in_Rd
= FLD (in_Rd
);
4655 out_Rd
= FLD (out_Rd
);
4656 referenced
|= 1 << 0;
4657 referenced
|= 1 << 2;
4658 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4665 model_crisv32_btst (SIM_CPU
*current_cpu
, void *sem_arg
)
4667 #define FLD(f) abuf->fields.sfmt_muls_b.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 in_Rd
= FLD (in_Rd
);
4678 in_Rs
= FLD (in_Rs
);
4679 referenced
|= 1 << 0;
4680 referenced
|= 1 << 1;
4681 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4688 model_crisv32_btstq (SIM_CPU
*current_cpu
, void *sem_arg
)
4690 #define FLD(f) abuf->fields.sfmt_asrq.f
4691 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4692 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4696 int UNUSED insn_referenced
= abuf
->written
;
4700 in_Rd
= FLD (in_Rd
);
4701 referenced
|= 1 << 0;
4702 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4709 model_crisv32_setf (SIM_CPU
*current_cpu
, void *sem_arg
)
4711 #define FLD(f) abuf->fields.sfmt_setf.f
4712 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4713 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4717 int UNUSED insn_referenced
= abuf
->written
;
4721 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4728 model_crisv32_clearf (SIM_CPU
*current_cpu
, void *sem_arg
)
4730 #define FLD(f) abuf->fields.sfmt_setf.f
4731 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4732 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4736 int UNUSED insn_referenced
= abuf
->written
;
4740 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4747 model_crisv32_rfe (SIM_CPU
*current_cpu
, void *sem_arg
)
4749 #define FLD(f) abuf->fields.sfmt_rfe.f
4750 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4751 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4755 int UNUSED insn_referenced
= abuf
->written
;
4759 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4766 model_crisv32_sfe (SIM_CPU
*current_cpu
, void *sem_arg
)
4768 #define FLD(f) abuf->fields.sfmt_rfe.f
4769 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4770 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4774 int UNUSED insn_referenced
= abuf
->written
;
4778 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4785 model_crisv32_rfg (SIM_CPU
*current_cpu
, void *sem_arg
)
4787 #define FLD(f) abuf->fields.fmt_empty.f
4788 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4789 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4793 int UNUSED insn_referenced
= abuf
->written
;
4797 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4804 model_crisv32_rfn (SIM_CPU
*current_cpu
, void *sem_arg
)
4806 #define FLD(f) abuf->fields.sfmt_rfe.f
4807 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4808 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4812 int UNUSED insn_referenced
= abuf
->written
;
4816 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4823 model_crisv32_halt (SIM_CPU
*current_cpu
, void *sem_arg
)
4825 #define FLD(f) abuf->fields.fmt_empty.f
4826 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4827 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4831 int UNUSED insn_referenced
= abuf
->written
;
4835 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
4842 model_crisv32_bcc_b (SIM_CPU
*current_cpu
, void *sem_arg
)
4844 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4845 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4846 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4850 int UNUSED insn_referenced
= abuf
->written
;
4851 cycles
+= crisv32f_model_crisv32_u_branch (current_cpu
, idesc
, 0, referenced
);
4855 int UNUSED insn_referenced
= abuf
->written
;
4859 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4866 model_crisv32_ba_b (SIM_CPU
*current_cpu
, void *sem_arg
)
4868 #define FLD(f) abuf->fields.sfmt_bcc_b.f
4869 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4870 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4874 int UNUSED insn_referenced
= abuf
->written
;
4876 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 0, referenced
, out_Pd
);
4880 int UNUSED insn_referenced
= abuf
->written
;
4884 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
4891 model_crisv32_bcc_w (SIM_CPU
*current_cpu
, void *sem_arg
)
4893 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4894 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4895 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4899 int UNUSED insn_referenced
= abuf
->written
;
4900 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
4904 int UNUSED insn_referenced
= abuf
->written
;
4905 cycles
+= crisv32f_model_crisv32_u_branch (current_cpu
, idesc
, 1, referenced
);
4909 int UNUSED insn_referenced
= abuf
->written
;
4913 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4920 model_crisv32_ba_w (SIM_CPU
*current_cpu
, void *sem_arg
)
4922 #define FLD(f) abuf->fields.sfmt_bcc_w.f
4923 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4924 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4928 int UNUSED insn_referenced
= abuf
->written
;
4929 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
4933 int UNUSED insn_referenced
= abuf
->written
;
4935 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 1, referenced
, out_Pd
);
4939 int UNUSED insn_referenced
= abuf
->written
;
4943 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4950 model_crisv32_jas_r (SIM_CPU
*current_cpu
, void *sem_arg
)
4952 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
4953 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4954 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4958 int UNUSED insn_referenced
= abuf
->written
;
4960 in_Rs
= FLD (in_Rs
);
4961 referenced
|= 1 << 0;
4962 cycles
+= crisv32f_model_crisv32_u_jump_r (current_cpu
, idesc
, 0, referenced
, in_Rs
);
4966 int UNUSED insn_referenced
= abuf
->written
;
4968 out_Pd
= FLD (out_Pd
);
4969 referenced
|= 1 << 0;
4970 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 1, referenced
, out_Pd
);
4974 int UNUSED insn_referenced
= abuf
->written
;
4978 in_Rs
= FLD (in_Rs
);
4979 referenced
|= 1 << 1;
4980 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
4987 model_crisv32_jas_c (SIM_CPU
*current_cpu
, void *sem_arg
)
4989 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
4990 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
4991 const IDESC
* UNUSED idesc
= abuf
->idesc
;
4995 int UNUSED insn_referenced
= abuf
->written
;
4996 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5000 int UNUSED insn_referenced
= abuf
->written
;
5002 out_Pd
= FLD (out_Pd
);
5003 referenced
|= 1 << 0;
5004 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 1, referenced
, out_Pd
);
5008 int UNUSED insn_referenced
= abuf
->written
;
5012 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
5019 model_crisv32_jump_p (SIM_CPU
*current_cpu
, void *sem_arg
)
5021 #define FLD(f) abuf->fields.sfmt_mcp.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
;
5029 in_Ps
= FLD (in_Ps
);
5030 referenced
|= 1 << 0;
5031 cycles
+= crisv32f_model_crisv32_u_jump_sr (current_cpu
, idesc
, 0, referenced
, in_Ps
);
5035 int UNUSED insn_referenced
= abuf
->written
;
5039 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5046 model_crisv32_bas_c (SIM_CPU
*current_cpu
, void *sem_arg
)
5048 #define FLD(f) abuf->fields.sfmt_bas_c.f
5049 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5050 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5054 int UNUSED insn_referenced
= abuf
->written
;
5055 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5059 int UNUSED insn_referenced
= abuf
->written
;
5061 out_Pd
= FLD (out_Pd
);
5062 referenced
|= 1 << 0;
5063 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 1, referenced
, out_Pd
);
5067 int UNUSED insn_referenced
= abuf
->written
;
5071 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
5078 model_crisv32_jasc_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5080 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
5081 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5082 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5086 int UNUSED insn_referenced
= abuf
->written
;
5088 in_Rs
= FLD (in_Rs
);
5089 referenced
|= 1 << 0;
5090 cycles
+= crisv32f_model_crisv32_u_jump_r (current_cpu
, idesc
, 0, referenced
, in_Rs
);
5094 int UNUSED insn_referenced
= abuf
->written
;
5095 cycles
+= crisv32f_model_crisv32_u_skip4 (current_cpu
, idesc
, 1, referenced
);
5099 int UNUSED insn_referenced
= abuf
->written
;
5101 out_Pd
= FLD (out_Pd
);
5102 referenced
|= 1 << 0;
5103 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 2, referenced
, out_Pd
);
5107 int UNUSED insn_referenced
= abuf
->written
;
5111 in_Rs
= FLD (in_Rs
);
5112 referenced
|= 1 << 1;
5113 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 3, referenced
, in_Rd
, in_Rs
, out_Rd
);
5120 model_crisv32_jasc_c (SIM_CPU
*current_cpu
, void *sem_arg
)
5122 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p0.f
5123 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5124 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5128 int UNUSED insn_referenced
= abuf
->written
;
5129 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5133 int UNUSED insn_referenced
= abuf
->written
;
5134 cycles
+= crisv32f_model_crisv32_u_skip4 (current_cpu
, idesc
, 1, referenced
);
5138 int UNUSED insn_referenced
= abuf
->written
;
5140 out_Pd
= FLD (out_Pd
);
5141 referenced
|= 1 << 0;
5142 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 2, referenced
, out_Pd
);
5146 int UNUSED insn_referenced
= abuf
->written
;
5150 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 3, referenced
, in_Rd
, in_Rs
, out_Rd
);
5157 model_crisv32_basc_c (SIM_CPU
*current_cpu
, void *sem_arg
)
5159 #define FLD(f) abuf->fields.sfmt_bas_c.f
5160 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5161 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5165 int UNUSED insn_referenced
= abuf
->written
;
5166 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5170 int UNUSED insn_referenced
= abuf
->written
;
5171 cycles
+= crisv32f_model_crisv32_u_skip4 (current_cpu
, idesc
, 1, referenced
);
5175 int UNUSED insn_referenced
= abuf
->written
;
5177 out_Pd
= FLD (out_Pd
);
5178 referenced
|= 1 << 0;
5179 cycles
+= crisv32f_model_crisv32_u_jump (current_cpu
, idesc
, 2, referenced
, out_Pd
);
5183 int UNUSED insn_referenced
= abuf
->written
;
5187 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 3, referenced
, in_Rd
, in_Rs
, out_Rd
);
5194 model_crisv32_break (SIM_CPU
*current_cpu
, void *sem_arg
)
5196 #define FLD(f) abuf->fields.sfmt_break.f
5197 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5198 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5202 int UNUSED insn_referenced
= abuf
->written
;
5206 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5213 model_crisv32_bound_r_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5215 #define FLD(f) abuf->fields.sfmt_muls_b.f
5216 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5217 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5221 int UNUSED insn_referenced
= abuf
->written
;
5225 in_Rd
= FLD (in_Rd
);
5226 in_Rs
= FLD (in_Rs
);
5227 out_Rd
= FLD (out_Rd
);
5228 referenced
|= 1 << 0;
5229 referenced
|= 1 << 1;
5230 referenced
|= 1 << 2;
5231 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5238 model_crisv32_bound_r_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5240 #define FLD(f) abuf->fields.sfmt_muls_b.f
5241 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5242 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5246 int UNUSED insn_referenced
= abuf
->written
;
5250 in_Rd
= FLD (in_Rd
);
5251 in_Rs
= FLD (in_Rs
);
5252 out_Rd
= FLD (out_Rd
);
5253 referenced
|= 1 << 0;
5254 referenced
|= 1 << 1;
5255 referenced
|= 1 << 2;
5256 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5263 model_crisv32_bound_r_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5265 #define FLD(f) abuf->fields.sfmt_muls_b.f
5266 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5267 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5271 int UNUSED insn_referenced
= abuf
->written
;
5275 in_Rd
= FLD (in_Rd
);
5276 in_Rs
= FLD (in_Rs
);
5277 out_Rd
= FLD (out_Rd
);
5278 referenced
|= 1 << 0;
5279 referenced
|= 1 << 1;
5280 referenced
|= 1 << 2;
5281 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5288 model_crisv32_bound_cb (SIM_CPU
*current_cpu
, void *sem_arg
)
5290 #define FLD(f) abuf->fields.sfmt_bound_cb.f
5291 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5292 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5296 int UNUSED insn_referenced
= abuf
->written
;
5297 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
5301 int UNUSED insn_referenced
= abuf
->written
;
5305 in_Rd
= FLD (in_Rd
);
5306 out_Rd
= FLD (out_Rd
);
5307 referenced
|= 1 << 0;
5308 referenced
|= 1 << 2;
5309 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5316 model_crisv32_bound_cw (SIM_CPU
*current_cpu
, void *sem_arg
)
5318 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5319 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5320 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5324 int UNUSED insn_referenced
= abuf
->written
;
5325 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
5329 int UNUSED insn_referenced
= abuf
->written
;
5333 in_Rd
= FLD (in_Rd
);
5334 out_Rd
= FLD (out_Rd
);
5335 referenced
|= 1 << 0;
5336 referenced
|= 1 << 2;
5337 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5344 model_crisv32_bound_cd (SIM_CPU
*current_cpu
, void *sem_arg
)
5346 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5347 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5348 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5352 int UNUSED insn_referenced
= abuf
->written
;
5353 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5357 int UNUSED insn_referenced
= abuf
->written
;
5361 in_Rd
= FLD (in_Rd
);
5362 out_Rd
= FLD (out_Rd
);
5363 referenced
|= 1 << 0;
5364 referenced
|= 1 << 2;
5365 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5372 model_crisv32_scc (SIM_CPU
*current_cpu
, void *sem_arg
)
5374 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
5375 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5376 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5380 int UNUSED insn_referenced
= abuf
->written
;
5384 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5391 model_crisv32_lz (SIM_CPU
*current_cpu
, void *sem_arg
)
5393 #define FLD(f) abuf->fields.sfmt_muls_b.f
5394 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5395 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5399 int UNUSED insn_referenced
= abuf
->written
;
5403 in_Rs
= FLD (in_Rs
);
5404 out_Rd
= FLD (out_Rd
);
5405 referenced
|= 1 << 1;
5406 referenced
|= 1 << 2;
5407 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5414 model_crisv32_addoq (SIM_CPU
*current_cpu
, void *sem_arg
)
5416 #define FLD(f) abuf->fields.sfmt_addoq.f
5417 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5418 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5422 int UNUSED insn_referenced
= abuf
->written
;
5426 in_Rd
= FLD (in_Rd
);
5427 referenced
|= 1 << 0;
5428 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5435 model_crisv32_addo_m_b_m (SIM_CPU
*current_cpu
, void *sem_arg
)
5437 #define FLD(f) abuf->fields.sfmt_addc_m.f
5438 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5439 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5443 int UNUSED insn_referenced
= abuf
->written
;
5445 in_Rs
= FLD (in_Rs
);
5446 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
5447 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
5451 int UNUSED insn_referenced
= abuf
->written
;
5452 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
5456 int UNUSED insn_referenced
= abuf
->written
;
5460 in_Rd
= FLD (in_Rd
);
5461 in_Rs
= FLD (in_Rs
);
5462 referenced
|= 1 << 0;
5463 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
5464 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
5471 model_crisv32_addo_m_w_m (SIM_CPU
*current_cpu
, void *sem_arg
)
5473 #define FLD(f) abuf->fields.sfmt_addc_m.f
5474 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5475 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5479 int UNUSED insn_referenced
= abuf
->written
;
5481 in_Rs
= FLD (in_Rs
);
5482 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
5483 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
5487 int UNUSED insn_referenced
= abuf
->written
;
5488 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
5492 int UNUSED insn_referenced
= abuf
->written
;
5496 in_Rd
= FLD (in_Rd
);
5497 in_Rs
= FLD (in_Rs
);
5498 referenced
|= 1 << 0;
5499 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
5500 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
5507 model_crisv32_addo_m_d_m (SIM_CPU
*current_cpu
, void *sem_arg
)
5509 #define FLD(f) abuf->fields.sfmt_addc_m.f
5510 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5511 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5515 int UNUSED insn_referenced
= abuf
->written
;
5517 in_Rs
= FLD (in_Rs
);
5518 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
5519 cycles
+= crisv32f_model_crisv32_u_mem (current_cpu
, idesc
, 0, referenced
, in_Rs
);
5523 int UNUSED insn_referenced
= abuf
->written
;
5524 cycles
+= crisv32f_model_crisv32_u_mem_r (current_cpu
, idesc
, 1, referenced
);
5528 int UNUSED insn_referenced
= abuf
->written
;
5532 in_Rd
= FLD (in_Rd
);
5533 in_Rs
= FLD (in_Rs
);
5534 referenced
|= 1 << 0;
5535 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 1;
5536 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 2, referenced
, in_Rd
, in_Rs
, out_Rd
);
5543 model_crisv32_addo_cb (SIM_CPU
*current_cpu
, void *sem_arg
)
5545 #define FLD(f) abuf->fields.sfmt_bound_cb.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
;
5552 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
5556 int UNUSED insn_referenced
= abuf
->written
;
5560 in_Rd
= FLD (in_Rd
);
5561 referenced
|= 1 << 0;
5562 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5569 model_crisv32_addo_cw (SIM_CPU
*current_cpu
, void *sem_arg
)
5571 #define FLD(f) abuf->fields.sfmt_bound_cw.f
5572 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5573 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5577 int UNUSED insn_referenced
= abuf
->written
;
5578 cycles
+= crisv32f_model_crisv32_u_const16 (current_cpu
, idesc
, 0, referenced
);
5582 int UNUSED insn_referenced
= abuf
->written
;
5586 in_Rd
= FLD (in_Rd
);
5587 referenced
|= 1 << 0;
5588 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5595 model_crisv32_addo_cd (SIM_CPU
*current_cpu
, void *sem_arg
)
5597 #define FLD(f) abuf->fields.sfmt_bound_cd.f
5598 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5599 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5603 int UNUSED insn_referenced
= abuf
->written
;
5604 cycles
+= crisv32f_model_crisv32_u_const32 (current_cpu
, idesc
, 0, referenced
);
5608 int UNUSED insn_referenced
= abuf
->written
;
5612 in_Rd
= FLD (in_Rd
);
5613 referenced
|= 1 << 0;
5614 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 1, referenced
, in_Rd
, in_Rs
, out_Rd
);
5621 model_crisv32_addi_acr_b_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5623 #define FLD(f) abuf->fields.sfmt_muls_b.f
5624 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5625 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5629 int UNUSED insn_referenced
= abuf
->written
;
5633 in_Rd
= FLD (in_Rd
);
5634 in_Rs
= FLD (in_Rs
);
5635 referenced
|= 1 << 0;
5636 referenced
|= 1 << 1;
5637 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5644 model_crisv32_addi_acr_w_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5646 #define FLD(f) abuf->fields.sfmt_muls_b.f
5647 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5648 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5652 int UNUSED insn_referenced
= abuf
->written
;
5656 in_Rd
= FLD (in_Rd
);
5657 in_Rs
= FLD (in_Rs
);
5658 referenced
|= 1 << 0;
5659 referenced
|= 1 << 1;
5660 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5667 model_crisv32_addi_acr_d_r (SIM_CPU
*current_cpu
, void *sem_arg
)
5669 #define FLD(f) abuf->fields.sfmt_muls_b.f
5670 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5671 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5675 int UNUSED insn_referenced
= abuf
->written
;
5679 in_Rd
= FLD (in_Rd
);
5680 in_Rs
= FLD (in_Rs
);
5681 referenced
|= 1 << 0;
5682 referenced
|= 1 << 1;
5683 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5690 model_crisv32_fidxi (SIM_CPU
*current_cpu
, void *sem_arg
)
5692 #define FLD(f) abuf->fields.sfmt_mcp.f
5693 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5694 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5698 int UNUSED insn_referenced
= abuf
->written
;
5702 in_Rs
= FLD (in_Rs
);
5703 referenced
|= 1 << 1;
5704 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5711 model_crisv32_ftagi (SIM_CPU
*current_cpu
, void *sem_arg
)
5713 #define FLD(f) abuf->fields.sfmt_mcp.f
5714 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5715 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5719 int UNUSED insn_referenced
= abuf
->written
;
5723 in_Rs
= FLD (in_Rs
);
5724 referenced
|= 1 << 1;
5725 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5732 model_crisv32_fidxd (SIM_CPU
*current_cpu
, void *sem_arg
)
5734 #define FLD(f) abuf->fields.sfmt_mcp.f
5735 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5736 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5740 int UNUSED insn_referenced
= abuf
->written
;
5744 in_Rs
= FLD (in_Rs
);
5745 referenced
|= 1 << 1;
5746 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5753 model_crisv32_ftagd (SIM_CPU
*current_cpu
, void *sem_arg
)
5755 #define FLD(f) abuf->fields.sfmt_mcp.f
5756 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
5757 const IDESC
* UNUSED idesc
= abuf
->idesc
;
5761 int UNUSED insn_referenced
= abuf
->written
;
5765 in_Rs
= FLD (in_Rs
);
5766 referenced
|= 1 << 1;
5767 cycles
+= crisv32f_model_crisv32_u_exec (current_cpu
, idesc
, 0, referenced
, in_Rd
, in_Rs
, out_Rd
);
5773 /* We assume UNIT_NONE == 0 because the tables don't always terminate
5776 /* Model timing data for `crisv32'. */
5778 static const INSN_TIMING crisv32_timing
[] = {
5779 { CRISV32F_INSN_X_INVALID
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5780 { CRISV32F_INSN_X_AFTER
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5781 { CRISV32F_INSN_X_BEFORE
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5782 { CRISV32F_INSN_X_CTI_CHAIN
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5783 { CRISV32F_INSN_X_CHAIN
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5784 { CRISV32F_INSN_X_BEGIN
, 0, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5785 { CRISV32F_INSN_MOVE_B_R
, model_crisv32_move_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5786 { CRISV32F_INSN_MOVE_W_R
, model_crisv32_move_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5787 { CRISV32F_INSN_MOVE_D_R
, model_crisv32_move_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5788 { CRISV32F_INSN_MOVEQ
, model_crisv32_moveq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5789 { CRISV32F_INSN_MOVS_B_R
, model_crisv32_movs_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5790 { CRISV32F_INSN_MOVS_W_R
, model_crisv32_movs_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5791 { CRISV32F_INSN_MOVU_B_R
, model_crisv32_movu_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5792 { CRISV32F_INSN_MOVU_W_R
, model_crisv32_movu_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5793 { CRISV32F_INSN_MOVECBR
, model_crisv32_movecbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5794 { CRISV32F_INSN_MOVECWR
, model_crisv32_movecwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5795 { CRISV32F_INSN_MOVECDR
, model_crisv32_movecdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5796 { CRISV32F_INSN_MOVSCBR
, model_crisv32_movscbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5797 { CRISV32F_INSN_MOVSCWR
, model_crisv32_movscwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5798 { CRISV32F_INSN_MOVUCBR
, model_crisv32_movucbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5799 { CRISV32F_INSN_MOVUCWR
, model_crisv32_movucwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5800 { CRISV32F_INSN_ADDQ
, model_crisv32_addq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5801 { CRISV32F_INSN_SUBQ
, model_crisv32_subq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5802 { CRISV32F_INSN_CMP_R_B_R
, model_crisv32_cmp_r_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5803 { CRISV32F_INSN_CMP_R_W_R
, model_crisv32_cmp_r_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5804 { CRISV32F_INSN_CMP_R_D_R
, model_crisv32_cmp_r_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5805 { 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 } } },
5806 { 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 } } },
5807 { 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 } } },
5808 { CRISV32F_INSN_CMPCBR
, model_crisv32_cmpcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5809 { CRISV32F_INSN_CMPCWR
, model_crisv32_cmpcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5810 { CRISV32F_INSN_CMPCDR
, model_crisv32_cmpcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5811 { CRISV32F_INSN_CMPQ
, model_crisv32_cmpq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5812 { 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 } } },
5813 { 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 } } },
5814 { CRISV32F_INSN_CMPSCBR
, model_crisv32_cmpscbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5815 { CRISV32F_INSN_CMPSCWR
, model_crisv32_cmpscwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5816 { 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 } } },
5817 { 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 } } },
5818 { CRISV32F_INSN_CMPUCBR
, model_crisv32_cmpucbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5819 { CRISV32F_INSN_CMPUCWR
, model_crisv32_cmpucwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5820 { 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 } } },
5821 { 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 } } },
5822 { 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 } } },
5823 { 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 } } },
5824 { 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 } } },
5825 { 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 } } },
5826 { 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 } } },
5827 { CRISV32F_INSN_MOVE_R_SPRV32
, model_crisv32_move_r_sprv32
, { { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5828 { CRISV32F_INSN_MOVE_SPR_RV32
, model_crisv32_move_spr_rv32
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5829 { 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 } } },
5830 { CRISV32F_INSN_MOVE_C_SPRV32_P0
, model_crisv32_move_c_sprv32_p0
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5831 { CRISV32F_INSN_MOVE_C_SPRV32_P1
, model_crisv32_move_c_sprv32_p1
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5832 { 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 } } },
5833 { 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 } } },
5834 { CRISV32F_INSN_MOVE_C_SPRV32_P4
, model_crisv32_move_c_sprv32_p4
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5835 { 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 } } },
5836 { 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 } } },
5837 { 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 } } },
5838 { CRISV32F_INSN_MOVE_C_SPRV32_P8
, model_crisv32_move_c_sprv32_p8
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC_TO_SR
, 1, 1 } } },
5839 { 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 } } },
5840 { 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 } } },
5841 { 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 } } },
5842 { 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 } } },
5843 { 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 } } },
5844 { 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 } } },
5845 { 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 } } },
5846 { 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 } } },
5847 { CRISV32F_INSN_MOVE_SS_R
, model_crisv32_move_ss_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5848 { CRISV32F_INSN_MOVE_R_SS
, model_crisv32_move_r_ss
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5849 { 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 } } },
5850 { 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 } } },
5851 { CRISV32F_INSN_ADD_B_R
, model_crisv32_add_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5852 { CRISV32F_INSN_ADD_W_R
, model_crisv32_add_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5853 { CRISV32F_INSN_ADD_D_R
, model_crisv32_add_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5854 { 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 } } },
5855 { 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 } } },
5856 { 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 } } },
5857 { CRISV32F_INSN_ADDCBR
, model_crisv32_addcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5858 { CRISV32F_INSN_ADDCWR
, model_crisv32_addcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5859 { CRISV32F_INSN_ADDCDR
, model_crisv32_addcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5860 { CRISV32F_INSN_ADDS_B_R
, model_crisv32_adds_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5861 { CRISV32F_INSN_ADDS_W_R
, model_crisv32_adds_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5862 { 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 } } },
5863 { 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 } } },
5864 { CRISV32F_INSN_ADDSCBR
, model_crisv32_addscbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5865 { CRISV32F_INSN_ADDSCWR
, model_crisv32_addscwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5866 { CRISV32F_INSN_ADDU_B_R
, model_crisv32_addu_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5867 { CRISV32F_INSN_ADDU_W_R
, model_crisv32_addu_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5868 { 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 } } },
5869 { 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 } } },
5870 { CRISV32F_INSN_ADDUCBR
, model_crisv32_adducbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5871 { CRISV32F_INSN_ADDUCWR
, model_crisv32_adducwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5872 { CRISV32F_INSN_SUB_B_R
, model_crisv32_sub_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5873 { CRISV32F_INSN_SUB_W_R
, model_crisv32_sub_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5874 { CRISV32F_INSN_SUB_D_R
, model_crisv32_sub_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5875 { 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 } } },
5876 { 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 } } },
5877 { 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 } } },
5878 { CRISV32F_INSN_SUBCBR
, model_crisv32_subcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5879 { CRISV32F_INSN_SUBCWR
, model_crisv32_subcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5880 { CRISV32F_INSN_SUBCDR
, model_crisv32_subcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5881 { CRISV32F_INSN_SUBS_B_R
, model_crisv32_subs_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5882 { CRISV32F_INSN_SUBS_W_R
, model_crisv32_subs_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5883 { 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 } } },
5884 { 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 } } },
5885 { CRISV32F_INSN_SUBSCBR
, model_crisv32_subscbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5886 { CRISV32F_INSN_SUBSCWR
, model_crisv32_subscwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5887 { CRISV32F_INSN_SUBU_B_R
, model_crisv32_subu_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5888 { CRISV32F_INSN_SUBU_W_R
, model_crisv32_subu_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5889 { 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 } } },
5890 { 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 } } },
5891 { CRISV32F_INSN_SUBUCBR
, model_crisv32_subucbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5892 { CRISV32F_INSN_SUBUCWR
, model_crisv32_subucwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5893 { CRISV32F_INSN_ADDC_R
, model_crisv32_addc_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5894 { 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 } } },
5895 { CRISV32F_INSN_ADDC_C
, model_crisv32_addc_c
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5896 { CRISV32F_INSN_LAPC_D
, model_crisv32_lapc_d
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5897 { CRISV32F_INSN_LAPCQ
, model_crisv32_lapcq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5898 { CRISV32F_INSN_ADDI_B_R
, model_crisv32_addi_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5899 { CRISV32F_INSN_ADDI_W_R
, model_crisv32_addi_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5900 { CRISV32F_INSN_ADDI_D_R
, model_crisv32_addi_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5901 { CRISV32F_INSN_NEG_B_R
, model_crisv32_neg_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5902 { CRISV32F_INSN_NEG_W_R
, model_crisv32_neg_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5903 { CRISV32F_INSN_NEG_D_R
, model_crisv32_neg_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5904 { 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 } } },
5905 { 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 } } },
5906 { 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 } } },
5907 { 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 } } },
5908 { 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 } } },
5909 { 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 } } },
5910 { CRISV32F_INSN_MULS_B
, model_crisv32_muls_b
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5911 { CRISV32F_INSN_MULS_W
, model_crisv32_muls_w
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5912 { CRISV32F_INSN_MULS_D
, model_crisv32_muls_d
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5913 { CRISV32F_INSN_MULU_B
, model_crisv32_mulu_b
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5914 { CRISV32F_INSN_MULU_W
, model_crisv32_mulu_w
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5915 { CRISV32F_INSN_MULU_D
, model_crisv32_mulu_d
, { { (int) UNIT_CRISV32_U_MULTIPLY
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5916 { CRISV32F_INSN_MCP
, model_crisv32_mcp
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5917 { CRISV32F_INSN_DSTEP
, model_crisv32_dstep
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5918 { CRISV32F_INSN_ABS
, model_crisv32_abs
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5919 { CRISV32F_INSN_AND_B_R
, model_crisv32_and_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5920 { CRISV32F_INSN_AND_W_R
, model_crisv32_and_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5921 { CRISV32F_INSN_AND_D_R
, model_crisv32_and_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5922 { 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 } } },
5923 { 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 } } },
5924 { 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 } } },
5925 { CRISV32F_INSN_ANDCBR
, model_crisv32_andcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5926 { CRISV32F_INSN_ANDCWR
, model_crisv32_andcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5927 { CRISV32F_INSN_ANDCDR
, model_crisv32_andcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5928 { CRISV32F_INSN_ANDQ
, model_crisv32_andq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5929 { CRISV32F_INSN_ORR_B_R
, model_crisv32_orr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5930 { CRISV32F_INSN_ORR_W_R
, model_crisv32_orr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5931 { CRISV32F_INSN_ORR_D_R
, model_crisv32_orr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5932 { 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 } } },
5933 { 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 } } },
5934 { 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 } } },
5935 { CRISV32F_INSN_ORCBR
, model_crisv32_orcbr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5936 { CRISV32F_INSN_ORCWR
, model_crisv32_orcwr
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5937 { CRISV32F_INSN_ORCDR
, model_crisv32_orcdr
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5938 { CRISV32F_INSN_ORQ
, model_crisv32_orq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5939 { CRISV32F_INSN_XOR
, model_crisv32_xor
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5940 { CRISV32F_INSN_SWAP
, model_crisv32_swap
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5941 { CRISV32F_INSN_ASRR_B_R
, model_crisv32_asrr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5942 { CRISV32F_INSN_ASRR_W_R
, model_crisv32_asrr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5943 { CRISV32F_INSN_ASRR_D_R
, model_crisv32_asrr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5944 { CRISV32F_INSN_ASRQ
, model_crisv32_asrq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5945 { CRISV32F_INSN_LSRR_B_R
, model_crisv32_lsrr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5946 { CRISV32F_INSN_LSRR_W_R
, model_crisv32_lsrr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5947 { CRISV32F_INSN_LSRR_D_R
, model_crisv32_lsrr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5948 { CRISV32F_INSN_LSRQ
, model_crisv32_lsrq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5949 { CRISV32F_INSN_LSLR_B_R
, model_crisv32_lslr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5950 { CRISV32F_INSN_LSLR_W_R
, model_crisv32_lslr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5951 { CRISV32F_INSN_LSLR_D_R
, model_crisv32_lslr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5952 { CRISV32F_INSN_LSLQ
, model_crisv32_lslq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5953 { CRISV32F_INSN_BTST
, model_crisv32_btst
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5954 { CRISV32F_INSN_BTSTQ
, model_crisv32_btstq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5955 { CRISV32F_INSN_SETF
, model_crisv32_setf
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5956 { CRISV32F_INSN_CLEARF
, model_crisv32_clearf
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5957 { CRISV32F_INSN_RFE
, model_crisv32_rfe
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5958 { CRISV32F_INSN_SFE
, model_crisv32_sfe
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5959 { CRISV32F_INSN_RFG
, model_crisv32_rfg
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5960 { CRISV32F_INSN_RFN
, model_crisv32_rfn
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5961 { CRISV32F_INSN_HALT
, model_crisv32_halt
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5962 { CRISV32F_INSN_BCC_B
, model_crisv32_bcc_b
, { { (int) UNIT_CRISV32_U_BRANCH
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5963 { CRISV32F_INSN_BA_B
, model_crisv32_ba_b
, { { (int) UNIT_CRISV32_U_JUMP
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5964 { 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 } } },
5965 { 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 } } },
5966 { 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 } } },
5967 { 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 } } },
5968 { CRISV32F_INSN_JUMP_P
, model_crisv32_jump_p
, { { (int) UNIT_CRISV32_U_JUMP_SR
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5969 { 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 } } },
5970 { 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 } } },
5971 { 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 } } },
5972 { 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 } } },
5973 { CRISV32F_INSN_BREAK
, model_crisv32_break
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5974 { CRISV32F_INSN_BOUND_R_B_R
, model_crisv32_bound_r_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5975 { CRISV32F_INSN_BOUND_R_W_R
, model_crisv32_bound_r_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5976 { CRISV32F_INSN_BOUND_R_D_R
, model_crisv32_bound_r_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5977 { CRISV32F_INSN_BOUND_CB
, model_crisv32_bound_cb
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5978 { CRISV32F_INSN_BOUND_CW
, model_crisv32_bound_cw
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5979 { CRISV32F_INSN_BOUND_CD
, model_crisv32_bound_cd
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5980 { CRISV32F_INSN_SCC
, model_crisv32_scc
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5981 { CRISV32F_INSN_LZ
, model_crisv32_lz
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5982 { CRISV32F_INSN_ADDOQ
, model_crisv32_addoq
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5983 { 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 } } },
5984 { 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 } } },
5985 { 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 } } },
5986 { CRISV32F_INSN_ADDO_CB
, model_crisv32_addo_cb
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5987 { CRISV32F_INSN_ADDO_CW
, model_crisv32_addo_cw
, { { (int) UNIT_CRISV32_U_CONST16
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5988 { CRISV32F_INSN_ADDO_CD
, model_crisv32_addo_cd
, { { (int) UNIT_CRISV32_U_CONST32
, 1, 1 }, { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5989 { CRISV32F_INSN_ADDI_ACR_B_R
, model_crisv32_addi_acr_b_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5990 { CRISV32F_INSN_ADDI_ACR_W_R
, model_crisv32_addi_acr_w_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5991 { CRISV32F_INSN_ADDI_ACR_D_R
, model_crisv32_addi_acr_d_r
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5992 { CRISV32F_INSN_FIDXI
, model_crisv32_fidxi
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5993 { CRISV32F_INSN_FTAGI
, model_crisv32_ftagi
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5994 { CRISV32F_INSN_FIDXD
, model_crisv32_fidxd
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5995 { CRISV32F_INSN_FTAGD
, model_crisv32_ftagd
, { { (int) UNIT_CRISV32_U_EXEC
, 1, 1 } } },
5998 #endif /* WITH_PROFILE_MODEL_P */
6001 crisv32_model_init (SIM_CPU
*cpu
)
6003 CPU_MODEL_DATA (cpu
) = (void *) zalloc (sizeof (MODEL_CRISV32_DATA
));
6006 #if WITH_PROFILE_MODEL_P
6007 #define TIMING_DATA(td) td
6009 #define TIMING_DATA(td) 0
6012 static const MODEL crisv32_models
[] =
6014 { "crisv32", & crisv32_mach
, MODEL_CRISV32
, TIMING_DATA (& crisv32_timing
[0]), crisv32_model_init
},
6018 /* The properties of this cpu's implementation. */
6020 static const MACH_IMP_PROPERTIES crisv32f_imp_properties
=
6032 crisv32f_prepare_run (SIM_CPU
*cpu
)
6034 if (CPU_IDESC (cpu
) == NULL
)
6035 crisv32f_init_idesc_table (cpu
);
6038 static const CGEN_INSN
*
6039 crisv32f_get_idata (SIM_CPU
*cpu
, int inum
)
6041 return CPU_IDESC (cpu
) [inum
].idata
;
6045 crisv32_init_cpu (SIM_CPU
*cpu
)
6047 CPU_REG_FETCH (cpu
) = crisv32f_fetch_register
;
6048 CPU_REG_STORE (cpu
) = crisv32f_store_register
;
6049 CPU_PC_FETCH (cpu
) = crisv32f_h_pc_get
;
6050 CPU_PC_STORE (cpu
) = crisv32f_h_pc_set
;
6051 CPU_GET_IDATA (cpu
) = crisv32f_get_idata
;
6052 CPU_MAX_INSNS (cpu
) = CRISV32F_INSN__MAX
;
6053 CPU_INSN_NAME (cpu
) = cgen_insn_name
;
6054 CPU_FULL_ENGINE_FN (cpu
) = crisv32f_engine_run_full
;
6056 CPU_FAST_ENGINE_FN (cpu
) = crisv32f_engine_run_fast
;
6058 CPU_FAST_ENGINE_FN (cpu
) = crisv32f_engine_run_full
;
6062 const MACH crisv32_mach
=
6064 "crisv32", "crisv32", MACH_CRISV32
,
6065 32, 32, & crisv32_models
[0], & crisv32f_imp_properties
,
6067 crisv32f_prepare_run