1 /* Simulator model support for m32rxf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2015 Free Software Foundation, Inc.
7 This file is part of the GNU simulators.
9 This file is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 3, or (at your option)
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, see <http://www.gnu.org/licenses/>.
24 #define WANT_CPU m32rxf
25 #define WANT_CPU_M32RXF
29 /* The profiling data is recorded here, but is accessed via the profiling
30 mechanism. After all, this is information for profiling. */
32 #if WITH_PROFILE_MODEL_P
34 /* Model handlers for each insn. */
37 model_m32rx_add (SIM_CPU
*current_cpu
, void *sem_arg
)
39 #define FLD(f) abuf->fields.sfmt_add.f
40 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
41 const IDESC
* UNUSED idesc
= abuf
->idesc
;
45 int UNUSED insn_referenced
= abuf
->written
;
51 out_dr
= FLD (out_dr
);
55 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
62 model_m32rx_add3 (SIM_CPU
*current_cpu
, void *sem_arg
)
64 #define FLD(f) abuf->fields.sfmt_add3.f
65 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
66 const IDESC
* UNUSED idesc
= abuf
->idesc
;
70 int UNUSED insn_referenced
= abuf
->written
;
75 out_dr
= FLD (out_dr
);
78 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
85 model_m32rx_and (SIM_CPU
*current_cpu
, void *sem_arg
)
87 #define FLD(f) abuf->fields.sfmt_add.f
88 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
89 const IDESC
* UNUSED idesc
= abuf
->idesc
;
93 int UNUSED insn_referenced
= abuf
->written
;
99 out_dr
= FLD (out_dr
);
100 referenced
|= 1 << 0;
101 referenced
|= 1 << 1;
102 referenced
|= 1 << 2;
103 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
110 model_m32rx_and3 (SIM_CPU
*current_cpu
, void *sem_arg
)
112 #define FLD(f) abuf->fields.sfmt_and3.f
113 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
114 const IDESC
* UNUSED idesc
= abuf
->idesc
;
118 int UNUSED insn_referenced
= abuf
->written
;
123 out_dr
= FLD (out_dr
);
124 referenced
|= 1 << 0;
125 referenced
|= 1 << 2;
126 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
133 model_m32rx_or (SIM_CPU
*current_cpu
, void *sem_arg
)
135 #define FLD(f) abuf->fields.sfmt_add.f
136 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
137 const IDESC
* UNUSED idesc
= abuf
->idesc
;
141 int UNUSED insn_referenced
= abuf
->written
;
147 out_dr
= FLD (out_dr
);
148 referenced
|= 1 << 0;
149 referenced
|= 1 << 1;
150 referenced
|= 1 << 2;
151 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
158 model_m32rx_or3 (SIM_CPU
*current_cpu
, void *sem_arg
)
160 #define FLD(f) abuf->fields.sfmt_and3.f
161 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
162 const IDESC
* UNUSED idesc
= abuf
->idesc
;
166 int UNUSED insn_referenced
= abuf
->written
;
171 out_dr
= FLD (out_dr
);
172 referenced
|= 1 << 0;
173 referenced
|= 1 << 2;
174 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
181 model_m32rx_xor (SIM_CPU
*current_cpu
, void *sem_arg
)
183 #define FLD(f) abuf->fields.sfmt_add.f
184 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
185 const IDESC
* UNUSED idesc
= abuf
->idesc
;
189 int UNUSED insn_referenced
= abuf
->written
;
195 out_dr
= FLD (out_dr
);
196 referenced
|= 1 << 0;
197 referenced
|= 1 << 1;
198 referenced
|= 1 << 2;
199 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
206 model_m32rx_xor3 (SIM_CPU
*current_cpu
, void *sem_arg
)
208 #define FLD(f) abuf->fields.sfmt_and3.f
209 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
210 const IDESC
* UNUSED idesc
= abuf
->idesc
;
214 int UNUSED insn_referenced
= abuf
->written
;
219 out_dr
= FLD (out_dr
);
220 referenced
|= 1 << 0;
221 referenced
|= 1 << 2;
222 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
229 model_m32rx_addi (SIM_CPU
*current_cpu
, void *sem_arg
)
231 #define FLD(f) abuf->fields.sfmt_addi.f
232 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
233 const IDESC
* UNUSED idesc
= abuf
->idesc
;
237 int UNUSED insn_referenced
= abuf
->written
;
242 out_dr
= FLD (out_dr
);
243 referenced
|= 1 << 1;
244 referenced
|= 1 << 2;
245 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
252 model_m32rx_addv (SIM_CPU
*current_cpu
, void *sem_arg
)
254 #define FLD(f) abuf->fields.sfmt_add.f
255 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
256 const IDESC
* UNUSED idesc
= abuf
->idesc
;
260 int UNUSED insn_referenced
= abuf
->written
;
266 out_dr
= FLD (out_dr
);
267 referenced
|= 1 << 0;
268 referenced
|= 1 << 1;
269 referenced
|= 1 << 2;
270 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
277 model_m32rx_addv3 (SIM_CPU
*current_cpu
, void *sem_arg
)
279 #define FLD(f) abuf->fields.sfmt_add3.f
280 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
281 const IDESC
* UNUSED idesc
= abuf
->idesc
;
285 int UNUSED insn_referenced
= abuf
->written
;
290 out_dr
= FLD (out_dr
);
291 referenced
|= 1 << 0;
292 referenced
|= 1 << 2;
293 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
300 model_m32rx_addx (SIM_CPU
*current_cpu
, void *sem_arg
)
302 #define FLD(f) abuf->fields.sfmt_add.f
303 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
304 const IDESC
* UNUSED idesc
= abuf
->idesc
;
308 int UNUSED insn_referenced
= abuf
->written
;
314 out_dr
= FLD (out_dr
);
315 referenced
|= 1 << 0;
316 referenced
|= 1 << 1;
317 referenced
|= 1 << 2;
318 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
325 model_m32rx_bc8 (SIM_CPU
*current_cpu
, void *sem_arg
)
327 #define FLD(f) abuf->fields.sfmt_bl8.f
328 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
329 const IDESC
* UNUSED idesc
= abuf
->idesc
;
333 int UNUSED insn_referenced
= abuf
->written
;
335 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
336 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
343 model_m32rx_bc24 (SIM_CPU
*current_cpu
, void *sem_arg
)
345 #define FLD(f) abuf->fields.sfmt_bl24.f
346 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
347 const IDESC
* UNUSED idesc
= abuf
->idesc
;
351 int UNUSED insn_referenced
= abuf
->written
;
353 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
354 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
361 model_m32rx_beq (SIM_CPU
*current_cpu
, void *sem_arg
)
363 #define FLD(f) abuf->fields.sfmt_beq.f
364 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
365 const IDESC
* UNUSED idesc
= abuf
->idesc
;
369 int UNUSED insn_referenced
= abuf
->written
;
371 if (insn_referenced
& (1 << 3)) referenced
|= 1 << 1;
372 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
376 int UNUSED insn_referenced
= abuf
->written
;
379 in_src1
= FLD (in_src1
);
380 in_src2
= FLD (in_src2
);
381 referenced
|= 1 << 0;
382 referenced
|= 1 << 1;
383 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
390 model_m32rx_beqz (SIM_CPU
*current_cpu
, void *sem_arg
)
392 #define FLD(f) abuf->fields.sfmt_beq.f
393 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
394 const IDESC
* UNUSED idesc
= abuf
->idesc
;
398 int UNUSED insn_referenced
= abuf
->written
;
400 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
401 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
405 int UNUSED insn_referenced
= abuf
->written
;
408 in_src2
= FLD (in_src2
);
409 referenced
|= 1 << 1;
410 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
417 model_m32rx_bgez (SIM_CPU
*current_cpu
, void *sem_arg
)
419 #define FLD(f) abuf->fields.sfmt_beq.f
420 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
421 const IDESC
* UNUSED idesc
= abuf
->idesc
;
425 int UNUSED insn_referenced
= abuf
->written
;
427 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
428 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
432 int UNUSED insn_referenced
= abuf
->written
;
435 in_src2
= FLD (in_src2
);
436 referenced
|= 1 << 1;
437 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
444 model_m32rx_bgtz (SIM_CPU
*current_cpu
, void *sem_arg
)
446 #define FLD(f) abuf->fields.sfmt_beq.f
447 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
448 const IDESC
* UNUSED idesc
= abuf
->idesc
;
452 int UNUSED insn_referenced
= abuf
->written
;
454 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
455 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
459 int UNUSED insn_referenced
= abuf
->written
;
462 in_src2
= FLD (in_src2
);
463 referenced
|= 1 << 1;
464 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
471 model_m32rx_blez (SIM_CPU
*current_cpu
, void *sem_arg
)
473 #define FLD(f) abuf->fields.sfmt_beq.f
474 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
475 const IDESC
* UNUSED idesc
= abuf
->idesc
;
479 int UNUSED insn_referenced
= abuf
->written
;
481 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
482 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
486 int UNUSED insn_referenced
= abuf
->written
;
489 in_src2
= FLD (in_src2
);
490 referenced
|= 1 << 1;
491 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
498 model_m32rx_bltz (SIM_CPU
*current_cpu
, void *sem_arg
)
500 #define FLD(f) abuf->fields.sfmt_beq.f
501 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
502 const IDESC
* UNUSED idesc
= abuf
->idesc
;
506 int UNUSED insn_referenced
= abuf
->written
;
508 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
509 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
513 int UNUSED insn_referenced
= abuf
->written
;
516 in_src2
= FLD (in_src2
);
517 referenced
|= 1 << 1;
518 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
525 model_m32rx_bnez (SIM_CPU
*current_cpu
, void *sem_arg
)
527 #define FLD(f) abuf->fields.sfmt_beq.f
528 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
529 const IDESC
* UNUSED idesc
= abuf
->idesc
;
533 int UNUSED insn_referenced
= abuf
->written
;
535 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
536 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
540 int UNUSED insn_referenced
= abuf
->written
;
543 in_src2
= FLD (in_src2
);
544 referenced
|= 1 << 1;
545 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
552 model_m32rx_bl8 (SIM_CPU
*current_cpu
, void *sem_arg
)
554 #define FLD(f) abuf->fields.sfmt_bl8.f
555 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
556 const IDESC
* UNUSED idesc
= abuf
->idesc
;
560 int UNUSED insn_referenced
= abuf
->written
;
562 referenced
|= 1 << 1;
563 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
570 model_m32rx_bl24 (SIM_CPU
*current_cpu
, void *sem_arg
)
572 #define FLD(f) abuf->fields.sfmt_bl24.f
573 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
574 const IDESC
* UNUSED idesc
= abuf
->idesc
;
578 int UNUSED insn_referenced
= abuf
->written
;
580 referenced
|= 1 << 1;
581 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
588 model_m32rx_bcl8 (SIM_CPU
*current_cpu
, void *sem_arg
)
590 #define FLD(f) abuf->fields.sfmt_bl8.f
591 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
592 const IDESC
* UNUSED idesc
= abuf
->idesc
;
596 int UNUSED insn_referenced
= abuf
->written
;
598 if (insn_referenced
& (1 << 4)) referenced
|= 1 << 1;
599 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
606 model_m32rx_bcl24 (SIM_CPU
*current_cpu
, void *sem_arg
)
608 #define FLD(f) abuf->fields.sfmt_bl24.f
609 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
610 const IDESC
* UNUSED idesc
= abuf
->idesc
;
614 int UNUSED insn_referenced
= abuf
->written
;
616 if (insn_referenced
& (1 << 4)) referenced
|= 1 << 1;
617 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
624 model_m32rx_bnc8 (SIM_CPU
*current_cpu
, void *sem_arg
)
626 #define FLD(f) abuf->fields.sfmt_bl8.f
627 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
628 const IDESC
* UNUSED idesc
= abuf
->idesc
;
632 int UNUSED insn_referenced
= abuf
->written
;
634 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
635 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
642 model_m32rx_bnc24 (SIM_CPU
*current_cpu
, void *sem_arg
)
644 #define FLD(f) abuf->fields.sfmt_bl24.f
645 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
646 const IDESC
* UNUSED idesc
= abuf
->idesc
;
650 int UNUSED insn_referenced
= abuf
->written
;
652 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
653 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
660 model_m32rx_bne (SIM_CPU
*current_cpu
, void *sem_arg
)
662 #define FLD(f) abuf->fields.sfmt_beq.f
663 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
664 const IDESC
* UNUSED idesc
= abuf
->idesc
;
668 int UNUSED insn_referenced
= abuf
->written
;
670 if (insn_referenced
& (1 << 3)) referenced
|= 1 << 1;
671 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
675 int UNUSED insn_referenced
= abuf
->written
;
678 in_src1
= FLD (in_src1
);
679 in_src2
= FLD (in_src2
);
680 referenced
|= 1 << 0;
681 referenced
|= 1 << 1;
682 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
689 model_m32rx_bra8 (SIM_CPU
*current_cpu
, void *sem_arg
)
691 #define FLD(f) abuf->fields.sfmt_bl8.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
;
699 referenced
|= 1 << 1;
700 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
707 model_m32rx_bra24 (SIM_CPU
*current_cpu
, void *sem_arg
)
709 #define FLD(f) abuf->fields.sfmt_bl24.f
710 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
711 const IDESC
* UNUSED idesc
= abuf
->idesc
;
715 int UNUSED insn_referenced
= abuf
->written
;
717 referenced
|= 1 << 1;
718 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
725 model_m32rx_bncl8 (SIM_CPU
*current_cpu
, void *sem_arg
)
727 #define FLD(f) abuf->fields.sfmt_bl8.f
728 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
729 const IDESC
* UNUSED idesc
= abuf
->idesc
;
733 int UNUSED insn_referenced
= abuf
->written
;
735 if (insn_referenced
& (1 << 4)) referenced
|= 1 << 1;
736 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
743 model_m32rx_bncl24 (SIM_CPU
*current_cpu
, void *sem_arg
)
745 #define FLD(f) abuf->fields.sfmt_bl24.f
746 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
747 const IDESC
* UNUSED idesc
= abuf
->idesc
;
751 int UNUSED insn_referenced
= abuf
->written
;
753 if (insn_referenced
& (1 << 4)) referenced
|= 1 << 1;
754 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
761 model_m32rx_cmp (SIM_CPU
*current_cpu
, void *sem_arg
)
763 #define FLD(f) abuf->fields.sfmt_st_plus.f
764 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
765 const IDESC
* UNUSED idesc
= abuf
->idesc
;
769 int UNUSED insn_referenced
= abuf
->written
;
772 in_src1
= FLD (in_src1
);
773 in_src2
= FLD (in_src2
);
774 referenced
|= 1 << 0;
775 referenced
|= 1 << 1;
776 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
783 model_m32rx_cmpi (SIM_CPU
*current_cpu
, void *sem_arg
)
785 #define FLD(f) abuf->fields.sfmt_st_d.f
786 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
787 const IDESC
* UNUSED idesc
= abuf
->idesc
;
791 int UNUSED insn_referenced
= abuf
->written
;
794 in_src2
= FLD (in_src2
);
795 referenced
|= 1 << 1;
796 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
803 model_m32rx_cmpu (SIM_CPU
*current_cpu
, void *sem_arg
)
805 #define FLD(f) abuf->fields.sfmt_st_plus.f
806 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
807 const IDESC
* UNUSED idesc
= abuf
->idesc
;
811 int UNUSED insn_referenced
= abuf
->written
;
814 in_src1
= FLD (in_src1
);
815 in_src2
= FLD (in_src2
);
816 referenced
|= 1 << 0;
817 referenced
|= 1 << 1;
818 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
825 model_m32rx_cmpui (SIM_CPU
*current_cpu
, void *sem_arg
)
827 #define FLD(f) abuf->fields.sfmt_st_d.f
828 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
829 const IDESC
* UNUSED idesc
= abuf
->idesc
;
833 int UNUSED insn_referenced
= abuf
->written
;
836 in_src2
= FLD (in_src2
);
837 referenced
|= 1 << 1;
838 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
845 model_m32rx_cmpeq (SIM_CPU
*current_cpu
, void *sem_arg
)
847 #define FLD(f) abuf->fields.sfmt_st_plus.f
848 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
849 const IDESC
* UNUSED idesc
= abuf
->idesc
;
853 int UNUSED insn_referenced
= abuf
->written
;
856 in_src1
= FLD (in_src1
);
857 in_src2
= FLD (in_src2
);
858 referenced
|= 1 << 0;
859 referenced
|= 1 << 1;
860 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
867 model_m32rx_cmpz (SIM_CPU
*current_cpu
, void *sem_arg
)
869 #define FLD(f) abuf->fields.sfmt_st_plus.f
870 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
871 const IDESC
* UNUSED idesc
= abuf
->idesc
;
875 int UNUSED insn_referenced
= abuf
->written
;
878 in_src2
= FLD (in_src2
);
879 referenced
|= 1 << 1;
880 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
887 model_m32rx_div (SIM_CPU
*current_cpu
, void *sem_arg
)
889 #define FLD(f) abuf->fields.sfmt_add.f
890 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
891 const IDESC
* UNUSED idesc
= abuf
->idesc
;
895 int UNUSED insn_referenced
= abuf
->written
;
901 out_dr
= FLD (out_dr
);
902 referenced
|= 1 << 0;
903 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
904 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
905 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
912 model_m32rx_divu (SIM_CPU
*current_cpu
, void *sem_arg
)
914 #define FLD(f) abuf->fields.sfmt_add.f
915 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
916 const IDESC
* UNUSED idesc
= abuf
->idesc
;
920 int UNUSED insn_referenced
= abuf
->written
;
926 out_dr
= FLD (out_dr
);
927 referenced
|= 1 << 0;
928 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
929 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
930 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
937 model_m32rx_rem (SIM_CPU
*current_cpu
, void *sem_arg
)
939 #define FLD(f) abuf->fields.sfmt_add.f
940 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
941 const IDESC
* UNUSED idesc
= abuf
->idesc
;
945 int UNUSED insn_referenced
= abuf
->written
;
951 out_dr
= FLD (out_dr
);
952 referenced
|= 1 << 0;
953 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
954 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
955 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
962 model_m32rx_remu (SIM_CPU
*current_cpu
, void *sem_arg
)
964 #define FLD(f) abuf->fields.sfmt_add.f
965 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
966 const IDESC
* UNUSED idesc
= abuf
->idesc
;
970 int UNUSED insn_referenced
= abuf
->written
;
976 out_dr
= FLD (out_dr
);
977 referenced
|= 1 << 0;
978 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
979 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
980 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
987 model_m32rx_divh (SIM_CPU
*current_cpu
, void *sem_arg
)
989 #define FLD(f) abuf->fields.sfmt_add.f
990 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
991 const IDESC
* UNUSED idesc
= abuf
->idesc
;
995 int UNUSED insn_referenced
= abuf
->written
;
1000 in_dr
= FLD (in_dr
);
1001 out_dr
= FLD (out_dr
);
1002 referenced
|= 1 << 0;
1003 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1004 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
1005 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1012 model_m32rx_jc (SIM_CPU
*current_cpu
, void *sem_arg
)
1014 #define FLD(f) abuf->fields.sfmt_jl.f
1015 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1016 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1020 int UNUSED insn_referenced
= abuf
->written
;
1022 in_sr
= FLD (in_sr
);
1023 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1024 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
1025 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1032 model_m32rx_jnc (SIM_CPU
*current_cpu
, void *sem_arg
)
1034 #define FLD(f) abuf->fields.sfmt_jl.f
1035 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1036 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1040 int UNUSED insn_referenced
= abuf
->written
;
1042 in_sr
= FLD (in_sr
);
1043 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1044 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
1045 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1052 model_m32rx_jl (SIM_CPU
*current_cpu
, void *sem_arg
)
1054 #define FLD(f) abuf->fields.sfmt_jl.f
1055 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1056 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1060 int UNUSED insn_referenced
= abuf
->written
;
1062 in_sr
= FLD (in_sr
);
1063 referenced
|= 1 << 0;
1064 referenced
|= 1 << 1;
1065 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1072 model_m32rx_jmp (SIM_CPU
*current_cpu
, void *sem_arg
)
1074 #define FLD(f) abuf->fields.sfmt_jl.f
1075 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1076 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1080 int UNUSED insn_referenced
= abuf
->written
;
1082 in_sr
= FLD (in_sr
);
1083 referenced
|= 1 << 0;
1084 referenced
|= 1 << 1;
1085 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1092 model_m32rx_ld (SIM_CPU
*current_cpu
, void *sem_arg
)
1094 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1095 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1096 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1100 int UNUSED insn_referenced
= abuf
->written
;
1103 in_sr
= FLD (in_sr
);
1104 out_dr
= FLD (out_dr
);
1105 referenced
|= 1 << 0;
1106 referenced
|= 1 << 1;
1107 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1114 model_m32rx_ld_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1116 #define FLD(f) abuf->fields.sfmt_add3.f
1117 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1118 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1122 int UNUSED insn_referenced
= abuf
->written
;
1125 in_sr
= FLD (in_sr
);
1126 out_dr
= FLD (out_dr
);
1127 referenced
|= 1 << 0;
1128 referenced
|= 1 << 1;
1129 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1136 model_m32rx_ldb (SIM_CPU
*current_cpu
, void *sem_arg
)
1138 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1139 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1140 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1144 int UNUSED insn_referenced
= abuf
->written
;
1147 in_sr
= FLD (in_sr
);
1148 out_dr
= FLD (out_dr
);
1149 referenced
|= 1 << 0;
1150 referenced
|= 1 << 1;
1151 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1158 model_m32rx_ldb_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1160 #define FLD(f) abuf->fields.sfmt_add3.f
1161 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1162 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1166 int UNUSED insn_referenced
= abuf
->written
;
1169 in_sr
= FLD (in_sr
);
1170 out_dr
= FLD (out_dr
);
1171 referenced
|= 1 << 0;
1172 referenced
|= 1 << 1;
1173 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1180 model_m32rx_ldh (SIM_CPU
*current_cpu
, void *sem_arg
)
1182 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1183 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1184 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1188 int UNUSED insn_referenced
= abuf
->written
;
1191 in_sr
= FLD (in_sr
);
1192 out_dr
= FLD (out_dr
);
1193 referenced
|= 1 << 0;
1194 referenced
|= 1 << 1;
1195 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1202 model_m32rx_ldh_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1204 #define FLD(f) abuf->fields.sfmt_add3.f
1205 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1206 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1210 int UNUSED insn_referenced
= abuf
->written
;
1213 in_sr
= FLD (in_sr
);
1214 out_dr
= FLD (out_dr
);
1215 referenced
|= 1 << 0;
1216 referenced
|= 1 << 1;
1217 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1224 model_m32rx_ldub (SIM_CPU
*current_cpu
, void *sem_arg
)
1226 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1227 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1228 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1232 int UNUSED insn_referenced
= abuf
->written
;
1235 in_sr
= FLD (in_sr
);
1236 out_dr
= FLD (out_dr
);
1237 referenced
|= 1 << 0;
1238 referenced
|= 1 << 1;
1239 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1246 model_m32rx_ldub_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1248 #define FLD(f) abuf->fields.sfmt_add3.f
1249 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1250 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1254 int UNUSED insn_referenced
= abuf
->written
;
1257 in_sr
= FLD (in_sr
);
1258 out_dr
= FLD (out_dr
);
1259 referenced
|= 1 << 0;
1260 referenced
|= 1 << 1;
1261 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1268 model_m32rx_lduh (SIM_CPU
*current_cpu
, void *sem_arg
)
1270 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1271 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1272 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1276 int UNUSED insn_referenced
= abuf
->written
;
1279 in_sr
= FLD (in_sr
);
1280 out_dr
= FLD (out_dr
);
1281 referenced
|= 1 << 0;
1282 referenced
|= 1 << 1;
1283 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1290 model_m32rx_lduh_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1292 #define FLD(f) abuf->fields.sfmt_add3.f
1293 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1294 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1298 int UNUSED insn_referenced
= abuf
->written
;
1301 in_sr
= FLD (in_sr
);
1302 out_dr
= FLD (out_dr
);
1303 referenced
|= 1 << 0;
1304 referenced
|= 1 << 1;
1305 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1312 model_m32rx_ld_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
1314 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1315 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1316 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1320 int UNUSED insn_referenced
= abuf
->written
;
1323 in_sr
= FLD (in_sr
);
1324 out_dr
= FLD (out_dr
);
1325 referenced
|= 1 << 0;
1326 referenced
|= 1 << 1;
1327 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1331 int UNUSED insn_referenced
= abuf
->written
;
1335 in_dr
= FLD (in_sr
);
1336 out_dr
= FLD (out_sr
);
1337 referenced
|= 1 << 0;
1338 referenced
|= 1 << 2;
1339 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
1346 model_m32rx_ld24 (SIM_CPU
*current_cpu
, void *sem_arg
)
1348 #define FLD(f) abuf->fields.sfmt_ld24.f
1349 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1350 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1354 int UNUSED insn_referenced
= abuf
->written
;
1358 out_dr
= FLD (out_dr
);
1359 referenced
|= 1 << 2;
1360 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1367 model_m32rx_ldi8 (SIM_CPU
*current_cpu
, void *sem_arg
)
1369 #define FLD(f) abuf->fields.sfmt_addi.f
1370 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1371 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1375 int UNUSED insn_referenced
= abuf
->written
;
1379 out_dr
= FLD (out_dr
);
1380 referenced
|= 1 << 2;
1381 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1388 model_m32rx_ldi16 (SIM_CPU
*current_cpu
, void *sem_arg
)
1390 #define FLD(f) abuf->fields.sfmt_add3.f
1391 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1392 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1396 int UNUSED insn_referenced
= abuf
->written
;
1400 out_dr
= FLD (out_dr
);
1401 referenced
|= 1 << 2;
1402 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1409 model_m32rx_lock (SIM_CPU
*current_cpu
, void *sem_arg
)
1411 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1412 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1413 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1417 int UNUSED insn_referenced
= abuf
->written
;
1420 in_sr
= FLD (in_sr
);
1421 out_dr
= FLD (out_dr
);
1422 referenced
|= 1 << 0;
1423 referenced
|= 1 << 1;
1424 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1431 model_m32rx_machi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1433 #define FLD(f) abuf->fields.sfmt_machi_a.f
1434 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1435 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1439 int UNUSED insn_referenced
= abuf
->written
;
1442 in_src1
= FLD (in_src1
);
1443 in_src2
= FLD (in_src2
);
1444 referenced
|= 1 << 0;
1445 referenced
|= 1 << 1;
1446 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1453 model_m32rx_maclo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1455 #define FLD(f) abuf->fields.sfmt_machi_a.f
1456 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1457 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1461 int UNUSED insn_referenced
= abuf
->written
;
1464 in_src1
= FLD (in_src1
);
1465 in_src2
= FLD (in_src2
);
1466 referenced
|= 1 << 0;
1467 referenced
|= 1 << 1;
1468 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1475 model_m32rx_macwhi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1477 #define FLD(f) abuf->fields.sfmt_machi_a.f
1478 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1479 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1483 int UNUSED insn_referenced
= abuf
->written
;
1486 in_src1
= FLD (in_src1
);
1487 in_src2
= FLD (in_src2
);
1488 referenced
|= 1 << 0;
1489 referenced
|= 1 << 1;
1490 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1497 model_m32rx_macwlo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1499 #define FLD(f) abuf->fields.sfmt_machi_a.f
1500 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1501 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1505 int UNUSED insn_referenced
= abuf
->written
;
1508 in_src1
= FLD (in_src1
);
1509 in_src2
= FLD (in_src2
);
1510 referenced
|= 1 << 0;
1511 referenced
|= 1 << 1;
1512 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1519 model_m32rx_mul (SIM_CPU
*current_cpu
, void *sem_arg
)
1521 #define FLD(f) abuf->fields.sfmt_add.f
1522 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1523 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1527 int UNUSED insn_referenced
= abuf
->written
;
1531 in_sr
= FLD (in_sr
);
1532 in_dr
= FLD (in_dr
);
1533 out_dr
= FLD (out_dr
);
1534 referenced
|= 1 << 0;
1535 referenced
|= 1 << 1;
1536 referenced
|= 1 << 2;
1537 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1544 model_m32rx_mulhi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1546 #define FLD(f) abuf->fields.sfmt_machi_a.f
1547 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1548 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1552 int UNUSED insn_referenced
= abuf
->written
;
1555 in_src1
= FLD (in_src1
);
1556 in_src2
= FLD (in_src2
);
1557 referenced
|= 1 << 0;
1558 referenced
|= 1 << 1;
1559 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1566 model_m32rx_mullo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1568 #define FLD(f) abuf->fields.sfmt_machi_a.f
1569 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1570 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1574 int UNUSED insn_referenced
= abuf
->written
;
1577 in_src1
= FLD (in_src1
);
1578 in_src2
= FLD (in_src2
);
1579 referenced
|= 1 << 0;
1580 referenced
|= 1 << 1;
1581 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1588 model_m32rx_mulwhi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1590 #define FLD(f) abuf->fields.sfmt_machi_a.f
1591 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1592 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1596 int UNUSED insn_referenced
= abuf
->written
;
1599 in_src1
= FLD (in_src1
);
1600 in_src2
= FLD (in_src2
);
1601 referenced
|= 1 << 0;
1602 referenced
|= 1 << 1;
1603 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1610 model_m32rx_mulwlo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1612 #define FLD(f) abuf->fields.sfmt_machi_a.f
1613 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1614 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1618 int UNUSED insn_referenced
= abuf
->written
;
1621 in_src1
= FLD (in_src1
);
1622 in_src2
= FLD (in_src2
);
1623 referenced
|= 1 << 0;
1624 referenced
|= 1 << 1;
1625 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1632 model_m32rx_mv (SIM_CPU
*current_cpu
, void *sem_arg
)
1634 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1635 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1636 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1640 int UNUSED insn_referenced
= abuf
->written
;
1644 in_sr
= FLD (in_sr
);
1645 out_dr
= FLD (out_dr
);
1646 referenced
|= 1 << 0;
1647 referenced
|= 1 << 2;
1648 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1655 model_m32rx_mvfachi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1657 #define FLD(f) abuf->fields.sfmt_mvfachi_a.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
;
1667 out_dr
= FLD (out_dr
);
1668 referenced
|= 1 << 2;
1669 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1676 model_m32rx_mvfaclo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1678 #define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1679 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1680 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1684 int UNUSED insn_referenced
= abuf
->written
;
1688 out_dr
= FLD (out_dr
);
1689 referenced
|= 1 << 2;
1690 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1697 model_m32rx_mvfacmi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1699 #define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1700 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1701 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1705 int UNUSED insn_referenced
= abuf
->written
;
1709 out_dr
= FLD (out_dr
);
1710 referenced
|= 1 << 2;
1711 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1718 model_m32rx_mvfc (SIM_CPU
*current_cpu
, void *sem_arg
)
1720 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1721 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1722 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1726 int UNUSED insn_referenced
= abuf
->written
;
1730 out_dr
= FLD (out_dr
);
1731 referenced
|= 1 << 2;
1732 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1739 model_m32rx_mvtachi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1741 #define FLD(f) abuf->fields.sfmt_mvtachi_a.f
1742 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1743 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1747 int UNUSED insn_referenced
= abuf
->written
;
1751 in_sr
= FLD (in_src1
);
1752 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1759 model_m32rx_mvtaclo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1761 #define FLD(f) abuf->fields.sfmt_mvtachi_a.f
1762 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1763 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1767 int UNUSED insn_referenced
= abuf
->written
;
1771 in_sr
= FLD (in_src1
);
1772 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1779 model_m32rx_mvtc (SIM_CPU
*current_cpu
, void *sem_arg
)
1781 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1782 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1783 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1787 int UNUSED insn_referenced
= abuf
->written
;
1791 in_sr
= FLD (in_sr
);
1792 referenced
|= 1 << 0;
1793 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1800 model_m32rx_neg (SIM_CPU
*current_cpu
, void *sem_arg
)
1802 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1803 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1804 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1808 int UNUSED insn_referenced
= abuf
->written
;
1812 in_sr
= FLD (in_sr
);
1813 out_dr
= FLD (out_dr
);
1814 referenced
|= 1 << 0;
1815 referenced
|= 1 << 2;
1816 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1823 model_m32rx_nop (SIM_CPU
*current_cpu
, void *sem_arg
)
1825 #define FLD(f) abuf->fields.sfmt_empty.f
1826 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1827 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1831 int UNUSED insn_referenced
= abuf
->written
;
1835 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1842 model_m32rx_not (SIM_CPU
*current_cpu
, void *sem_arg
)
1844 #define FLD(f) abuf->fields.sfmt_ld_plus.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_sr
= FLD (in_sr
);
1855 out_dr
= FLD (out_dr
);
1856 referenced
|= 1 << 0;
1857 referenced
|= 1 << 2;
1858 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1865 model_m32rx_rac_dsi (SIM_CPU
*current_cpu
, void *sem_arg
)
1867 #define FLD(f) abuf->fields.sfmt_rac_dsi.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
;
1876 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1883 model_m32rx_rach_dsi (SIM_CPU
*current_cpu
, void *sem_arg
)
1885 #define FLD(f) abuf->fields.sfmt_rac_dsi.f
1886 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1887 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1891 int UNUSED insn_referenced
= abuf
->written
;
1894 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1901 model_m32rx_rte (SIM_CPU
*current_cpu
, void *sem_arg
)
1903 #define FLD(f) abuf->fields.sfmt_empty.f
1904 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1905 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1909 int UNUSED insn_referenced
= abuf
->written
;
1913 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1920 model_m32rx_seth (SIM_CPU
*current_cpu
, void *sem_arg
)
1922 #define FLD(f) abuf->fields.sfmt_seth.f
1923 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1924 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1928 int UNUSED insn_referenced
= abuf
->written
;
1932 out_dr
= FLD (out_dr
);
1933 referenced
|= 1 << 2;
1934 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1941 model_m32rx_sll (SIM_CPU
*current_cpu
, void *sem_arg
)
1943 #define FLD(f) abuf->fields.sfmt_add.f
1944 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1945 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1949 int UNUSED insn_referenced
= abuf
->written
;
1953 in_sr
= FLD (in_sr
);
1954 in_dr
= FLD (in_dr
);
1955 out_dr
= FLD (out_dr
);
1956 referenced
|= 1 << 0;
1957 referenced
|= 1 << 1;
1958 referenced
|= 1 << 2;
1959 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1966 model_m32rx_sll3 (SIM_CPU
*current_cpu
, void *sem_arg
)
1968 #define FLD(f) abuf->fields.sfmt_add3.f
1969 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1970 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1974 int UNUSED insn_referenced
= abuf
->written
;
1978 in_sr
= FLD (in_sr
);
1979 out_dr
= FLD (out_dr
);
1980 referenced
|= 1 << 0;
1981 referenced
|= 1 << 2;
1982 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1989 model_m32rx_slli (SIM_CPU
*current_cpu
, void *sem_arg
)
1991 #define FLD(f) abuf->fields.sfmt_slli.f
1992 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1993 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1997 int UNUSED insn_referenced
= abuf
->written
;
2001 in_dr
= FLD (in_dr
);
2002 out_dr
= FLD (out_dr
);
2003 referenced
|= 1 << 1;
2004 referenced
|= 1 << 2;
2005 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2012 model_m32rx_sra (SIM_CPU
*current_cpu
, void *sem_arg
)
2014 #define FLD(f) abuf->fields.sfmt_add.f
2015 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2016 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2020 int UNUSED insn_referenced
= abuf
->written
;
2024 in_sr
= FLD (in_sr
);
2025 in_dr
= FLD (in_dr
);
2026 out_dr
= FLD (out_dr
);
2027 referenced
|= 1 << 0;
2028 referenced
|= 1 << 1;
2029 referenced
|= 1 << 2;
2030 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2037 model_m32rx_sra3 (SIM_CPU
*current_cpu
, void *sem_arg
)
2039 #define FLD(f) abuf->fields.sfmt_add3.f
2040 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2041 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2045 int UNUSED insn_referenced
= abuf
->written
;
2049 in_sr
= FLD (in_sr
);
2050 out_dr
= FLD (out_dr
);
2051 referenced
|= 1 << 0;
2052 referenced
|= 1 << 2;
2053 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2060 model_m32rx_srai (SIM_CPU
*current_cpu
, void *sem_arg
)
2062 #define FLD(f) abuf->fields.sfmt_slli.f
2063 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2064 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2068 int UNUSED insn_referenced
= abuf
->written
;
2072 in_dr
= FLD (in_dr
);
2073 out_dr
= FLD (out_dr
);
2074 referenced
|= 1 << 1;
2075 referenced
|= 1 << 2;
2076 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2083 model_m32rx_srl (SIM_CPU
*current_cpu
, void *sem_arg
)
2085 #define FLD(f) abuf->fields.sfmt_add.f
2086 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2087 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2091 int UNUSED insn_referenced
= abuf
->written
;
2095 in_sr
= FLD (in_sr
);
2096 in_dr
= FLD (in_dr
);
2097 out_dr
= FLD (out_dr
);
2098 referenced
|= 1 << 0;
2099 referenced
|= 1 << 1;
2100 referenced
|= 1 << 2;
2101 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2108 model_m32rx_srl3 (SIM_CPU
*current_cpu
, void *sem_arg
)
2110 #define FLD(f) abuf->fields.sfmt_add3.f
2111 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2112 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2116 int UNUSED insn_referenced
= abuf
->written
;
2120 in_sr
= FLD (in_sr
);
2121 out_dr
= FLD (out_dr
);
2122 referenced
|= 1 << 0;
2123 referenced
|= 1 << 2;
2124 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2131 model_m32rx_srli (SIM_CPU
*current_cpu
, void *sem_arg
)
2133 #define FLD(f) abuf->fields.sfmt_slli.f
2134 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2135 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2139 int UNUSED insn_referenced
= abuf
->written
;
2143 in_dr
= FLD (in_dr
);
2144 out_dr
= FLD (out_dr
);
2145 referenced
|= 1 << 1;
2146 referenced
|= 1 << 2;
2147 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2154 model_m32rx_st (SIM_CPU
*current_cpu
, void *sem_arg
)
2156 #define FLD(f) abuf->fields.sfmt_st_plus.f
2157 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2158 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2162 int UNUSED insn_referenced
= abuf
->written
;
2165 in_src1
= FLD (in_src1
);
2166 in_src2
= FLD (in_src2
);
2167 referenced
|= 1 << 0;
2168 referenced
|= 1 << 1;
2169 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2176 model_m32rx_st_d (SIM_CPU
*current_cpu
, void *sem_arg
)
2178 #define FLD(f) abuf->fields.sfmt_st_d.f
2179 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2180 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2184 int UNUSED insn_referenced
= abuf
->written
;
2187 in_src1
= FLD (in_src1
);
2188 in_src2
= FLD (in_src2
);
2189 referenced
|= 1 << 0;
2190 referenced
|= 1 << 1;
2191 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2198 model_m32rx_stb (SIM_CPU
*current_cpu
, void *sem_arg
)
2200 #define FLD(f) abuf->fields.sfmt_st_plus.f
2201 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2202 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2206 int UNUSED insn_referenced
= abuf
->written
;
2209 in_src1
= FLD (in_src1
);
2210 in_src2
= FLD (in_src2
);
2211 referenced
|= 1 << 0;
2212 referenced
|= 1 << 1;
2213 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2220 model_m32rx_stb_d (SIM_CPU
*current_cpu
, void *sem_arg
)
2222 #define FLD(f) abuf->fields.sfmt_st_d.f
2223 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2224 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2228 int UNUSED insn_referenced
= abuf
->written
;
2231 in_src1
= FLD (in_src1
);
2232 in_src2
= FLD (in_src2
);
2233 referenced
|= 1 << 0;
2234 referenced
|= 1 << 1;
2235 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2242 model_m32rx_sth (SIM_CPU
*current_cpu
, void *sem_arg
)
2244 #define FLD(f) abuf->fields.sfmt_st_plus.f
2245 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2246 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2250 int UNUSED insn_referenced
= abuf
->written
;
2253 in_src1
= FLD (in_src1
);
2254 in_src2
= FLD (in_src2
);
2255 referenced
|= 1 << 0;
2256 referenced
|= 1 << 1;
2257 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2264 model_m32rx_sth_d (SIM_CPU
*current_cpu
, void *sem_arg
)
2266 #define FLD(f) abuf->fields.sfmt_st_d.f
2267 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2268 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2272 int UNUSED insn_referenced
= abuf
->written
;
2275 in_src1
= FLD (in_src1
);
2276 in_src2
= FLD (in_src2
);
2277 referenced
|= 1 << 0;
2278 referenced
|= 1 << 1;
2279 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2286 model_m32rx_st_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
2288 #define FLD(f) abuf->fields.sfmt_st_plus.f
2289 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2290 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2294 int UNUSED insn_referenced
= abuf
->written
;
2297 in_src1
= FLD (in_src1
);
2298 in_src2
= FLD (in_src2
);
2299 referenced
|= 1 << 0;
2300 referenced
|= 1 << 1;
2301 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2305 int UNUSED insn_referenced
= abuf
->written
;
2309 in_dr
= FLD (in_src2
);
2310 out_dr
= FLD (out_src2
);
2311 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2318 model_m32rx_sth_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
2320 #define FLD(f) abuf->fields.sfmt_st_plus.f
2321 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2322 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2326 int UNUSED insn_referenced
= abuf
->written
;
2329 in_src1
= FLD (in_src1
);
2330 in_src2
= FLD (in_src2
);
2331 referenced
|= 1 << 0;
2332 referenced
|= 1 << 1;
2333 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2337 int UNUSED insn_referenced
= abuf
->written
;
2341 in_dr
= FLD (in_src2
);
2342 out_dr
= FLD (out_src2
);
2343 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2350 model_m32rx_stb_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
2352 #define FLD(f) abuf->fields.sfmt_st_plus.f
2353 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2354 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2358 int UNUSED insn_referenced
= abuf
->written
;
2361 in_src1
= FLD (in_src1
);
2362 in_src2
= FLD (in_src2
);
2363 referenced
|= 1 << 0;
2364 referenced
|= 1 << 1;
2365 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2369 int UNUSED insn_referenced
= abuf
->written
;
2373 in_dr
= FLD (in_src2
);
2374 out_dr
= FLD (out_src2
);
2375 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2382 model_m32rx_st_minus (SIM_CPU
*current_cpu
, void *sem_arg
)
2384 #define FLD(f) abuf->fields.sfmt_st_plus.f
2385 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2386 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2390 int UNUSED insn_referenced
= abuf
->written
;
2393 in_src1
= FLD (in_src1
);
2394 in_src2
= FLD (in_src2
);
2395 referenced
|= 1 << 0;
2396 referenced
|= 1 << 1;
2397 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2401 int UNUSED insn_referenced
= abuf
->written
;
2405 in_dr
= FLD (in_src2
);
2406 out_dr
= FLD (out_src2
);
2407 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2414 model_m32rx_sub (SIM_CPU
*current_cpu
, void *sem_arg
)
2416 #define FLD(f) abuf->fields.sfmt_add.f
2417 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2418 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2422 int UNUSED insn_referenced
= abuf
->written
;
2426 in_sr
= FLD (in_sr
);
2427 in_dr
= FLD (in_dr
);
2428 out_dr
= FLD (out_dr
);
2429 referenced
|= 1 << 0;
2430 referenced
|= 1 << 1;
2431 referenced
|= 1 << 2;
2432 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2439 model_m32rx_subv (SIM_CPU
*current_cpu
, void *sem_arg
)
2441 #define FLD(f) abuf->fields.sfmt_add.f
2442 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2443 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2447 int UNUSED insn_referenced
= abuf
->written
;
2451 in_sr
= FLD (in_sr
);
2452 in_dr
= FLD (in_dr
);
2453 out_dr
= FLD (out_dr
);
2454 referenced
|= 1 << 0;
2455 referenced
|= 1 << 1;
2456 referenced
|= 1 << 2;
2457 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2464 model_m32rx_subx (SIM_CPU
*current_cpu
, void *sem_arg
)
2466 #define FLD(f) abuf->fields.sfmt_add.f
2467 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2468 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2472 int UNUSED insn_referenced
= abuf
->written
;
2476 in_sr
= FLD (in_sr
);
2477 in_dr
= FLD (in_dr
);
2478 out_dr
= FLD (out_dr
);
2479 referenced
|= 1 << 0;
2480 referenced
|= 1 << 1;
2481 referenced
|= 1 << 2;
2482 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2489 model_m32rx_trap (SIM_CPU
*current_cpu
, void *sem_arg
)
2491 #define FLD(f) abuf->fields.sfmt_trap.f
2492 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2493 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2497 int UNUSED insn_referenced
= abuf
->written
;
2501 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2508 model_m32rx_unlock (SIM_CPU
*current_cpu
, void *sem_arg
)
2510 #define FLD(f) abuf->fields.sfmt_st_plus.f
2511 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2512 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2516 int UNUSED insn_referenced
= abuf
->written
;
2519 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
2526 model_m32rx_satb (SIM_CPU
*current_cpu
, void *sem_arg
)
2528 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2529 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2530 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2534 int UNUSED insn_referenced
= abuf
->written
;
2538 in_sr
= FLD (in_sr
);
2539 out_dr
= FLD (out_dr
);
2540 referenced
|= 1 << 0;
2541 referenced
|= 1 << 2;
2542 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2549 model_m32rx_sath (SIM_CPU
*current_cpu
, void *sem_arg
)
2551 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2552 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2553 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2557 int UNUSED insn_referenced
= abuf
->written
;
2561 in_sr
= FLD (in_sr
);
2562 out_dr
= FLD (out_dr
);
2563 referenced
|= 1 << 0;
2564 referenced
|= 1 << 2;
2565 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2572 model_m32rx_sat (SIM_CPU
*current_cpu
, void *sem_arg
)
2574 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2575 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2576 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2580 int UNUSED insn_referenced
= abuf
->written
;
2584 in_sr
= FLD (in_sr
);
2585 out_dr
= FLD (out_dr
);
2586 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2587 referenced
|= 1 << 2;
2588 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2595 model_m32rx_pcmpbz (SIM_CPU
*current_cpu
, void *sem_arg
)
2597 #define FLD(f) abuf->fields.sfmt_st_plus.f
2598 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2599 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2603 int UNUSED insn_referenced
= abuf
->written
;
2606 in_src2
= FLD (in_src2
);
2607 referenced
|= 1 << 1;
2608 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2615 model_m32rx_sadd (SIM_CPU
*current_cpu
, void *sem_arg
)
2617 #define FLD(f) abuf->fields.sfmt_empty.f
2618 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2619 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2623 int UNUSED insn_referenced
= abuf
->written
;
2626 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2633 model_m32rx_macwu1 (SIM_CPU
*current_cpu
, void *sem_arg
)
2635 #define FLD(f) abuf->fields.sfmt_st_plus.f
2636 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2637 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2641 int UNUSED insn_referenced
= abuf
->written
;
2644 in_src1
= FLD (in_src1
);
2645 in_src2
= FLD (in_src2
);
2646 referenced
|= 1 << 0;
2647 referenced
|= 1 << 1;
2648 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2655 model_m32rx_msblo (SIM_CPU
*current_cpu
, void *sem_arg
)
2657 #define FLD(f) abuf->fields.sfmt_st_plus.f
2658 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2659 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2663 int UNUSED insn_referenced
= abuf
->written
;
2666 in_src1
= FLD (in_src1
);
2667 in_src2
= FLD (in_src2
);
2668 referenced
|= 1 << 0;
2669 referenced
|= 1 << 1;
2670 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2677 model_m32rx_mulwu1 (SIM_CPU
*current_cpu
, void *sem_arg
)
2679 #define FLD(f) abuf->fields.sfmt_st_plus.f
2680 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2681 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2685 int UNUSED insn_referenced
= abuf
->written
;
2688 in_src1
= FLD (in_src1
);
2689 in_src2
= FLD (in_src2
);
2690 referenced
|= 1 << 0;
2691 referenced
|= 1 << 1;
2692 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2699 model_m32rx_maclh1 (SIM_CPU
*current_cpu
, void *sem_arg
)
2701 #define FLD(f) abuf->fields.sfmt_st_plus.f
2702 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2703 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2707 int UNUSED insn_referenced
= abuf
->written
;
2710 in_src1
= FLD (in_src1
);
2711 in_src2
= FLD (in_src2
);
2712 referenced
|= 1 << 0;
2713 referenced
|= 1 << 1;
2714 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2721 model_m32rx_sc (SIM_CPU
*current_cpu
, void *sem_arg
)
2723 #define FLD(f) abuf->fields.sfmt_empty.f
2724 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2725 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2729 int UNUSED insn_referenced
= abuf
->written
;
2733 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2740 model_m32rx_snc (SIM_CPU
*current_cpu
, void *sem_arg
)
2742 #define FLD(f) abuf->fields.sfmt_empty.f
2743 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2744 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2748 int UNUSED insn_referenced
= abuf
->written
;
2752 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2759 model_m32rx_clrpsw (SIM_CPU
*current_cpu
, void *sem_arg
)
2761 #define FLD(f) abuf->fields.sfmt_clrpsw.f
2762 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2763 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2767 int UNUSED insn_referenced
= abuf
->written
;
2771 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2778 model_m32rx_setpsw (SIM_CPU
*current_cpu
, void *sem_arg
)
2780 #define FLD(f) abuf->fields.sfmt_clrpsw.f
2781 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2782 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2786 int UNUSED insn_referenced
= abuf
->written
;
2790 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2797 model_m32rx_bset (SIM_CPU
*current_cpu
, void *sem_arg
)
2799 #define FLD(f) abuf->fields.sfmt_bset.f
2800 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2801 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2805 int UNUSED insn_referenced
= abuf
->written
;
2809 in_sr
= FLD (in_sr
);
2810 referenced
|= 1 << 0;
2811 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2818 model_m32rx_bclr (SIM_CPU
*current_cpu
, void *sem_arg
)
2820 #define FLD(f) abuf->fields.sfmt_bset.f
2821 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2822 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2826 int UNUSED insn_referenced
= abuf
->written
;
2830 in_sr
= FLD (in_sr
);
2831 referenced
|= 1 << 0;
2832 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2839 model_m32rx_btst (SIM_CPU
*current_cpu
, void *sem_arg
)
2841 #define FLD(f) abuf->fields.sfmt_bset.f
2842 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2843 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2847 int UNUSED insn_referenced
= abuf
->written
;
2851 in_sr
= FLD (in_sr
);
2852 referenced
|= 1 << 0;
2853 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2859 /* We assume UNIT_NONE == 0 because the tables don't always terminate
2862 /* Model timing data for `m32rx'. */
2864 static const INSN_TIMING m32rx_timing
[] = {
2865 { M32RXF_INSN_X_INVALID
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2866 { M32RXF_INSN_X_AFTER
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2867 { M32RXF_INSN_X_BEFORE
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2868 { M32RXF_INSN_X_CTI_CHAIN
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2869 { M32RXF_INSN_X_CHAIN
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2870 { M32RXF_INSN_X_BEGIN
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2871 { M32RXF_INSN_ADD
, model_m32rx_add
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2872 { M32RXF_INSN_ADD3
, model_m32rx_add3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2873 { M32RXF_INSN_AND
, model_m32rx_and
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2874 { M32RXF_INSN_AND3
, model_m32rx_and3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2875 { M32RXF_INSN_OR
, model_m32rx_or
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2876 { M32RXF_INSN_OR3
, model_m32rx_or3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2877 { M32RXF_INSN_XOR
, model_m32rx_xor
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2878 { M32RXF_INSN_XOR3
, model_m32rx_xor3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2879 { M32RXF_INSN_ADDI
, model_m32rx_addi
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2880 { M32RXF_INSN_ADDV
, model_m32rx_addv
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2881 { M32RXF_INSN_ADDV3
, model_m32rx_addv3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2882 { M32RXF_INSN_ADDX
, model_m32rx_addx
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2883 { M32RXF_INSN_BC8
, model_m32rx_bc8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2884 { M32RXF_INSN_BC24
, model_m32rx_bc24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2885 { M32RXF_INSN_BEQ
, model_m32rx_beq
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2886 { M32RXF_INSN_BEQZ
, model_m32rx_beqz
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2887 { M32RXF_INSN_BGEZ
, model_m32rx_bgez
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2888 { M32RXF_INSN_BGTZ
, model_m32rx_bgtz
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2889 { M32RXF_INSN_BLEZ
, model_m32rx_blez
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2890 { M32RXF_INSN_BLTZ
, model_m32rx_bltz
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2891 { M32RXF_INSN_BNEZ
, model_m32rx_bnez
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2892 { M32RXF_INSN_BL8
, model_m32rx_bl8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2893 { M32RXF_INSN_BL24
, model_m32rx_bl24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2894 { M32RXF_INSN_BCL8
, model_m32rx_bcl8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2895 { M32RXF_INSN_BCL24
, model_m32rx_bcl24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2896 { M32RXF_INSN_BNC8
, model_m32rx_bnc8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2897 { M32RXF_INSN_BNC24
, model_m32rx_bnc24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2898 { M32RXF_INSN_BNE
, model_m32rx_bne
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2899 { M32RXF_INSN_BRA8
, model_m32rx_bra8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2900 { M32RXF_INSN_BRA24
, model_m32rx_bra24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2901 { M32RXF_INSN_BNCL8
, model_m32rx_bncl8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2902 { M32RXF_INSN_BNCL24
, model_m32rx_bncl24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2903 { M32RXF_INSN_CMP
, model_m32rx_cmp
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2904 { M32RXF_INSN_CMPI
, model_m32rx_cmpi
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2905 { M32RXF_INSN_CMPU
, model_m32rx_cmpu
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2906 { M32RXF_INSN_CMPUI
, model_m32rx_cmpui
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2907 { M32RXF_INSN_CMPEQ
, model_m32rx_cmpeq
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2908 { M32RXF_INSN_CMPZ
, model_m32rx_cmpz
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2909 { M32RXF_INSN_DIV
, model_m32rx_div
, { { (int) UNIT_M32RX_U_EXEC
, 1, 37 } } },
2910 { M32RXF_INSN_DIVU
, model_m32rx_divu
, { { (int) UNIT_M32RX_U_EXEC
, 1, 37 } } },
2911 { M32RXF_INSN_REM
, model_m32rx_rem
, { { (int) UNIT_M32RX_U_EXEC
, 1, 37 } } },
2912 { M32RXF_INSN_REMU
, model_m32rx_remu
, { { (int) UNIT_M32RX_U_EXEC
, 1, 37 } } },
2913 { M32RXF_INSN_DIVH
, model_m32rx_divh
, { { (int) UNIT_M32RX_U_EXEC
, 1, 21 } } },
2914 { M32RXF_INSN_JC
, model_m32rx_jc
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2915 { M32RXF_INSN_JNC
, model_m32rx_jnc
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2916 { M32RXF_INSN_JL
, model_m32rx_jl
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2917 { M32RXF_INSN_JMP
, model_m32rx_jmp
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2918 { M32RXF_INSN_LD
, model_m32rx_ld
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2919 { M32RXF_INSN_LD_D
, model_m32rx_ld_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2920 { M32RXF_INSN_LDB
, model_m32rx_ldb
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2921 { M32RXF_INSN_LDB_D
, model_m32rx_ldb_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2922 { M32RXF_INSN_LDH
, model_m32rx_ldh
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2923 { M32RXF_INSN_LDH_D
, model_m32rx_ldh_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2924 { M32RXF_INSN_LDUB
, model_m32rx_ldub
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2925 { M32RXF_INSN_LDUB_D
, model_m32rx_ldub_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2926 { M32RXF_INSN_LDUH
, model_m32rx_lduh
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2927 { M32RXF_INSN_LDUH_D
, model_m32rx_lduh_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2928 { M32RXF_INSN_LD_PLUS
, model_m32rx_ld_plus
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 }, { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2929 { M32RXF_INSN_LD24
, model_m32rx_ld24
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2930 { M32RXF_INSN_LDI8
, model_m32rx_ldi8
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2931 { M32RXF_INSN_LDI16
, model_m32rx_ldi16
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2932 { M32RXF_INSN_LOCK
, model_m32rx_lock
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2933 { M32RXF_INSN_MACHI_A
, model_m32rx_machi_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2934 { M32RXF_INSN_MACLO_A
, model_m32rx_maclo_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2935 { M32RXF_INSN_MACWHI_A
, model_m32rx_macwhi_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2936 { M32RXF_INSN_MACWLO_A
, model_m32rx_macwlo_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2937 { M32RXF_INSN_MUL
, model_m32rx_mul
, { { (int) UNIT_M32RX_U_EXEC
, 1, 4 } } },
2938 { M32RXF_INSN_MULHI_A
, model_m32rx_mulhi_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2939 { M32RXF_INSN_MULLO_A
, model_m32rx_mullo_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2940 { M32RXF_INSN_MULWHI_A
, model_m32rx_mulwhi_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2941 { M32RXF_INSN_MULWLO_A
, model_m32rx_mulwlo_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2942 { M32RXF_INSN_MV
, model_m32rx_mv
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2943 { M32RXF_INSN_MVFACHI_A
, model_m32rx_mvfachi_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 2 } } },
2944 { M32RXF_INSN_MVFACLO_A
, model_m32rx_mvfaclo_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 2 } } },
2945 { M32RXF_INSN_MVFACMI_A
, model_m32rx_mvfacmi_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 2 } } },
2946 { M32RXF_INSN_MVFC
, model_m32rx_mvfc
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2947 { M32RXF_INSN_MVTACHI_A
, model_m32rx_mvtachi_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2948 { M32RXF_INSN_MVTACLO_A
, model_m32rx_mvtaclo_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2949 { M32RXF_INSN_MVTC
, model_m32rx_mvtc
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2950 { M32RXF_INSN_NEG
, model_m32rx_neg
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2951 { M32RXF_INSN_NOP
, model_m32rx_nop
, { { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2952 { M32RXF_INSN_NOT
, model_m32rx_not
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2953 { M32RXF_INSN_RAC_DSI
, model_m32rx_rac_dsi
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2954 { M32RXF_INSN_RACH_DSI
, model_m32rx_rach_dsi
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2955 { M32RXF_INSN_RTE
, model_m32rx_rte
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2956 { M32RXF_INSN_SETH
, model_m32rx_seth
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2957 { M32RXF_INSN_SLL
, model_m32rx_sll
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2958 { M32RXF_INSN_SLL3
, model_m32rx_sll3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2959 { M32RXF_INSN_SLLI
, model_m32rx_slli
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2960 { M32RXF_INSN_SRA
, model_m32rx_sra
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2961 { M32RXF_INSN_SRA3
, model_m32rx_sra3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2962 { M32RXF_INSN_SRAI
, model_m32rx_srai
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2963 { M32RXF_INSN_SRL
, model_m32rx_srl
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2964 { M32RXF_INSN_SRL3
, model_m32rx_srl3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2965 { M32RXF_INSN_SRLI
, model_m32rx_srli
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2966 { M32RXF_INSN_ST
, model_m32rx_st
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 } } },
2967 { M32RXF_INSN_ST_D
, model_m32rx_st_d
, { { (int) UNIT_M32RX_U_STORE
, 1, 2 } } },
2968 { M32RXF_INSN_STB
, model_m32rx_stb
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 } } },
2969 { M32RXF_INSN_STB_D
, model_m32rx_stb_d
, { { (int) UNIT_M32RX_U_STORE
, 1, 2 } } },
2970 { M32RXF_INSN_STH
, model_m32rx_sth
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 } } },
2971 { M32RXF_INSN_STH_D
, model_m32rx_sth_d
, { { (int) UNIT_M32RX_U_STORE
, 1, 2 } } },
2972 { M32RXF_INSN_ST_PLUS
, model_m32rx_st_plus
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 }, { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2973 { M32RXF_INSN_STH_PLUS
, model_m32rx_sth_plus
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 }, { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2974 { M32RXF_INSN_STB_PLUS
, model_m32rx_stb_plus
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 }, { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2975 { M32RXF_INSN_ST_MINUS
, model_m32rx_st_minus
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 }, { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2976 { M32RXF_INSN_SUB
, model_m32rx_sub
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2977 { M32RXF_INSN_SUBV
, model_m32rx_subv
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2978 { M32RXF_INSN_SUBX
, model_m32rx_subx
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2979 { M32RXF_INSN_TRAP
, model_m32rx_trap
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2980 { M32RXF_INSN_UNLOCK
, model_m32rx_unlock
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2981 { M32RXF_INSN_SATB
, model_m32rx_satb
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2982 { M32RXF_INSN_SATH
, model_m32rx_sath
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2983 { M32RXF_INSN_SAT
, model_m32rx_sat
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2984 { M32RXF_INSN_PCMPBZ
, model_m32rx_pcmpbz
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2985 { M32RXF_INSN_SADD
, model_m32rx_sadd
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2986 { M32RXF_INSN_MACWU1
, model_m32rx_macwu1
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2987 { M32RXF_INSN_MSBLO
, model_m32rx_msblo
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2988 { M32RXF_INSN_MULWU1
, model_m32rx_mulwu1
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2989 { M32RXF_INSN_MACLH1
, model_m32rx_maclh1
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2990 { M32RXF_INSN_SC
, model_m32rx_sc
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2991 { M32RXF_INSN_SNC
, model_m32rx_snc
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2992 { M32RXF_INSN_CLRPSW
, model_m32rx_clrpsw
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2993 { M32RXF_INSN_SETPSW
, model_m32rx_setpsw
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2994 { M32RXF_INSN_BSET
, model_m32rx_bset
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2995 { M32RXF_INSN_BCLR
, model_m32rx_bclr
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2996 { M32RXF_INSN_BTST
, model_m32rx_btst
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2999 #endif /* WITH_PROFILE_MODEL_P */
3002 m32rx_model_init (SIM_CPU
*cpu
)
3004 CPU_MODEL_DATA (cpu
) = (void *) zalloc (sizeof (MODEL_M32RX_DATA
));
3007 #if WITH_PROFILE_MODEL_P
3008 #define TIMING_DATA(td) td
3010 #define TIMING_DATA(td) 0
3013 static const SIM_MODEL m32rx_models
[] =
3015 { "m32rx", & m32rx_mach
, MODEL_M32RX
, TIMING_DATA (& m32rx_timing
[0]), m32rx_model_init
},
3019 /* The properties of this cpu's implementation. */
3021 static const SIM_MACH_IMP_PROPERTIES m32rxf_imp_properties
=
3033 m32rxf_prepare_run (SIM_CPU
*cpu
)
3035 if (CPU_IDESC (cpu
) == NULL
)
3036 m32rxf_init_idesc_table (cpu
);
3039 static const CGEN_INSN
*
3040 m32rxf_get_idata (SIM_CPU
*cpu
, int inum
)
3042 return CPU_IDESC (cpu
) [inum
].idata
;
3046 m32rx_init_cpu (SIM_CPU
*cpu
)
3048 CPU_REG_FETCH (cpu
) = m32rxf_fetch_register
;
3049 CPU_REG_STORE (cpu
) = m32rxf_store_register
;
3050 CPU_PC_FETCH (cpu
) = m32rxf_h_pc_get
;
3051 CPU_PC_STORE (cpu
) = m32rxf_h_pc_set
;
3052 CPU_GET_IDATA (cpu
) = m32rxf_get_idata
;
3053 CPU_MAX_INSNS (cpu
) = M32RXF_INSN__MAX
;
3054 CPU_INSN_NAME (cpu
) = cgen_insn_name
;
3055 CPU_FULL_ENGINE_FN (cpu
) = m32rxf_engine_run_full
;
3057 CPU_FAST_ENGINE_FN (cpu
) = m32rxf_engine_run_fast
;
3059 CPU_FAST_ENGINE_FN (cpu
) = m32rxf_engine_run_full
;
3063 const SIM_MACH m32rx_mach
=
3065 "m32rx", "m32rx", MACH_M32RX
,
3066 32, 32, & m32rx_models
[0], & m32rxf_imp_properties
,