1 /* Simulator model support for m32rxf.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996, 1997, 1998, 1999 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 m32rxf
26 #define WANT_CPU_M32RXF
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_m32rx_add (SIM_CPU
*current_cpu
, void *sem_arg
)
40 #define FLD(f) abuf->fields.sfmt_add.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 out_dr
= FLD (out_dr
);
56 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
63 model_m32rx_add3 (SIM_CPU
*current_cpu
, void *sem_arg
)
65 #define FLD(f) abuf->fields.sfmt_add3.f
66 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
67 const IDESC
* UNUSED idesc
= abuf
->idesc
;
71 int UNUSED insn_referenced
= abuf
->written
;
76 out_dr
= FLD (out_dr
);
79 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
86 model_m32rx_and (SIM_CPU
*current_cpu
, void *sem_arg
)
88 #define FLD(f) abuf->fields.sfmt_add.f
89 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
90 const IDESC
* UNUSED idesc
= abuf
->idesc
;
94 int UNUSED insn_referenced
= abuf
->written
;
100 out_dr
= FLD (out_dr
);
101 referenced
|= 1 << 0;
102 referenced
|= 1 << 1;
103 referenced
|= 1 << 2;
104 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
111 model_m32rx_and3 (SIM_CPU
*current_cpu
, void *sem_arg
)
113 #define FLD(f) abuf->fields.sfmt_and3.f
114 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
115 const IDESC
* UNUSED idesc
= abuf
->idesc
;
119 int UNUSED insn_referenced
= abuf
->written
;
124 out_dr
= FLD (out_dr
);
125 referenced
|= 1 << 0;
126 referenced
|= 1 << 2;
127 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
134 model_m32rx_or (SIM_CPU
*current_cpu
, void *sem_arg
)
136 #define FLD(f) abuf->fields.sfmt_add.f
137 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
138 const IDESC
* UNUSED idesc
= abuf
->idesc
;
142 int UNUSED insn_referenced
= abuf
->written
;
148 out_dr
= FLD (out_dr
);
149 referenced
|= 1 << 0;
150 referenced
|= 1 << 1;
151 referenced
|= 1 << 2;
152 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
159 model_m32rx_or3 (SIM_CPU
*current_cpu
, void *sem_arg
)
161 #define FLD(f) abuf->fields.sfmt_and3.f
162 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
163 const IDESC
* UNUSED idesc
= abuf
->idesc
;
167 int UNUSED insn_referenced
= abuf
->written
;
172 out_dr
= FLD (out_dr
);
173 referenced
|= 1 << 0;
174 referenced
|= 1 << 2;
175 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
182 model_m32rx_xor (SIM_CPU
*current_cpu
, void *sem_arg
)
184 #define FLD(f) abuf->fields.sfmt_add.f
185 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
186 const IDESC
* UNUSED idesc
= abuf
->idesc
;
190 int UNUSED insn_referenced
= abuf
->written
;
196 out_dr
= FLD (out_dr
);
197 referenced
|= 1 << 0;
198 referenced
|= 1 << 1;
199 referenced
|= 1 << 2;
200 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
207 model_m32rx_xor3 (SIM_CPU
*current_cpu
, void *sem_arg
)
209 #define FLD(f) abuf->fields.sfmt_and3.f
210 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
211 const IDESC
* UNUSED idesc
= abuf
->idesc
;
215 int UNUSED insn_referenced
= abuf
->written
;
220 out_dr
= FLD (out_dr
);
221 referenced
|= 1 << 0;
222 referenced
|= 1 << 2;
223 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
230 model_m32rx_addi (SIM_CPU
*current_cpu
, void *sem_arg
)
232 #define FLD(f) abuf->fields.sfmt_addi.f
233 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
234 const IDESC
* UNUSED idesc
= abuf
->idesc
;
238 int UNUSED insn_referenced
= abuf
->written
;
243 out_dr
= FLD (out_dr
);
244 referenced
|= 1 << 1;
245 referenced
|= 1 << 2;
246 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
253 model_m32rx_addv (SIM_CPU
*current_cpu
, void *sem_arg
)
255 #define FLD(f) abuf->fields.sfmt_add.f
256 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
257 const IDESC
* UNUSED idesc
= abuf
->idesc
;
261 int UNUSED insn_referenced
= abuf
->written
;
267 out_dr
= FLD (out_dr
);
268 referenced
|= 1 << 0;
269 referenced
|= 1 << 1;
270 referenced
|= 1 << 2;
271 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
278 model_m32rx_addv3 (SIM_CPU
*current_cpu
, void *sem_arg
)
280 #define FLD(f) abuf->fields.sfmt_add3.f
281 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
282 const IDESC
* UNUSED idesc
= abuf
->idesc
;
286 int UNUSED insn_referenced
= abuf
->written
;
291 out_dr
= FLD (out_dr
);
292 referenced
|= 1 << 0;
293 referenced
|= 1 << 2;
294 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
301 model_m32rx_addx (SIM_CPU
*current_cpu
, void *sem_arg
)
303 #define FLD(f) abuf->fields.sfmt_add.f
304 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
305 const IDESC
* UNUSED idesc
= abuf
->idesc
;
309 int UNUSED insn_referenced
= abuf
->written
;
315 out_dr
= FLD (out_dr
);
316 referenced
|= 1 << 0;
317 referenced
|= 1 << 1;
318 referenced
|= 1 << 2;
319 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
326 model_m32rx_bc8 (SIM_CPU
*current_cpu
, void *sem_arg
)
328 #define FLD(f) abuf->fields.sfmt_bl8.f
329 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
330 const IDESC
* UNUSED idesc
= abuf
->idesc
;
334 int UNUSED insn_referenced
= abuf
->written
;
336 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
337 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
344 model_m32rx_bc24 (SIM_CPU
*current_cpu
, void *sem_arg
)
346 #define FLD(f) abuf->fields.sfmt_bl24.f
347 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
348 const IDESC
* UNUSED idesc
= abuf
->idesc
;
352 int UNUSED insn_referenced
= abuf
->written
;
354 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
355 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
362 model_m32rx_beq (SIM_CPU
*current_cpu
, void *sem_arg
)
364 #define FLD(f) abuf->fields.sfmt_beq.f
365 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
366 const IDESC
* UNUSED idesc
= abuf
->idesc
;
370 int UNUSED insn_referenced
= abuf
->written
;
372 if (insn_referenced
& (1 << 3)) referenced
|= 1 << 1;
373 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
377 int UNUSED insn_referenced
= abuf
->written
;
380 in_src1
= FLD (in_src1
);
381 in_src2
= FLD (in_src2
);
382 referenced
|= 1 << 0;
383 referenced
|= 1 << 1;
384 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
391 model_m32rx_beqz (SIM_CPU
*current_cpu
, void *sem_arg
)
393 #define FLD(f) abuf->fields.sfmt_beq.f
394 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
395 const IDESC
* UNUSED idesc
= abuf
->idesc
;
399 int UNUSED insn_referenced
= abuf
->written
;
401 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
402 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
406 int UNUSED insn_referenced
= abuf
->written
;
409 in_src2
= FLD (in_src2
);
410 referenced
|= 1 << 1;
411 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
418 model_m32rx_bgez (SIM_CPU
*current_cpu
, void *sem_arg
)
420 #define FLD(f) abuf->fields.sfmt_beq.f
421 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
422 const IDESC
* UNUSED idesc
= abuf
->idesc
;
426 int UNUSED insn_referenced
= abuf
->written
;
428 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
429 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
433 int UNUSED insn_referenced
= abuf
->written
;
436 in_src2
= FLD (in_src2
);
437 referenced
|= 1 << 1;
438 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
445 model_m32rx_bgtz (SIM_CPU
*current_cpu
, void *sem_arg
)
447 #define FLD(f) abuf->fields.sfmt_beq.f
448 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
449 const IDESC
* UNUSED idesc
= abuf
->idesc
;
453 int UNUSED insn_referenced
= abuf
->written
;
455 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
456 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
460 int UNUSED insn_referenced
= abuf
->written
;
463 in_src2
= FLD (in_src2
);
464 referenced
|= 1 << 1;
465 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
472 model_m32rx_blez (SIM_CPU
*current_cpu
, void *sem_arg
)
474 #define FLD(f) abuf->fields.sfmt_beq.f
475 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
476 const IDESC
* UNUSED idesc
= abuf
->idesc
;
480 int UNUSED insn_referenced
= abuf
->written
;
482 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
483 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
487 int UNUSED insn_referenced
= abuf
->written
;
490 in_src2
= FLD (in_src2
);
491 referenced
|= 1 << 1;
492 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
499 model_m32rx_bltz (SIM_CPU
*current_cpu
, void *sem_arg
)
501 #define FLD(f) abuf->fields.sfmt_beq.f
502 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
503 const IDESC
* UNUSED idesc
= abuf
->idesc
;
507 int UNUSED insn_referenced
= abuf
->written
;
509 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
510 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
514 int UNUSED insn_referenced
= abuf
->written
;
517 in_src2
= FLD (in_src2
);
518 referenced
|= 1 << 1;
519 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
526 model_m32rx_bnez (SIM_CPU
*current_cpu
, void *sem_arg
)
528 #define FLD(f) abuf->fields.sfmt_beq.f
529 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
530 const IDESC
* UNUSED idesc
= abuf
->idesc
;
534 int UNUSED insn_referenced
= abuf
->written
;
536 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
537 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
541 int UNUSED insn_referenced
= abuf
->written
;
544 in_src2
= FLD (in_src2
);
545 referenced
|= 1 << 1;
546 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
553 model_m32rx_bl8 (SIM_CPU
*current_cpu
, void *sem_arg
)
555 #define FLD(f) abuf->fields.sfmt_bl8.f
556 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
557 const IDESC
* UNUSED idesc
= abuf
->idesc
;
561 int UNUSED insn_referenced
= abuf
->written
;
563 referenced
|= 1 << 1;
564 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
571 model_m32rx_bl24 (SIM_CPU
*current_cpu
, void *sem_arg
)
573 #define FLD(f) abuf->fields.sfmt_bl24.f
574 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
575 const IDESC
* UNUSED idesc
= abuf
->idesc
;
579 int UNUSED insn_referenced
= abuf
->written
;
581 referenced
|= 1 << 1;
582 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
589 model_m32rx_bcl8 (SIM_CPU
*current_cpu
, void *sem_arg
)
591 #define FLD(f) abuf->fields.sfmt_bl8.f
592 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
593 const IDESC
* UNUSED idesc
= abuf
->idesc
;
597 int UNUSED insn_referenced
= abuf
->written
;
599 if (insn_referenced
& (1 << 4)) referenced
|= 1 << 1;
600 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
607 model_m32rx_bcl24 (SIM_CPU
*current_cpu
, void *sem_arg
)
609 #define FLD(f) abuf->fields.sfmt_bl24.f
610 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
611 const IDESC
* UNUSED idesc
= abuf
->idesc
;
615 int UNUSED insn_referenced
= abuf
->written
;
617 if (insn_referenced
& (1 << 4)) referenced
|= 1 << 1;
618 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
625 model_m32rx_bnc8 (SIM_CPU
*current_cpu
, void *sem_arg
)
627 #define FLD(f) abuf->fields.sfmt_bl8.f
628 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
629 const IDESC
* UNUSED idesc
= abuf
->idesc
;
633 int UNUSED insn_referenced
= abuf
->written
;
635 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
636 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
643 model_m32rx_bnc24 (SIM_CPU
*current_cpu
, void *sem_arg
)
645 #define FLD(f) abuf->fields.sfmt_bl24.f
646 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
647 const IDESC
* UNUSED idesc
= abuf
->idesc
;
651 int UNUSED insn_referenced
= abuf
->written
;
653 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
654 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
661 model_m32rx_bne (SIM_CPU
*current_cpu
, void *sem_arg
)
663 #define FLD(f) abuf->fields.sfmt_beq.f
664 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
665 const IDESC
* UNUSED idesc
= abuf
->idesc
;
669 int UNUSED insn_referenced
= abuf
->written
;
671 if (insn_referenced
& (1 << 3)) referenced
|= 1 << 1;
672 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
676 int UNUSED insn_referenced
= abuf
->written
;
679 in_src1
= FLD (in_src1
);
680 in_src2
= FLD (in_src2
);
681 referenced
|= 1 << 0;
682 referenced
|= 1 << 1;
683 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
690 model_m32rx_bra8 (SIM_CPU
*current_cpu
, void *sem_arg
)
692 #define FLD(f) abuf->fields.sfmt_bl8.f
693 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
694 const IDESC
* UNUSED idesc
= abuf
->idesc
;
698 int UNUSED insn_referenced
= abuf
->written
;
700 referenced
|= 1 << 1;
701 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
708 model_m32rx_bra24 (SIM_CPU
*current_cpu
, void *sem_arg
)
710 #define FLD(f) abuf->fields.sfmt_bl24.f
711 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
712 const IDESC
* UNUSED idesc
= abuf
->idesc
;
716 int UNUSED insn_referenced
= abuf
->written
;
718 referenced
|= 1 << 1;
719 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
726 model_m32rx_bncl8 (SIM_CPU
*current_cpu
, void *sem_arg
)
728 #define FLD(f) abuf->fields.sfmt_bl8.f
729 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
730 const IDESC
* UNUSED idesc
= abuf
->idesc
;
734 int UNUSED insn_referenced
= abuf
->written
;
736 if (insn_referenced
& (1 << 4)) referenced
|= 1 << 1;
737 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
744 model_m32rx_bncl24 (SIM_CPU
*current_cpu
, void *sem_arg
)
746 #define FLD(f) abuf->fields.sfmt_bl24.f
747 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
748 const IDESC
* UNUSED idesc
= abuf
->idesc
;
752 int UNUSED insn_referenced
= abuf
->written
;
754 if (insn_referenced
& (1 << 4)) referenced
|= 1 << 1;
755 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
762 model_m32rx_cmp (SIM_CPU
*current_cpu
, void *sem_arg
)
764 #define FLD(f) abuf->fields.sfmt_st_plus.f
765 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
766 const IDESC
* UNUSED idesc
= abuf
->idesc
;
770 int UNUSED insn_referenced
= abuf
->written
;
773 in_src1
= FLD (in_src1
);
774 in_src2
= FLD (in_src2
);
775 referenced
|= 1 << 0;
776 referenced
|= 1 << 1;
777 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
784 model_m32rx_cmpi (SIM_CPU
*current_cpu
, void *sem_arg
)
786 #define FLD(f) abuf->fields.sfmt_st_d.f
787 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
788 const IDESC
* UNUSED idesc
= abuf
->idesc
;
792 int UNUSED insn_referenced
= abuf
->written
;
795 in_src2
= FLD (in_src2
);
796 referenced
|= 1 << 1;
797 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
804 model_m32rx_cmpu (SIM_CPU
*current_cpu
, void *sem_arg
)
806 #define FLD(f) abuf->fields.sfmt_st_plus.f
807 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
808 const IDESC
* UNUSED idesc
= abuf
->idesc
;
812 int UNUSED insn_referenced
= abuf
->written
;
815 in_src1
= FLD (in_src1
);
816 in_src2
= FLD (in_src2
);
817 referenced
|= 1 << 0;
818 referenced
|= 1 << 1;
819 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
826 model_m32rx_cmpui (SIM_CPU
*current_cpu
, void *sem_arg
)
828 #define FLD(f) abuf->fields.sfmt_st_d.f
829 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
830 const IDESC
* UNUSED idesc
= abuf
->idesc
;
834 int UNUSED insn_referenced
= abuf
->written
;
837 in_src2
= FLD (in_src2
);
838 referenced
|= 1 << 1;
839 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
846 model_m32rx_cmpeq (SIM_CPU
*current_cpu
, void *sem_arg
)
848 #define FLD(f) abuf->fields.sfmt_st_plus.f
849 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
850 const IDESC
* UNUSED idesc
= abuf
->idesc
;
854 int UNUSED insn_referenced
= abuf
->written
;
857 in_src1
= FLD (in_src1
);
858 in_src2
= FLD (in_src2
);
859 referenced
|= 1 << 0;
860 referenced
|= 1 << 1;
861 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
868 model_m32rx_cmpz (SIM_CPU
*current_cpu
, void *sem_arg
)
870 #define FLD(f) abuf->fields.sfmt_st_plus.f
871 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
872 const IDESC
* UNUSED idesc
= abuf
->idesc
;
876 int UNUSED insn_referenced
= abuf
->written
;
879 in_src2
= FLD (in_src2
);
880 referenced
|= 1 << 1;
881 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
888 model_m32rx_div (SIM_CPU
*current_cpu
, void *sem_arg
)
890 #define FLD(f) abuf->fields.sfmt_add.f
891 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
892 const IDESC
* UNUSED idesc
= abuf
->idesc
;
896 int UNUSED insn_referenced
= abuf
->written
;
902 out_dr
= FLD (out_dr
);
903 referenced
|= 1 << 0;
904 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
905 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
906 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
913 model_m32rx_divu (SIM_CPU
*current_cpu
, void *sem_arg
)
915 #define FLD(f) abuf->fields.sfmt_add.f
916 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
917 const IDESC
* UNUSED idesc
= abuf
->idesc
;
921 int UNUSED insn_referenced
= abuf
->written
;
927 out_dr
= FLD (out_dr
);
928 referenced
|= 1 << 0;
929 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
930 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
931 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
938 model_m32rx_rem (SIM_CPU
*current_cpu
, void *sem_arg
)
940 #define FLD(f) abuf->fields.sfmt_add.f
941 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
942 const IDESC
* UNUSED idesc
= abuf
->idesc
;
946 int UNUSED insn_referenced
= abuf
->written
;
952 out_dr
= FLD (out_dr
);
953 referenced
|= 1 << 0;
954 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
955 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
956 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
963 model_m32rx_remu (SIM_CPU
*current_cpu
, void *sem_arg
)
965 #define FLD(f) abuf->fields.sfmt_add.f
966 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
967 const IDESC
* UNUSED idesc
= abuf
->idesc
;
971 int UNUSED insn_referenced
= abuf
->written
;
977 out_dr
= FLD (out_dr
);
978 referenced
|= 1 << 0;
979 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
980 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
981 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
988 model_m32rx_divh (SIM_CPU
*current_cpu
, void *sem_arg
)
990 #define FLD(f) abuf->fields.sfmt_add.f
991 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
992 const IDESC
* UNUSED idesc
= abuf
->idesc
;
996 int UNUSED insn_referenced
= abuf
->written
;
1000 in_sr
= FLD (in_sr
);
1001 in_dr
= FLD (in_dr
);
1002 out_dr
= FLD (out_dr
);
1003 referenced
|= 1 << 0;
1004 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1005 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
1006 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1013 model_m32rx_jc (SIM_CPU
*current_cpu
, void *sem_arg
)
1015 #define FLD(f) abuf->fields.sfmt_mvtc.f
1016 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1017 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1021 int UNUSED insn_referenced
= abuf
->written
;
1023 in_sr
= FLD (in_sr
);
1024 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1025 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
1026 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1033 model_m32rx_jnc (SIM_CPU
*current_cpu
, void *sem_arg
)
1035 #define FLD(f) abuf->fields.sfmt_mvtc.f
1036 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1037 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1041 int UNUSED insn_referenced
= abuf
->written
;
1043 in_sr
= FLD (in_sr
);
1044 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1045 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
1046 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1053 model_m32rx_jl (SIM_CPU
*current_cpu
, void *sem_arg
)
1055 #define FLD(f) abuf->fields.sfmt_jl.f
1056 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1057 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1061 int UNUSED insn_referenced
= abuf
->written
;
1063 in_sr
= FLD (in_sr
);
1064 referenced
|= 1 << 0;
1065 referenced
|= 1 << 1;
1066 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1073 model_m32rx_jmp (SIM_CPU
*current_cpu
, void *sem_arg
)
1075 #define FLD(f) abuf->fields.sfmt_mvtc.f
1076 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1077 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1081 int UNUSED insn_referenced
= abuf
->written
;
1083 in_sr
= FLD (in_sr
);
1084 referenced
|= 1 << 0;
1085 referenced
|= 1 << 1;
1086 cycles
+= m32rxf_model_m32rx_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1093 model_m32rx_ld (SIM_CPU
*current_cpu
, void *sem_arg
)
1095 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1096 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1097 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1101 int UNUSED insn_referenced
= abuf
->written
;
1104 in_sr
= FLD (in_sr
);
1105 out_dr
= FLD (out_dr
);
1106 referenced
|= 1 << 0;
1107 referenced
|= 1 << 1;
1108 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1115 model_m32rx_ld_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1117 #define FLD(f) abuf->fields.sfmt_add3.f
1118 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1119 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1123 int UNUSED insn_referenced
= abuf
->written
;
1126 in_sr
= FLD (in_sr
);
1127 out_dr
= FLD (out_dr
);
1128 referenced
|= 1 << 0;
1129 referenced
|= 1 << 1;
1130 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1137 model_m32rx_ldb (SIM_CPU
*current_cpu
, void *sem_arg
)
1139 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1140 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1141 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1145 int UNUSED insn_referenced
= abuf
->written
;
1148 in_sr
= FLD (in_sr
);
1149 out_dr
= FLD (out_dr
);
1150 referenced
|= 1 << 0;
1151 referenced
|= 1 << 1;
1152 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1159 model_m32rx_ldb_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1161 #define FLD(f) abuf->fields.sfmt_add3.f
1162 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1163 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1167 int UNUSED insn_referenced
= abuf
->written
;
1170 in_sr
= FLD (in_sr
);
1171 out_dr
= FLD (out_dr
);
1172 referenced
|= 1 << 0;
1173 referenced
|= 1 << 1;
1174 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1181 model_m32rx_ldh (SIM_CPU
*current_cpu
, void *sem_arg
)
1183 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1184 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1185 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1189 int UNUSED insn_referenced
= abuf
->written
;
1192 in_sr
= FLD (in_sr
);
1193 out_dr
= FLD (out_dr
);
1194 referenced
|= 1 << 0;
1195 referenced
|= 1 << 1;
1196 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1203 model_m32rx_ldh_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1205 #define FLD(f) abuf->fields.sfmt_add3.f
1206 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1207 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1211 int UNUSED insn_referenced
= abuf
->written
;
1214 in_sr
= FLD (in_sr
);
1215 out_dr
= FLD (out_dr
);
1216 referenced
|= 1 << 0;
1217 referenced
|= 1 << 1;
1218 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1225 model_m32rx_ldub (SIM_CPU
*current_cpu
, void *sem_arg
)
1227 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1228 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1229 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1233 int UNUSED insn_referenced
= abuf
->written
;
1236 in_sr
= FLD (in_sr
);
1237 out_dr
= FLD (out_dr
);
1238 referenced
|= 1 << 0;
1239 referenced
|= 1 << 1;
1240 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1247 model_m32rx_ldub_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1249 #define FLD(f) abuf->fields.sfmt_add3.f
1250 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1251 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1255 int UNUSED insn_referenced
= abuf
->written
;
1258 in_sr
= FLD (in_sr
);
1259 out_dr
= FLD (out_dr
);
1260 referenced
|= 1 << 0;
1261 referenced
|= 1 << 1;
1262 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1269 model_m32rx_lduh (SIM_CPU
*current_cpu
, void *sem_arg
)
1271 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1272 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1273 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1277 int UNUSED insn_referenced
= abuf
->written
;
1280 in_sr
= FLD (in_sr
);
1281 out_dr
= FLD (out_dr
);
1282 referenced
|= 1 << 0;
1283 referenced
|= 1 << 1;
1284 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1291 model_m32rx_lduh_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1293 #define FLD(f) abuf->fields.sfmt_add3.f
1294 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1295 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1299 int UNUSED insn_referenced
= abuf
->written
;
1302 in_sr
= FLD (in_sr
);
1303 out_dr
= FLD (out_dr
);
1304 referenced
|= 1 << 0;
1305 referenced
|= 1 << 1;
1306 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1313 model_m32rx_ld_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
1315 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1316 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1317 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1321 int UNUSED insn_referenced
= abuf
->written
;
1324 in_sr
= FLD (in_sr
);
1325 out_dr
= FLD (out_dr
);
1326 referenced
|= 1 << 0;
1327 referenced
|= 1 << 1;
1328 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1332 int UNUSED insn_referenced
= abuf
->written
;
1336 in_dr
= FLD (in_sr
);
1337 out_dr
= FLD (out_sr
);
1338 referenced
|= 1 << 0;
1339 referenced
|= 1 << 2;
1340 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
1347 model_m32rx_ld24 (SIM_CPU
*current_cpu
, void *sem_arg
)
1349 #define FLD(f) abuf->fields.sfmt_ld24.f
1350 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1351 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1355 int UNUSED insn_referenced
= abuf
->written
;
1359 out_dr
= FLD (out_dr
);
1360 referenced
|= 1 << 2;
1361 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1368 model_m32rx_ldi8 (SIM_CPU
*current_cpu
, void *sem_arg
)
1370 #define FLD(f) abuf->fields.sfmt_addi.f
1371 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1372 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1376 int UNUSED insn_referenced
= abuf
->written
;
1380 out_dr
= FLD (out_dr
);
1381 referenced
|= 1 << 2;
1382 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1389 model_m32rx_ldi16 (SIM_CPU
*current_cpu
, void *sem_arg
)
1391 #define FLD(f) abuf->fields.sfmt_add3.f
1392 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1393 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1397 int UNUSED insn_referenced
= abuf
->written
;
1401 out_dr
= FLD (out_dr
);
1402 referenced
|= 1 << 2;
1403 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1410 model_m32rx_lock (SIM_CPU
*current_cpu
, void *sem_arg
)
1412 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1413 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1414 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1418 int UNUSED insn_referenced
= abuf
->written
;
1421 in_sr
= FLD (in_sr
);
1422 out_dr
= FLD (out_dr
);
1423 referenced
|= 1 << 0;
1424 referenced
|= 1 << 1;
1425 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1432 model_m32rx_machi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1434 #define FLD(f) abuf->fields.sfmt_machi_a.f
1435 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1436 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1440 int UNUSED insn_referenced
= abuf
->written
;
1443 in_src1
= FLD (in_src1
);
1444 in_src2
= FLD (in_src2
);
1445 referenced
|= 1 << 0;
1446 referenced
|= 1 << 1;
1447 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1454 model_m32rx_maclo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1456 #define FLD(f) abuf->fields.sfmt_machi_a.f
1457 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1458 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1462 int UNUSED insn_referenced
= abuf
->written
;
1465 in_src1
= FLD (in_src1
);
1466 in_src2
= FLD (in_src2
);
1467 referenced
|= 1 << 0;
1468 referenced
|= 1 << 1;
1469 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1476 model_m32rx_macwhi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1478 #define FLD(f) abuf->fields.sfmt_machi_a.f
1479 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1480 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1484 int UNUSED insn_referenced
= abuf
->written
;
1487 in_src1
= FLD (in_src1
);
1488 in_src2
= FLD (in_src2
);
1489 referenced
|= 1 << 0;
1490 referenced
|= 1 << 1;
1491 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1498 model_m32rx_macwlo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1500 #define FLD(f) abuf->fields.sfmt_machi_a.f
1501 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1502 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1506 int UNUSED insn_referenced
= abuf
->written
;
1509 in_src1
= FLD (in_src1
);
1510 in_src2
= FLD (in_src2
);
1511 referenced
|= 1 << 0;
1512 referenced
|= 1 << 1;
1513 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1520 model_m32rx_mul (SIM_CPU
*current_cpu
, void *sem_arg
)
1522 #define FLD(f) abuf->fields.sfmt_add.f
1523 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1524 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1528 int UNUSED insn_referenced
= abuf
->written
;
1532 in_sr
= FLD (in_sr
);
1533 in_dr
= FLD (in_dr
);
1534 out_dr
= FLD (out_dr
);
1535 referenced
|= 1 << 0;
1536 referenced
|= 1 << 1;
1537 referenced
|= 1 << 2;
1538 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1545 model_m32rx_mulhi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1547 #define FLD(f) abuf->fields.sfmt_machi_a.f
1548 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1549 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1553 int UNUSED insn_referenced
= abuf
->written
;
1556 in_src1
= FLD (in_src1
);
1557 in_src2
= FLD (in_src2
);
1558 referenced
|= 1 << 0;
1559 referenced
|= 1 << 1;
1560 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1567 model_m32rx_mullo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1569 #define FLD(f) abuf->fields.sfmt_machi_a.f
1570 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1571 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1575 int UNUSED insn_referenced
= abuf
->written
;
1578 in_src1
= FLD (in_src1
);
1579 in_src2
= FLD (in_src2
);
1580 referenced
|= 1 << 0;
1581 referenced
|= 1 << 1;
1582 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1589 model_m32rx_mulwhi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1591 #define FLD(f) abuf->fields.sfmt_machi_a.f
1592 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1593 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1597 int UNUSED insn_referenced
= abuf
->written
;
1600 in_src1
= FLD (in_src1
);
1601 in_src2
= FLD (in_src2
);
1602 referenced
|= 1 << 0;
1603 referenced
|= 1 << 1;
1604 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1611 model_m32rx_mulwlo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1613 #define FLD(f) abuf->fields.sfmt_machi_a.f
1614 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1615 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1619 int UNUSED insn_referenced
= abuf
->written
;
1622 in_src1
= FLD (in_src1
);
1623 in_src2
= FLD (in_src2
);
1624 referenced
|= 1 << 0;
1625 referenced
|= 1 << 1;
1626 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1633 model_m32rx_mv (SIM_CPU
*current_cpu
, void *sem_arg
)
1635 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1636 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1637 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1641 int UNUSED insn_referenced
= abuf
->written
;
1645 in_sr
= FLD (in_sr
);
1646 out_dr
= FLD (out_dr
);
1647 referenced
|= 1 << 0;
1648 referenced
|= 1 << 2;
1649 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1656 model_m32rx_mvfachi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1658 #define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1659 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1660 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1664 int UNUSED insn_referenced
= abuf
->written
;
1668 out_dr
= FLD (out_dr
);
1669 referenced
|= 1 << 2;
1670 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1677 model_m32rx_mvfaclo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1679 #define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1680 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1681 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1685 int UNUSED insn_referenced
= abuf
->written
;
1689 out_dr
= FLD (out_dr
);
1690 referenced
|= 1 << 2;
1691 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1698 model_m32rx_mvfacmi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1700 #define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1701 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1702 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1706 int UNUSED insn_referenced
= abuf
->written
;
1710 out_dr
= FLD (out_dr
);
1711 referenced
|= 1 << 2;
1712 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1719 model_m32rx_mvfc (SIM_CPU
*current_cpu
, void *sem_arg
)
1721 #define FLD(f) abuf->fields.sfmt_mvfc.f
1722 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1723 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1727 int UNUSED insn_referenced
= abuf
->written
;
1731 out_dr
= FLD (out_dr
);
1732 referenced
|= 1 << 2;
1733 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1740 model_m32rx_mvtachi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1742 #define FLD(f) abuf->fields.sfmt_mvtachi_a.f
1743 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1744 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1748 int UNUSED insn_referenced
= abuf
->written
;
1752 in_sr
= FLD (in_src1
);
1753 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1760 model_m32rx_mvtaclo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1762 #define FLD(f) abuf->fields.sfmt_mvtachi_a.f
1763 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1764 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1768 int UNUSED insn_referenced
= abuf
->written
;
1772 in_sr
= FLD (in_src1
);
1773 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1780 model_m32rx_mvtc (SIM_CPU
*current_cpu
, void *sem_arg
)
1782 #define FLD(f) abuf->fields.sfmt_mvtc.f
1783 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1784 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1788 int UNUSED insn_referenced
= abuf
->written
;
1792 in_sr
= FLD (in_sr
);
1793 referenced
|= 1 << 0;
1794 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1801 model_m32rx_neg (SIM_CPU
*current_cpu
, void *sem_arg
)
1803 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1804 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1805 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1809 int UNUSED insn_referenced
= abuf
->written
;
1813 in_sr
= FLD (in_sr
);
1814 out_dr
= FLD (out_dr
);
1815 referenced
|= 1 << 0;
1816 referenced
|= 1 << 2;
1817 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1824 model_m32rx_nop (SIM_CPU
*current_cpu
, void *sem_arg
)
1826 #define FLD(f) abuf->fields.fmt_empty.f
1827 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1828 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1832 int UNUSED insn_referenced
= abuf
->written
;
1836 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1843 model_m32rx_not (SIM_CPU
*current_cpu
, void *sem_arg
)
1845 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1846 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1847 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1851 int UNUSED insn_referenced
= abuf
->written
;
1855 in_sr
= FLD (in_sr
);
1856 out_dr
= FLD (out_dr
);
1857 referenced
|= 1 << 0;
1858 referenced
|= 1 << 2;
1859 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1866 model_m32rx_rac_dsi (SIM_CPU
*current_cpu
, void *sem_arg
)
1868 #define FLD(f) abuf->fields.sfmt_rac_dsi.f
1869 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1870 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1874 int UNUSED insn_referenced
= abuf
->written
;
1877 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1884 model_m32rx_rach_dsi (SIM_CPU
*current_cpu
, void *sem_arg
)
1886 #define FLD(f) abuf->fields.sfmt_rac_dsi.f
1887 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1888 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1892 int UNUSED insn_referenced
= abuf
->written
;
1895 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1902 model_m32rx_rte (SIM_CPU
*current_cpu
, void *sem_arg
)
1904 #define FLD(f) abuf->fields.fmt_empty.f
1905 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1906 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1910 int UNUSED insn_referenced
= abuf
->written
;
1914 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1921 model_m32rx_seth (SIM_CPU
*current_cpu
, void *sem_arg
)
1923 #define FLD(f) abuf->fields.sfmt_seth.f
1924 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1925 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1929 int UNUSED insn_referenced
= abuf
->written
;
1933 out_dr
= FLD (out_dr
);
1934 referenced
|= 1 << 2;
1935 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1942 model_m32rx_sll (SIM_CPU
*current_cpu
, void *sem_arg
)
1944 #define FLD(f) abuf->fields.sfmt_add.f
1945 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1946 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1950 int UNUSED insn_referenced
= abuf
->written
;
1954 in_sr
= FLD (in_sr
);
1955 in_dr
= FLD (in_dr
);
1956 out_dr
= FLD (out_dr
);
1957 referenced
|= 1 << 0;
1958 referenced
|= 1 << 1;
1959 referenced
|= 1 << 2;
1960 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1967 model_m32rx_sll3 (SIM_CPU
*current_cpu
, void *sem_arg
)
1969 #define FLD(f) abuf->fields.sfmt_add3.f
1970 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1971 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1975 int UNUSED insn_referenced
= abuf
->written
;
1979 in_sr
= FLD (in_sr
);
1980 out_dr
= FLD (out_dr
);
1981 referenced
|= 1 << 0;
1982 referenced
|= 1 << 2;
1983 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1990 model_m32rx_slli (SIM_CPU
*current_cpu
, void *sem_arg
)
1992 #define FLD(f) abuf->fields.sfmt_slli.f
1993 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1994 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1998 int UNUSED insn_referenced
= abuf
->written
;
2002 in_dr
= FLD (in_dr
);
2003 out_dr
= FLD (out_dr
);
2004 referenced
|= 1 << 1;
2005 referenced
|= 1 << 2;
2006 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2013 model_m32rx_sra (SIM_CPU
*current_cpu
, void *sem_arg
)
2015 #define FLD(f) abuf->fields.sfmt_add.f
2016 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2017 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2021 int UNUSED insn_referenced
= abuf
->written
;
2025 in_sr
= FLD (in_sr
);
2026 in_dr
= FLD (in_dr
);
2027 out_dr
= FLD (out_dr
);
2028 referenced
|= 1 << 0;
2029 referenced
|= 1 << 1;
2030 referenced
|= 1 << 2;
2031 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2038 model_m32rx_sra3 (SIM_CPU
*current_cpu
, void *sem_arg
)
2040 #define FLD(f) abuf->fields.sfmt_add3.f
2041 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2042 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2046 int UNUSED insn_referenced
= abuf
->written
;
2050 in_sr
= FLD (in_sr
);
2051 out_dr
= FLD (out_dr
);
2052 referenced
|= 1 << 0;
2053 referenced
|= 1 << 2;
2054 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2061 model_m32rx_srai (SIM_CPU
*current_cpu
, void *sem_arg
)
2063 #define FLD(f) abuf->fields.sfmt_slli.f
2064 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2065 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2069 int UNUSED insn_referenced
= abuf
->written
;
2073 in_dr
= FLD (in_dr
);
2074 out_dr
= FLD (out_dr
);
2075 referenced
|= 1 << 1;
2076 referenced
|= 1 << 2;
2077 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2084 model_m32rx_srl (SIM_CPU
*current_cpu
, void *sem_arg
)
2086 #define FLD(f) abuf->fields.sfmt_add.f
2087 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2088 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2092 int UNUSED insn_referenced
= abuf
->written
;
2096 in_sr
= FLD (in_sr
);
2097 in_dr
= FLD (in_dr
);
2098 out_dr
= FLD (out_dr
);
2099 referenced
|= 1 << 0;
2100 referenced
|= 1 << 1;
2101 referenced
|= 1 << 2;
2102 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2109 model_m32rx_srl3 (SIM_CPU
*current_cpu
, void *sem_arg
)
2111 #define FLD(f) abuf->fields.sfmt_add3.f
2112 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2113 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2117 int UNUSED insn_referenced
= abuf
->written
;
2121 in_sr
= FLD (in_sr
);
2122 out_dr
= FLD (out_dr
);
2123 referenced
|= 1 << 0;
2124 referenced
|= 1 << 2;
2125 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2132 model_m32rx_srli (SIM_CPU
*current_cpu
, void *sem_arg
)
2134 #define FLD(f) abuf->fields.sfmt_slli.f
2135 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2136 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2140 int UNUSED insn_referenced
= abuf
->written
;
2144 in_dr
= FLD (in_dr
);
2145 out_dr
= FLD (out_dr
);
2146 referenced
|= 1 << 1;
2147 referenced
|= 1 << 2;
2148 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2155 model_m32rx_st (SIM_CPU
*current_cpu
, void *sem_arg
)
2157 #define FLD(f) abuf->fields.sfmt_st_plus.f
2158 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2159 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2163 int UNUSED insn_referenced
= abuf
->written
;
2166 in_src1
= FLD (in_src1
);
2167 in_src2
= FLD (in_src2
);
2168 referenced
|= 1 << 0;
2169 referenced
|= 1 << 1;
2170 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2177 model_m32rx_st_d (SIM_CPU
*current_cpu
, void *sem_arg
)
2179 #define FLD(f) abuf->fields.sfmt_st_d.f
2180 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2181 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2185 int UNUSED insn_referenced
= abuf
->written
;
2188 in_src1
= FLD (in_src1
);
2189 in_src2
= FLD (in_src2
);
2190 referenced
|= 1 << 0;
2191 referenced
|= 1 << 1;
2192 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2199 model_m32rx_stb (SIM_CPU
*current_cpu
, void *sem_arg
)
2201 #define FLD(f) abuf->fields.sfmt_st_plus.f
2202 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2203 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2207 int UNUSED insn_referenced
= abuf
->written
;
2210 in_src1
= FLD (in_src1
);
2211 in_src2
= FLD (in_src2
);
2212 referenced
|= 1 << 0;
2213 referenced
|= 1 << 1;
2214 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2221 model_m32rx_stb_d (SIM_CPU
*current_cpu
, void *sem_arg
)
2223 #define FLD(f) abuf->fields.sfmt_st_d.f
2224 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2225 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2229 int UNUSED insn_referenced
= abuf
->written
;
2232 in_src1
= FLD (in_src1
);
2233 in_src2
= FLD (in_src2
);
2234 referenced
|= 1 << 0;
2235 referenced
|= 1 << 1;
2236 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2243 model_m32rx_sth (SIM_CPU
*current_cpu
, void *sem_arg
)
2245 #define FLD(f) abuf->fields.sfmt_st_plus.f
2246 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2247 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2251 int UNUSED insn_referenced
= abuf
->written
;
2254 in_src1
= FLD (in_src1
);
2255 in_src2
= FLD (in_src2
);
2256 referenced
|= 1 << 0;
2257 referenced
|= 1 << 1;
2258 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2265 model_m32rx_sth_d (SIM_CPU
*current_cpu
, void *sem_arg
)
2267 #define FLD(f) abuf->fields.sfmt_st_d.f
2268 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2269 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2273 int UNUSED insn_referenced
= abuf
->written
;
2276 in_src1
= FLD (in_src1
);
2277 in_src2
= FLD (in_src2
);
2278 referenced
|= 1 << 0;
2279 referenced
|= 1 << 1;
2280 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2287 model_m32rx_st_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
2289 #define FLD(f) abuf->fields.sfmt_st_plus.f
2290 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2291 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2295 int UNUSED insn_referenced
= abuf
->written
;
2298 in_src1
= FLD (in_src1
);
2299 in_src2
= FLD (in_src2
);
2300 referenced
|= 1 << 0;
2301 referenced
|= 1 << 1;
2302 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2306 int UNUSED insn_referenced
= abuf
->written
;
2310 in_dr
= FLD (in_src2
);
2311 out_dr
= FLD (out_src2
);
2312 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2319 model_m32rx_st_minus (SIM_CPU
*current_cpu
, void *sem_arg
)
2321 #define FLD(f) abuf->fields.sfmt_st_plus.f
2322 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2323 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2327 int UNUSED insn_referenced
= abuf
->written
;
2330 in_src1
= FLD (in_src1
);
2331 in_src2
= FLD (in_src2
);
2332 referenced
|= 1 << 0;
2333 referenced
|= 1 << 1;
2334 cycles
+= m32rxf_model_m32rx_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2338 int UNUSED insn_referenced
= abuf
->written
;
2342 in_dr
= FLD (in_src2
);
2343 out_dr
= FLD (out_src2
);
2344 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2351 model_m32rx_sub (SIM_CPU
*current_cpu
, void *sem_arg
)
2353 #define FLD(f) abuf->fields.sfmt_add.f
2354 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2355 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2359 int UNUSED insn_referenced
= abuf
->written
;
2363 in_sr
= FLD (in_sr
);
2364 in_dr
= FLD (in_dr
);
2365 out_dr
= FLD (out_dr
);
2366 referenced
|= 1 << 0;
2367 referenced
|= 1 << 1;
2368 referenced
|= 1 << 2;
2369 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2376 model_m32rx_subv (SIM_CPU
*current_cpu
, void *sem_arg
)
2378 #define FLD(f) abuf->fields.sfmt_add.f
2379 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2380 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2384 int UNUSED insn_referenced
= abuf
->written
;
2388 in_sr
= FLD (in_sr
);
2389 in_dr
= FLD (in_dr
);
2390 out_dr
= FLD (out_dr
);
2391 referenced
|= 1 << 0;
2392 referenced
|= 1 << 1;
2393 referenced
|= 1 << 2;
2394 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2401 model_m32rx_subx (SIM_CPU
*current_cpu
, void *sem_arg
)
2403 #define FLD(f) abuf->fields.sfmt_add.f
2404 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2405 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2409 int UNUSED insn_referenced
= abuf
->written
;
2413 in_sr
= FLD (in_sr
);
2414 in_dr
= FLD (in_dr
);
2415 out_dr
= FLD (out_dr
);
2416 referenced
|= 1 << 0;
2417 referenced
|= 1 << 1;
2418 referenced
|= 1 << 2;
2419 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2426 model_m32rx_trap (SIM_CPU
*current_cpu
, void *sem_arg
)
2428 #define FLD(f) abuf->fields.sfmt_trap.f
2429 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2430 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2434 int UNUSED insn_referenced
= abuf
->written
;
2438 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2445 model_m32rx_unlock (SIM_CPU
*current_cpu
, void *sem_arg
)
2447 #define FLD(f) abuf->fields.sfmt_st_plus.f
2448 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2449 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2453 int UNUSED insn_referenced
= abuf
->written
;
2456 cycles
+= m32rxf_model_m32rx_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
2463 model_m32rx_satb (SIM_CPU
*current_cpu
, void *sem_arg
)
2465 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2466 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2467 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2471 int UNUSED insn_referenced
= abuf
->written
;
2475 in_sr
= FLD (in_sr
);
2476 out_dr
= FLD (out_dr
);
2477 referenced
|= 1 << 0;
2478 referenced
|= 1 << 2;
2479 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2486 model_m32rx_sath (SIM_CPU
*current_cpu
, void *sem_arg
)
2488 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2489 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2490 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2494 int UNUSED insn_referenced
= abuf
->written
;
2498 in_sr
= FLD (in_sr
);
2499 out_dr
= FLD (out_dr
);
2500 referenced
|= 1 << 0;
2501 referenced
|= 1 << 2;
2502 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2509 model_m32rx_sat (SIM_CPU
*current_cpu
, void *sem_arg
)
2511 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2512 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2513 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2517 int UNUSED insn_referenced
= abuf
->written
;
2521 in_sr
= FLD (in_sr
);
2522 out_dr
= FLD (out_dr
);
2523 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2524 referenced
|= 1 << 2;
2525 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2532 model_m32rx_pcmpbz (SIM_CPU
*current_cpu
, void *sem_arg
)
2534 #define FLD(f) abuf->fields.sfmt_st_plus.f
2535 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2536 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2540 int UNUSED insn_referenced
= abuf
->written
;
2543 in_src2
= FLD (in_src2
);
2544 referenced
|= 1 << 1;
2545 cycles
+= m32rxf_model_m32rx_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2552 model_m32rx_sadd (SIM_CPU
*current_cpu
, void *sem_arg
)
2554 #define FLD(f) abuf->fields.fmt_empty.f
2555 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2556 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2560 int UNUSED insn_referenced
= abuf
->written
;
2563 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2570 model_m32rx_macwu1 (SIM_CPU
*current_cpu
, void *sem_arg
)
2572 #define FLD(f) abuf->fields.sfmt_st_plus.f
2573 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2574 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2578 int UNUSED insn_referenced
= abuf
->written
;
2581 in_src1
= FLD (in_src1
);
2582 in_src2
= FLD (in_src2
);
2583 referenced
|= 1 << 0;
2584 referenced
|= 1 << 1;
2585 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2592 model_m32rx_msblo (SIM_CPU
*current_cpu
, void *sem_arg
)
2594 #define FLD(f) abuf->fields.sfmt_st_plus.f
2595 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2596 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2600 int UNUSED insn_referenced
= abuf
->written
;
2603 in_src1
= FLD (in_src1
);
2604 in_src2
= FLD (in_src2
);
2605 referenced
|= 1 << 0;
2606 referenced
|= 1 << 1;
2607 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2614 model_m32rx_mulwu1 (SIM_CPU
*current_cpu
, void *sem_arg
)
2616 #define FLD(f) abuf->fields.sfmt_st_plus.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
;
2625 in_src1
= FLD (in_src1
);
2626 in_src2
= FLD (in_src2
);
2627 referenced
|= 1 << 0;
2628 referenced
|= 1 << 1;
2629 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2636 model_m32rx_maclh1 (SIM_CPU
*current_cpu
, void *sem_arg
)
2638 #define FLD(f) abuf->fields.sfmt_st_plus.f
2639 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2640 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2644 int UNUSED insn_referenced
= abuf
->written
;
2647 in_src1
= FLD (in_src1
);
2648 in_src2
= FLD (in_src2
);
2649 referenced
|= 1 << 0;
2650 referenced
|= 1 << 1;
2651 cycles
+= m32rxf_model_m32rx_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2658 model_m32rx_sc (SIM_CPU
*current_cpu
, void *sem_arg
)
2660 #define FLD(f) abuf->fields.fmt_empty.f
2661 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2662 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2666 int UNUSED insn_referenced
= abuf
->written
;
2670 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2677 model_m32rx_snc (SIM_CPU
*current_cpu
, void *sem_arg
)
2679 #define FLD(f) abuf->fields.fmt_empty.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
;
2689 cycles
+= m32rxf_model_m32rx_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2695 /* We assume UNIT_NONE == 0 because the tables don't always terminate
2698 /* Model timing data for `m32rx'. */
2700 static const INSN_TIMING m32rx_timing
[] = {
2701 { M32RXF_INSN_X_INVALID
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2702 { M32RXF_INSN_X_AFTER
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2703 { M32RXF_INSN_X_BEFORE
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2704 { M32RXF_INSN_X_CTI_CHAIN
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2705 { M32RXF_INSN_X_CHAIN
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2706 { M32RXF_INSN_X_BEGIN
, 0, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2707 { M32RXF_INSN_ADD
, model_m32rx_add
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2708 { M32RXF_INSN_ADD3
, model_m32rx_add3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2709 { M32RXF_INSN_AND
, model_m32rx_and
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2710 { M32RXF_INSN_AND3
, model_m32rx_and3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2711 { M32RXF_INSN_OR
, model_m32rx_or
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2712 { M32RXF_INSN_OR3
, model_m32rx_or3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2713 { M32RXF_INSN_XOR
, model_m32rx_xor
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2714 { M32RXF_INSN_XOR3
, model_m32rx_xor3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2715 { M32RXF_INSN_ADDI
, model_m32rx_addi
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2716 { M32RXF_INSN_ADDV
, model_m32rx_addv
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2717 { M32RXF_INSN_ADDV3
, model_m32rx_addv3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2718 { M32RXF_INSN_ADDX
, model_m32rx_addx
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2719 { M32RXF_INSN_BC8
, model_m32rx_bc8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2720 { M32RXF_INSN_BC24
, model_m32rx_bc24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2721 { M32RXF_INSN_BEQ
, model_m32rx_beq
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2722 { M32RXF_INSN_BEQZ
, model_m32rx_beqz
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2723 { M32RXF_INSN_BGEZ
, model_m32rx_bgez
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2724 { M32RXF_INSN_BGTZ
, model_m32rx_bgtz
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2725 { M32RXF_INSN_BLEZ
, model_m32rx_blez
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2726 { M32RXF_INSN_BLTZ
, model_m32rx_bltz
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2727 { M32RXF_INSN_BNEZ
, model_m32rx_bnez
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2728 { M32RXF_INSN_BL8
, model_m32rx_bl8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2729 { M32RXF_INSN_BL24
, model_m32rx_bl24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2730 { M32RXF_INSN_BCL8
, model_m32rx_bcl8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2731 { M32RXF_INSN_BCL24
, model_m32rx_bcl24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2732 { M32RXF_INSN_BNC8
, model_m32rx_bnc8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2733 { M32RXF_INSN_BNC24
, model_m32rx_bnc24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2734 { M32RXF_INSN_BNE
, model_m32rx_bne
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 }, { (int) UNIT_M32RX_U_CMP
, 1, 0 } } },
2735 { M32RXF_INSN_BRA8
, model_m32rx_bra8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2736 { M32RXF_INSN_BRA24
, model_m32rx_bra24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2737 { M32RXF_INSN_BNCL8
, model_m32rx_bncl8
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2738 { M32RXF_INSN_BNCL24
, model_m32rx_bncl24
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2739 { M32RXF_INSN_CMP
, model_m32rx_cmp
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2740 { M32RXF_INSN_CMPI
, model_m32rx_cmpi
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2741 { M32RXF_INSN_CMPU
, model_m32rx_cmpu
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2742 { M32RXF_INSN_CMPUI
, model_m32rx_cmpui
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2743 { M32RXF_INSN_CMPEQ
, model_m32rx_cmpeq
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2744 { M32RXF_INSN_CMPZ
, model_m32rx_cmpz
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2745 { M32RXF_INSN_DIV
, model_m32rx_div
, { { (int) UNIT_M32RX_U_EXEC
, 1, 37 } } },
2746 { M32RXF_INSN_DIVU
, model_m32rx_divu
, { { (int) UNIT_M32RX_U_EXEC
, 1, 37 } } },
2747 { M32RXF_INSN_REM
, model_m32rx_rem
, { { (int) UNIT_M32RX_U_EXEC
, 1, 37 } } },
2748 { M32RXF_INSN_REMU
, model_m32rx_remu
, { { (int) UNIT_M32RX_U_EXEC
, 1, 37 } } },
2749 { M32RXF_INSN_DIVH
, model_m32rx_divh
, { { (int) UNIT_M32RX_U_EXEC
, 1, 21 } } },
2750 { M32RXF_INSN_JC
, model_m32rx_jc
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2751 { M32RXF_INSN_JNC
, model_m32rx_jnc
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2752 { M32RXF_INSN_JL
, model_m32rx_jl
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2753 { M32RXF_INSN_JMP
, model_m32rx_jmp
, { { (int) UNIT_M32RX_U_CTI
, 1, 1 } } },
2754 { M32RXF_INSN_LD
, model_m32rx_ld
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2755 { M32RXF_INSN_LD_D
, model_m32rx_ld_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2756 { M32RXF_INSN_LDB
, model_m32rx_ldb
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2757 { M32RXF_INSN_LDB_D
, model_m32rx_ldb_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2758 { M32RXF_INSN_LDH
, model_m32rx_ldh
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2759 { M32RXF_INSN_LDH_D
, model_m32rx_ldh_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2760 { M32RXF_INSN_LDUB
, model_m32rx_ldub
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2761 { M32RXF_INSN_LDUB_D
, model_m32rx_ldub_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2762 { M32RXF_INSN_LDUH
, model_m32rx_lduh
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2763 { M32RXF_INSN_LDUH_D
, model_m32rx_lduh_d
, { { (int) UNIT_M32RX_U_LOAD
, 1, 2 } } },
2764 { M32RXF_INSN_LD_PLUS
, model_m32rx_ld_plus
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 }, { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2765 { M32RXF_INSN_LD24
, model_m32rx_ld24
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2766 { M32RXF_INSN_LDI8
, model_m32rx_ldi8
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2767 { M32RXF_INSN_LDI16
, model_m32rx_ldi16
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2768 { M32RXF_INSN_LOCK
, model_m32rx_lock
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2769 { M32RXF_INSN_MACHI_A
, model_m32rx_machi_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2770 { M32RXF_INSN_MACLO_A
, model_m32rx_maclo_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2771 { M32RXF_INSN_MACWHI_A
, model_m32rx_macwhi_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2772 { M32RXF_INSN_MACWLO_A
, model_m32rx_macwlo_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2773 { M32RXF_INSN_MUL
, model_m32rx_mul
, { { (int) UNIT_M32RX_U_EXEC
, 1, 4 } } },
2774 { M32RXF_INSN_MULHI_A
, model_m32rx_mulhi_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2775 { M32RXF_INSN_MULLO_A
, model_m32rx_mullo_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2776 { M32RXF_INSN_MULWHI_A
, model_m32rx_mulwhi_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2777 { M32RXF_INSN_MULWLO_A
, model_m32rx_mulwlo_a
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2778 { M32RXF_INSN_MV
, model_m32rx_mv
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2779 { M32RXF_INSN_MVFACHI_A
, model_m32rx_mvfachi_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 2 } } },
2780 { M32RXF_INSN_MVFACLO_A
, model_m32rx_mvfaclo_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 2 } } },
2781 { M32RXF_INSN_MVFACMI_A
, model_m32rx_mvfacmi_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 2 } } },
2782 { M32RXF_INSN_MVFC
, model_m32rx_mvfc
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2783 { M32RXF_INSN_MVTACHI_A
, model_m32rx_mvtachi_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2784 { M32RXF_INSN_MVTACLO_A
, model_m32rx_mvtaclo_a
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2785 { M32RXF_INSN_MVTC
, model_m32rx_mvtc
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2786 { M32RXF_INSN_NEG
, model_m32rx_neg
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2787 { M32RXF_INSN_NOP
, model_m32rx_nop
, { { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2788 { M32RXF_INSN_NOT
, model_m32rx_not
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2789 { M32RXF_INSN_RAC_DSI
, model_m32rx_rac_dsi
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2790 { M32RXF_INSN_RACH_DSI
, model_m32rx_rach_dsi
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2791 { M32RXF_INSN_RTE
, model_m32rx_rte
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2792 { M32RXF_INSN_SETH
, model_m32rx_seth
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2793 { M32RXF_INSN_SLL
, model_m32rx_sll
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2794 { M32RXF_INSN_SLL3
, model_m32rx_sll3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2795 { M32RXF_INSN_SLLI
, model_m32rx_slli
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2796 { M32RXF_INSN_SRA
, model_m32rx_sra
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2797 { M32RXF_INSN_SRA3
, model_m32rx_sra3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2798 { M32RXF_INSN_SRAI
, model_m32rx_srai
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2799 { M32RXF_INSN_SRL
, model_m32rx_srl
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2800 { M32RXF_INSN_SRL3
, model_m32rx_srl3
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2801 { M32RXF_INSN_SRLI
, model_m32rx_srli
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2802 { M32RXF_INSN_ST
, model_m32rx_st
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 } } },
2803 { M32RXF_INSN_ST_D
, model_m32rx_st_d
, { { (int) UNIT_M32RX_U_STORE
, 1, 2 } } },
2804 { M32RXF_INSN_STB
, model_m32rx_stb
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 } } },
2805 { M32RXF_INSN_STB_D
, model_m32rx_stb_d
, { { (int) UNIT_M32RX_U_STORE
, 1, 2 } } },
2806 { M32RXF_INSN_STH
, model_m32rx_sth
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 } } },
2807 { M32RXF_INSN_STH_D
, model_m32rx_sth_d
, { { (int) UNIT_M32RX_U_STORE
, 1, 2 } } },
2808 { M32RXF_INSN_ST_PLUS
, model_m32rx_st_plus
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 }, { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2809 { M32RXF_INSN_ST_MINUS
, model_m32rx_st_minus
, { { (int) UNIT_M32RX_U_STORE
, 1, 1 }, { (int) UNIT_M32RX_U_EXEC
, 1, 0 } } },
2810 { M32RXF_INSN_SUB
, model_m32rx_sub
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2811 { M32RXF_INSN_SUBV
, model_m32rx_subv
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2812 { M32RXF_INSN_SUBX
, model_m32rx_subx
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2813 { M32RXF_INSN_TRAP
, model_m32rx_trap
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2814 { M32RXF_INSN_UNLOCK
, model_m32rx_unlock
, { { (int) UNIT_M32RX_U_LOAD
, 1, 1 } } },
2815 { M32RXF_INSN_SATB
, model_m32rx_satb
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2816 { M32RXF_INSN_SATH
, model_m32rx_sath
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2817 { M32RXF_INSN_SAT
, model_m32rx_sat
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2818 { M32RXF_INSN_PCMPBZ
, model_m32rx_pcmpbz
, { { (int) UNIT_M32RX_U_CMP
, 1, 1 } } },
2819 { M32RXF_INSN_SADD
, model_m32rx_sadd
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2820 { M32RXF_INSN_MACWU1
, model_m32rx_macwu1
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2821 { M32RXF_INSN_MSBLO
, model_m32rx_msblo
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2822 { M32RXF_INSN_MULWU1
, model_m32rx_mulwu1
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2823 { M32RXF_INSN_MACLH1
, model_m32rx_maclh1
, { { (int) UNIT_M32RX_U_MAC
, 1, 1 } } },
2824 { M32RXF_INSN_SC
, model_m32rx_sc
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2825 { M32RXF_INSN_SNC
, model_m32rx_snc
, { { (int) UNIT_M32RX_U_EXEC
, 1, 1 } } },
2828 #endif /* WITH_PROFILE_MODEL_P */
2831 m32rx_model_init (SIM_CPU
*cpu
)
2833 CPU_MODEL_DATA (cpu
) = (void *) zalloc (sizeof (MODEL_M32RX_DATA
));
2836 #if WITH_PROFILE_MODEL_P
2837 #define TIMING_DATA(td) td
2839 #define TIMING_DATA(td) 0
2842 static const MODEL m32rx_models
[] =
2844 { "m32rx", & m32rx_mach
, MODEL_M32RX
, TIMING_DATA (& m32rx_timing
[0]), m32rx_model_init
},
2848 /* The properties of this cpu's implementation. */
2850 static const MACH_IMP_PROPERTIES m32rxf_imp_properties
=
2862 m32rxf_prepare_run (SIM_CPU
*cpu
)
2864 if (CPU_IDESC (cpu
) == NULL
)
2865 m32rxf_init_idesc_table (cpu
);
2868 static const CGEN_INSN
*
2869 m32rxf_get_idata (SIM_CPU
*cpu
, int inum
)
2871 return CPU_IDESC (cpu
) [inum
].idata
;
2875 m32rx_init_cpu (SIM_CPU
*cpu
)
2877 CPU_REG_FETCH (cpu
) = m32rxf_fetch_register
;
2878 CPU_REG_STORE (cpu
) = m32rxf_store_register
;
2879 CPU_PC_FETCH (cpu
) = m32rxf_h_pc_get
;
2880 CPU_PC_STORE (cpu
) = m32rxf_h_pc_set
;
2881 CPU_GET_IDATA (cpu
) = m32rxf_get_idata
;
2882 CPU_MAX_INSNS (cpu
) = M32RXF_INSN_MAX
;
2883 CPU_INSN_NAME (cpu
) = cgen_insn_name
;
2884 CPU_FULL_ENGINE_FN (cpu
) = m32rxf_engine_run_full
;
2886 CPU_FAST_ENGINE_FN (cpu
) = m32rxf_engine_run_fast
;
2888 CPU_FAST_ENGINE_FN (cpu
) = m32rxf_engine_run_full
;
2892 const MACH m32rx_mach
=
2894 "m32rx", "m32rx", MACH_M32RX
,
2895 32, 32, & m32rx_models
[0], & m32rxf_imp_properties
,