1 /* Simulator model support for m32r2f.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996-2024 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, write to the Free Software Foundation, Inc.,
21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
25 #define WANT_CPU m32r2f
26 #define WANT_CPU_M32R2F
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_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
63 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
86 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
111 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
134 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
159 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
182 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
207 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
230 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
253 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
278 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
301 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
326 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
344 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
362 model_m32r2_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
+= m32r2f_model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
391 model_m32r2_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
+= m32r2f_model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
418 model_m32r2_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
+= m32r2f_model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
445 model_m32r2_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
+= m32r2f_model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
472 model_m32r2_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
+= m32r2f_model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
499 model_m32r2_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
+= m32r2f_model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
526 model_m32r2_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
+= m32r2f_model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
553 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
571 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
589 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
607 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
625 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
643 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
661 model_m32r2_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
+= m32r2f_model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 1, referenced
, in_src1
, in_src2
);
690 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
708 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
726 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
744 model_m32r2_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
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
762 model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
784 model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
804 model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
826 model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
846 model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
868 model_m32r2_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
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
888 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
913 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
938 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
963 model_m32r2_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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
988 model_m32r2_remh (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
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1013 model_m32r2_remuh (SIM_CPU
*current_cpu
, void *sem_arg
)
1015 #define FLD(f) abuf->fields.sfmt_add.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
;
1025 in_sr
= FLD (in_sr
);
1026 in_dr
= FLD (in_dr
);
1027 out_dr
= FLD (out_dr
);
1028 referenced
|= 1 << 0;
1029 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1030 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
1031 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1038 model_m32r2_remb (SIM_CPU
*current_cpu
, void *sem_arg
)
1040 #define FLD(f) abuf->fields.sfmt_add.f
1041 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1042 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1046 int UNUSED insn_referenced
= abuf
->written
;
1050 in_sr
= FLD (in_sr
);
1051 in_dr
= FLD (in_dr
);
1052 out_dr
= FLD (out_dr
);
1053 referenced
|= 1 << 0;
1054 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1055 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
1056 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1063 model_m32r2_remub (SIM_CPU
*current_cpu
, void *sem_arg
)
1065 #define FLD(f) abuf->fields.sfmt_add.f
1066 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1067 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1071 int UNUSED insn_referenced
= abuf
->written
;
1075 in_sr
= FLD (in_sr
);
1076 in_dr
= FLD (in_dr
);
1077 out_dr
= FLD (out_dr
);
1078 referenced
|= 1 << 0;
1079 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1080 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
1081 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1088 model_m32r2_divuh (SIM_CPU
*current_cpu
, void *sem_arg
)
1090 #define FLD(f) abuf->fields.sfmt_add.f
1091 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1092 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1096 int UNUSED insn_referenced
= abuf
->written
;
1100 in_sr
= FLD (in_sr
);
1101 in_dr
= FLD (in_dr
);
1102 out_dr
= FLD (out_dr
);
1103 referenced
|= 1 << 0;
1104 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1105 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
1106 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1113 model_m32r2_divb (SIM_CPU
*current_cpu
, void *sem_arg
)
1115 #define FLD(f) abuf->fields.sfmt_add.f
1116 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1117 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1121 int UNUSED insn_referenced
= abuf
->written
;
1125 in_sr
= FLD (in_sr
);
1126 in_dr
= FLD (in_dr
);
1127 out_dr
= FLD (out_dr
);
1128 referenced
|= 1 << 0;
1129 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1130 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
1131 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1138 model_m32r2_divub (SIM_CPU
*current_cpu
, void *sem_arg
)
1140 #define FLD(f) abuf->fields.sfmt_add.f
1141 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1142 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1146 int UNUSED insn_referenced
= abuf
->written
;
1150 in_sr
= FLD (in_sr
);
1151 in_dr
= FLD (in_dr
);
1152 out_dr
= FLD (out_dr
);
1153 referenced
|= 1 << 0;
1154 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1155 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
1156 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1163 model_m32r2_divh (SIM_CPU
*current_cpu
, void *sem_arg
)
1165 #define FLD(f) abuf->fields.sfmt_add.f
1166 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1167 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1171 int UNUSED insn_referenced
= abuf
->written
;
1175 in_sr
= FLD (in_sr
);
1176 in_dr
= FLD (in_dr
);
1177 out_dr
= FLD (out_dr
);
1178 referenced
|= 1 << 0;
1179 if (insn_referenced
& (1 << 0)) referenced
|= 1 << 1;
1180 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 2;
1181 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1188 model_m32r2_jc (SIM_CPU
*current_cpu
, void *sem_arg
)
1190 #define FLD(f) abuf->fields.sfmt_jl.f
1191 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1192 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1196 int UNUSED insn_referenced
= abuf
->written
;
1198 in_sr
= FLD (in_sr
);
1199 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1200 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
1201 cycles
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1208 model_m32r2_jnc (SIM_CPU
*current_cpu
, void *sem_arg
)
1210 #define FLD(f) abuf->fields.sfmt_jl.f
1211 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1212 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1216 int UNUSED insn_referenced
= abuf
->written
;
1218 in_sr
= FLD (in_sr
);
1219 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
1220 if (insn_referenced
& (1 << 2)) referenced
|= 1 << 1;
1221 cycles
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1228 model_m32r2_jl (SIM_CPU
*current_cpu
, void *sem_arg
)
1230 #define FLD(f) abuf->fields.sfmt_jl.f
1231 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1232 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1236 int UNUSED insn_referenced
= abuf
->written
;
1238 in_sr
= FLD (in_sr
);
1239 referenced
|= 1 << 0;
1240 referenced
|= 1 << 1;
1241 cycles
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1248 model_m32r2_jmp (SIM_CPU
*current_cpu
, void *sem_arg
)
1250 #define FLD(f) abuf->fields.sfmt_jl.f
1251 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1252 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1256 int UNUSED insn_referenced
= abuf
->written
;
1258 in_sr
= FLD (in_sr
);
1259 referenced
|= 1 << 0;
1260 referenced
|= 1 << 1;
1261 cycles
+= m32r2f_model_m32r2_u_cti (current_cpu
, idesc
, 0, referenced
, in_sr
);
1268 model_m32r2_ld (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
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1290 model_m32r2_ld_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
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1312 model_m32r2_ldb (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
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1334 model_m32r2_ldb_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1336 #define FLD(f) abuf->fields.sfmt_add3.f
1337 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1338 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1342 int UNUSED insn_referenced
= abuf
->written
;
1345 in_sr
= FLD (in_sr
);
1346 out_dr
= FLD (out_dr
);
1347 referenced
|= 1 << 0;
1348 referenced
|= 1 << 1;
1349 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1356 model_m32r2_ldh (SIM_CPU
*current_cpu
, void *sem_arg
)
1358 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1359 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1360 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1364 int UNUSED insn_referenced
= abuf
->written
;
1367 in_sr
= FLD (in_sr
);
1368 out_dr
= FLD (out_dr
);
1369 referenced
|= 1 << 0;
1370 referenced
|= 1 << 1;
1371 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1378 model_m32r2_ldh_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1380 #define FLD(f) abuf->fields.sfmt_add3.f
1381 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1382 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1386 int UNUSED insn_referenced
= abuf
->written
;
1389 in_sr
= FLD (in_sr
);
1390 out_dr
= FLD (out_dr
);
1391 referenced
|= 1 << 0;
1392 referenced
|= 1 << 1;
1393 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1400 model_m32r2_ldub (SIM_CPU
*current_cpu
, void *sem_arg
)
1402 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1403 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1404 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1408 int UNUSED insn_referenced
= abuf
->written
;
1411 in_sr
= FLD (in_sr
);
1412 out_dr
= FLD (out_dr
);
1413 referenced
|= 1 << 0;
1414 referenced
|= 1 << 1;
1415 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1422 model_m32r2_ldub_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1424 #define FLD(f) abuf->fields.sfmt_add3.f
1425 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1426 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1430 int UNUSED insn_referenced
= abuf
->written
;
1433 in_sr
= FLD (in_sr
);
1434 out_dr
= FLD (out_dr
);
1435 referenced
|= 1 << 0;
1436 referenced
|= 1 << 1;
1437 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1444 model_m32r2_lduh (SIM_CPU
*current_cpu
, void *sem_arg
)
1446 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1447 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1448 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1452 int UNUSED insn_referenced
= abuf
->written
;
1455 in_sr
= FLD (in_sr
);
1456 out_dr
= FLD (out_dr
);
1457 referenced
|= 1 << 0;
1458 referenced
|= 1 << 1;
1459 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1466 model_m32r2_lduh_d (SIM_CPU
*current_cpu
, void *sem_arg
)
1468 #define FLD(f) abuf->fields.sfmt_add3.f
1469 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1470 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1474 int UNUSED insn_referenced
= abuf
->written
;
1477 in_sr
= FLD (in_sr
);
1478 out_dr
= FLD (out_dr
);
1479 referenced
|= 1 << 0;
1480 referenced
|= 1 << 1;
1481 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1488 model_m32r2_ld_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
1490 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1491 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1492 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1496 int UNUSED insn_referenced
= abuf
->written
;
1499 in_sr
= FLD (in_sr
);
1500 out_dr
= FLD (out_dr
);
1501 referenced
|= 1 << 0;
1502 referenced
|= 1 << 1;
1503 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1507 int UNUSED insn_referenced
= abuf
->written
;
1511 in_dr
= FLD (in_sr
);
1512 out_dr
= FLD (out_sr
);
1513 referenced
|= 1 << 0;
1514 referenced
|= 1 << 2;
1515 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
1522 model_m32r2_ld24 (SIM_CPU
*current_cpu
, void *sem_arg
)
1524 #define FLD(f) abuf->fields.sfmt_ld24.f
1525 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1526 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1530 int UNUSED insn_referenced
= abuf
->written
;
1534 out_dr
= FLD (out_dr
);
1535 referenced
|= 1 << 2;
1536 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1543 model_m32r2_ldi8 (SIM_CPU
*current_cpu
, void *sem_arg
)
1545 #define FLD(f) abuf->fields.sfmt_addi.f
1546 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1547 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1551 int UNUSED insn_referenced
= abuf
->written
;
1555 out_dr
= FLD (out_dr
);
1556 referenced
|= 1 << 2;
1557 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1564 model_m32r2_ldi16 (SIM_CPU
*current_cpu
, void *sem_arg
)
1566 #define FLD(f) abuf->fields.sfmt_add3.f
1567 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1568 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1572 int UNUSED insn_referenced
= abuf
->written
;
1576 out_dr
= FLD (out_dr
);
1577 referenced
|= 1 << 2;
1578 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1585 model_m32r2_lock (SIM_CPU
*current_cpu
, void *sem_arg
)
1587 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1588 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1589 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1593 int UNUSED insn_referenced
= abuf
->written
;
1596 in_sr
= FLD (in_sr
);
1597 out_dr
= FLD (out_dr
);
1598 referenced
|= 1 << 0;
1599 referenced
|= 1 << 1;
1600 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
1607 model_m32r2_machi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1609 #define FLD(f) abuf->fields.sfmt_machi_a.f
1610 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1611 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1615 int UNUSED insn_referenced
= abuf
->written
;
1618 in_src1
= FLD (in_src1
);
1619 in_src2
= FLD (in_src2
);
1620 referenced
|= 1 << 0;
1621 referenced
|= 1 << 1;
1622 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1629 model_m32r2_maclo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1631 #define FLD(f) abuf->fields.sfmt_machi_a.f
1632 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1633 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1637 int UNUSED insn_referenced
= abuf
->written
;
1640 in_src1
= FLD (in_src1
);
1641 in_src2
= FLD (in_src2
);
1642 referenced
|= 1 << 0;
1643 referenced
|= 1 << 1;
1644 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1651 model_m32r2_macwhi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1653 #define FLD(f) abuf->fields.sfmt_machi_a.f
1654 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1655 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1659 int UNUSED insn_referenced
= abuf
->written
;
1662 in_src1
= FLD (in_src1
);
1663 in_src2
= FLD (in_src2
);
1664 referenced
|= 1 << 0;
1665 referenced
|= 1 << 1;
1666 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1673 model_m32r2_macwlo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1675 #define FLD(f) abuf->fields.sfmt_machi_a.f
1676 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1677 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1681 int UNUSED insn_referenced
= abuf
->written
;
1684 in_src1
= FLD (in_src1
);
1685 in_src2
= FLD (in_src2
);
1686 referenced
|= 1 << 0;
1687 referenced
|= 1 << 1;
1688 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1695 model_m32r2_mul (SIM_CPU
*current_cpu
, void *sem_arg
)
1697 #define FLD(f) abuf->fields.sfmt_add.f
1698 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1699 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1703 int UNUSED insn_referenced
= abuf
->written
;
1707 in_sr
= FLD (in_sr
);
1708 in_dr
= FLD (in_dr
);
1709 out_dr
= FLD (out_dr
);
1710 referenced
|= 1 << 0;
1711 referenced
|= 1 << 1;
1712 referenced
|= 1 << 2;
1713 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1720 model_m32r2_mulhi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1722 #define FLD(f) abuf->fields.sfmt_machi_a.f
1723 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1724 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1728 int UNUSED insn_referenced
= abuf
->written
;
1731 in_src1
= FLD (in_src1
);
1732 in_src2
= FLD (in_src2
);
1733 referenced
|= 1 << 0;
1734 referenced
|= 1 << 1;
1735 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1742 model_m32r2_mullo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1744 #define FLD(f) abuf->fields.sfmt_machi_a.f
1745 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1746 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1750 int UNUSED insn_referenced
= abuf
->written
;
1753 in_src1
= FLD (in_src1
);
1754 in_src2
= FLD (in_src2
);
1755 referenced
|= 1 << 0;
1756 referenced
|= 1 << 1;
1757 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1764 model_m32r2_mulwhi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1766 #define FLD(f) abuf->fields.sfmt_machi_a.f
1767 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1768 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1772 int UNUSED insn_referenced
= abuf
->written
;
1775 in_src1
= FLD (in_src1
);
1776 in_src2
= FLD (in_src2
);
1777 referenced
|= 1 << 0;
1778 referenced
|= 1 << 1;
1779 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1786 model_m32r2_mulwlo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1788 #define FLD(f) abuf->fields.sfmt_machi_a.f
1789 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1790 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1794 int UNUSED insn_referenced
= abuf
->written
;
1797 in_src1
= FLD (in_src1
);
1798 in_src2
= FLD (in_src2
);
1799 referenced
|= 1 << 0;
1800 referenced
|= 1 << 1;
1801 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
1808 model_m32r2_mv (SIM_CPU
*current_cpu
, void *sem_arg
)
1810 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1811 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1812 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1816 int UNUSED insn_referenced
= abuf
->written
;
1820 in_sr
= FLD (in_sr
);
1821 out_dr
= FLD (out_dr
);
1822 referenced
|= 1 << 0;
1823 referenced
|= 1 << 2;
1824 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1831 model_m32r2_mvfachi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1833 #define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1834 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1835 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1839 int UNUSED insn_referenced
= abuf
->written
;
1843 out_dr
= FLD (out_dr
);
1844 referenced
|= 1 << 2;
1845 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1852 model_m32r2_mvfaclo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1854 #define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1855 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1856 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1860 int UNUSED insn_referenced
= abuf
->written
;
1864 out_dr
= FLD (out_dr
);
1865 referenced
|= 1 << 2;
1866 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1873 model_m32r2_mvfacmi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1875 #define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1876 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1877 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1881 int UNUSED insn_referenced
= abuf
->written
;
1885 out_dr
= FLD (out_dr
);
1886 referenced
|= 1 << 2;
1887 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1894 model_m32r2_mvfc (SIM_CPU
*current_cpu
, void *sem_arg
)
1896 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1897 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1898 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1902 int UNUSED insn_referenced
= abuf
->written
;
1906 out_dr
= FLD (out_dr
);
1907 referenced
|= 1 << 2;
1908 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1915 model_m32r2_mvtachi_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1917 #define FLD(f) abuf->fields.sfmt_mvtachi_a.f
1918 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1919 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1923 int UNUSED insn_referenced
= abuf
->written
;
1927 in_sr
= FLD (in_src1
);
1928 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1935 model_m32r2_mvtaclo_a (SIM_CPU
*current_cpu
, void *sem_arg
)
1937 #define FLD(f) abuf->fields.sfmt_mvtachi_a.f
1938 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1939 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1943 int UNUSED insn_referenced
= abuf
->written
;
1947 in_sr
= FLD (in_src1
);
1948 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1955 model_m32r2_mvtc (SIM_CPU
*current_cpu
, void *sem_arg
)
1957 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1958 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1959 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1963 int UNUSED insn_referenced
= abuf
->written
;
1967 in_sr
= FLD (in_sr
);
1968 referenced
|= 1 << 0;
1969 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1976 model_m32r2_neg (SIM_CPU
*current_cpu
, void *sem_arg
)
1978 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1979 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
1980 const IDESC
* UNUSED idesc
= abuf
->idesc
;
1984 int UNUSED insn_referenced
= abuf
->written
;
1988 in_sr
= FLD (in_sr
);
1989 out_dr
= FLD (out_dr
);
1990 referenced
|= 1 << 0;
1991 referenced
|= 1 << 2;
1992 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
1999 model_m32r2_nop (SIM_CPU
*current_cpu
, void *sem_arg
)
2001 #define FLD(f) abuf->fields.sfmt_empty.f
2002 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2003 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2007 int UNUSED insn_referenced
= abuf
->written
;
2011 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2018 model_m32r2_not (SIM_CPU
*current_cpu
, void *sem_arg
)
2020 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2021 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2022 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2026 int UNUSED insn_referenced
= abuf
->written
;
2030 in_sr
= FLD (in_sr
);
2031 out_dr
= FLD (out_dr
);
2032 referenced
|= 1 << 0;
2033 referenced
|= 1 << 2;
2034 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2041 model_m32r2_rac_dsi (SIM_CPU
*current_cpu
, void *sem_arg
)
2043 #define FLD(f) abuf->fields.sfmt_rac_dsi.f
2044 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2045 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2049 int UNUSED insn_referenced
= abuf
->written
;
2052 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2059 model_m32r2_rach_dsi (SIM_CPU
*current_cpu
, void *sem_arg
)
2061 #define FLD(f) abuf->fields.sfmt_rac_dsi.f
2062 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2063 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2067 int UNUSED insn_referenced
= abuf
->written
;
2070 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2077 model_m32r2_rte (SIM_CPU
*current_cpu
, void *sem_arg
)
2079 #define FLD(f) abuf->fields.sfmt_empty.f
2080 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2081 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2085 int UNUSED insn_referenced
= abuf
->written
;
2089 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2096 model_m32r2_seth (SIM_CPU
*current_cpu
, void *sem_arg
)
2098 #define FLD(f) abuf->fields.sfmt_seth.f
2099 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2100 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2104 int UNUSED insn_referenced
= abuf
->written
;
2108 out_dr
= FLD (out_dr
);
2109 referenced
|= 1 << 2;
2110 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2117 model_m32r2_sll (SIM_CPU
*current_cpu
, void *sem_arg
)
2119 #define FLD(f) abuf->fields.sfmt_add.f
2120 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2121 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2125 int UNUSED insn_referenced
= abuf
->written
;
2129 in_sr
= FLD (in_sr
);
2130 in_dr
= FLD (in_dr
);
2131 out_dr
= FLD (out_dr
);
2132 referenced
|= 1 << 0;
2133 referenced
|= 1 << 1;
2134 referenced
|= 1 << 2;
2135 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2142 model_m32r2_sll3 (SIM_CPU
*current_cpu
, void *sem_arg
)
2144 #define FLD(f) abuf->fields.sfmt_add3.f
2145 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2146 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2150 int UNUSED insn_referenced
= abuf
->written
;
2154 in_sr
= FLD (in_sr
);
2155 out_dr
= FLD (out_dr
);
2156 referenced
|= 1 << 0;
2157 referenced
|= 1 << 2;
2158 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2165 model_m32r2_slli (SIM_CPU
*current_cpu
, void *sem_arg
)
2167 #define FLD(f) abuf->fields.sfmt_slli.f
2168 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2169 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2173 int UNUSED insn_referenced
= abuf
->written
;
2177 in_dr
= FLD (in_dr
);
2178 out_dr
= FLD (out_dr
);
2179 referenced
|= 1 << 1;
2180 referenced
|= 1 << 2;
2181 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2188 model_m32r2_sra (SIM_CPU
*current_cpu
, void *sem_arg
)
2190 #define FLD(f) abuf->fields.sfmt_add.f
2191 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2192 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2196 int UNUSED insn_referenced
= abuf
->written
;
2200 in_sr
= FLD (in_sr
);
2201 in_dr
= FLD (in_dr
);
2202 out_dr
= FLD (out_dr
);
2203 referenced
|= 1 << 0;
2204 referenced
|= 1 << 1;
2205 referenced
|= 1 << 2;
2206 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2213 model_m32r2_sra3 (SIM_CPU
*current_cpu
, void *sem_arg
)
2215 #define FLD(f) abuf->fields.sfmt_add3.f
2216 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2217 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2221 int UNUSED insn_referenced
= abuf
->written
;
2225 in_sr
= FLD (in_sr
);
2226 out_dr
= FLD (out_dr
);
2227 referenced
|= 1 << 0;
2228 referenced
|= 1 << 2;
2229 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2236 model_m32r2_srai (SIM_CPU
*current_cpu
, void *sem_arg
)
2238 #define FLD(f) abuf->fields.sfmt_slli.f
2239 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2240 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2244 int UNUSED insn_referenced
= abuf
->written
;
2248 in_dr
= FLD (in_dr
);
2249 out_dr
= FLD (out_dr
);
2250 referenced
|= 1 << 1;
2251 referenced
|= 1 << 2;
2252 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2259 model_m32r2_srl (SIM_CPU
*current_cpu
, void *sem_arg
)
2261 #define FLD(f) abuf->fields.sfmt_add.f
2262 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2263 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2267 int UNUSED insn_referenced
= abuf
->written
;
2271 in_sr
= FLD (in_sr
);
2272 in_dr
= FLD (in_dr
);
2273 out_dr
= FLD (out_dr
);
2274 referenced
|= 1 << 0;
2275 referenced
|= 1 << 1;
2276 referenced
|= 1 << 2;
2277 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2284 model_m32r2_srl3 (SIM_CPU
*current_cpu
, void *sem_arg
)
2286 #define FLD(f) abuf->fields.sfmt_add3.f
2287 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2288 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2292 int UNUSED insn_referenced
= abuf
->written
;
2296 in_sr
= FLD (in_sr
);
2297 out_dr
= FLD (out_dr
);
2298 referenced
|= 1 << 0;
2299 referenced
|= 1 << 2;
2300 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2307 model_m32r2_srli (SIM_CPU
*current_cpu
, void *sem_arg
)
2309 #define FLD(f) abuf->fields.sfmt_slli.f
2310 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2311 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2315 int UNUSED insn_referenced
= abuf
->written
;
2319 in_dr
= FLD (in_dr
);
2320 out_dr
= FLD (out_dr
);
2321 referenced
|= 1 << 1;
2322 referenced
|= 1 << 2;
2323 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2330 model_m32r2_st (SIM_CPU
*current_cpu
, void *sem_arg
)
2332 #define FLD(f) abuf->fields.sfmt_st_plus.f
2333 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2334 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2338 int UNUSED insn_referenced
= abuf
->written
;
2341 in_src1
= FLD (in_src1
);
2342 in_src2
= FLD (in_src2
);
2343 referenced
|= 1 << 0;
2344 referenced
|= 1 << 1;
2345 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2352 model_m32r2_st_d (SIM_CPU
*current_cpu
, void *sem_arg
)
2354 #define FLD(f) abuf->fields.sfmt_st_d.f
2355 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2356 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2360 int UNUSED insn_referenced
= abuf
->written
;
2363 in_src1
= FLD (in_src1
);
2364 in_src2
= FLD (in_src2
);
2365 referenced
|= 1 << 0;
2366 referenced
|= 1 << 1;
2367 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2374 model_m32r2_stb (SIM_CPU
*current_cpu
, void *sem_arg
)
2376 #define FLD(f) abuf->fields.sfmt_st_plus.f
2377 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2378 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2382 int UNUSED insn_referenced
= abuf
->written
;
2385 in_src1
= FLD (in_src1
);
2386 in_src2
= FLD (in_src2
);
2387 referenced
|= 1 << 0;
2388 referenced
|= 1 << 1;
2389 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2396 model_m32r2_stb_d (SIM_CPU
*current_cpu
, void *sem_arg
)
2398 #define FLD(f) abuf->fields.sfmt_st_d.f
2399 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2400 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2404 int UNUSED insn_referenced
= abuf
->written
;
2407 in_src1
= FLD (in_src1
);
2408 in_src2
= FLD (in_src2
);
2409 referenced
|= 1 << 0;
2410 referenced
|= 1 << 1;
2411 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2418 model_m32r2_sth (SIM_CPU
*current_cpu
, void *sem_arg
)
2420 #define FLD(f) abuf->fields.sfmt_st_plus.f
2421 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2422 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2426 int UNUSED insn_referenced
= abuf
->written
;
2429 in_src1
= FLD (in_src1
);
2430 in_src2
= FLD (in_src2
);
2431 referenced
|= 1 << 0;
2432 referenced
|= 1 << 1;
2433 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2440 model_m32r2_sth_d (SIM_CPU
*current_cpu
, void *sem_arg
)
2442 #define FLD(f) abuf->fields.sfmt_st_d.f
2443 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2444 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2448 int UNUSED insn_referenced
= abuf
->written
;
2451 in_src1
= FLD (in_src1
);
2452 in_src2
= FLD (in_src2
);
2453 referenced
|= 1 << 0;
2454 referenced
|= 1 << 1;
2455 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2462 model_m32r2_st_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
2464 #define FLD(f) abuf->fields.sfmt_st_plus.f
2465 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2466 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2470 int UNUSED insn_referenced
= abuf
->written
;
2473 in_src1
= FLD (in_src1
);
2474 in_src2
= FLD (in_src2
);
2475 referenced
|= 1 << 0;
2476 referenced
|= 1 << 1;
2477 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2481 int UNUSED insn_referenced
= abuf
->written
;
2485 in_dr
= FLD (in_src2
);
2486 out_dr
= FLD (out_src2
);
2487 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2494 model_m32r2_sth_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
2496 #define FLD(f) abuf->fields.sfmt_st_plus.f
2497 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2498 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2502 int UNUSED insn_referenced
= abuf
->written
;
2505 in_src1
= FLD (in_src1
);
2506 in_src2
= FLD (in_src2
);
2507 referenced
|= 1 << 0;
2508 referenced
|= 1 << 1;
2509 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2513 int UNUSED insn_referenced
= abuf
->written
;
2517 in_dr
= FLD (in_src2
);
2518 out_dr
= FLD (out_src2
);
2519 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2526 model_m32r2_stb_plus (SIM_CPU
*current_cpu
, void *sem_arg
)
2528 #define FLD(f) abuf->fields.sfmt_st_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
;
2537 in_src1
= FLD (in_src1
);
2538 in_src2
= FLD (in_src2
);
2539 referenced
|= 1 << 0;
2540 referenced
|= 1 << 1;
2541 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2545 int UNUSED insn_referenced
= abuf
->written
;
2549 in_dr
= FLD (in_src2
);
2550 out_dr
= FLD (out_src2
);
2551 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2558 model_m32r2_st_minus (SIM_CPU
*current_cpu
, void *sem_arg
)
2560 #define FLD(f) abuf->fields.sfmt_st_plus.f
2561 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2562 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2566 int UNUSED insn_referenced
= abuf
->written
;
2569 in_src1
= FLD (in_src1
);
2570 in_src2
= FLD (in_src2
);
2571 referenced
|= 1 << 0;
2572 referenced
|= 1 << 1;
2573 cycles
+= m32r2f_model_m32r2_u_store (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2577 int UNUSED insn_referenced
= abuf
->written
;
2581 in_dr
= FLD (in_src2
);
2582 out_dr
= FLD (out_src2
);
2583 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 1, referenced
, in_sr
, in_dr
, out_dr
);
2590 model_m32r2_sub (SIM_CPU
*current_cpu
, void *sem_arg
)
2592 #define FLD(f) abuf->fields.sfmt_add.f
2593 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2594 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2598 int UNUSED insn_referenced
= abuf
->written
;
2602 in_sr
= FLD (in_sr
);
2603 in_dr
= FLD (in_dr
);
2604 out_dr
= FLD (out_dr
);
2605 referenced
|= 1 << 0;
2606 referenced
|= 1 << 1;
2607 referenced
|= 1 << 2;
2608 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2615 model_m32r2_subv (SIM_CPU
*current_cpu
, void *sem_arg
)
2617 #define FLD(f) abuf->fields.sfmt_add.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
;
2627 in_sr
= FLD (in_sr
);
2628 in_dr
= FLD (in_dr
);
2629 out_dr
= FLD (out_dr
);
2630 referenced
|= 1 << 0;
2631 referenced
|= 1 << 1;
2632 referenced
|= 1 << 2;
2633 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2640 model_m32r2_subx (SIM_CPU
*current_cpu
, void *sem_arg
)
2642 #define FLD(f) abuf->fields.sfmt_add.f
2643 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2644 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2648 int UNUSED insn_referenced
= abuf
->written
;
2652 in_sr
= FLD (in_sr
);
2653 in_dr
= FLD (in_dr
);
2654 out_dr
= FLD (out_dr
);
2655 referenced
|= 1 << 0;
2656 referenced
|= 1 << 1;
2657 referenced
|= 1 << 2;
2658 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2665 model_m32r2_trap (SIM_CPU
*current_cpu
, void *sem_arg
)
2667 #define FLD(f) abuf->fields.sfmt_trap.f
2668 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2669 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2673 int UNUSED insn_referenced
= abuf
->written
;
2677 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2684 model_m32r2_unlock (SIM_CPU
*current_cpu
, void *sem_arg
)
2686 #define FLD(f) abuf->fields.sfmt_st_plus.f
2687 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2688 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2692 int UNUSED insn_referenced
= abuf
->written
;
2695 cycles
+= m32r2f_model_m32r2_u_load (current_cpu
, idesc
, 0, referenced
, in_sr
, out_dr
);
2702 model_m32r2_satb (SIM_CPU
*current_cpu
, void *sem_arg
)
2704 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2705 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2706 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2710 int UNUSED insn_referenced
= abuf
->written
;
2714 in_sr
= FLD (in_sr
);
2715 out_dr
= FLD (out_dr
);
2716 referenced
|= 1 << 0;
2717 referenced
|= 1 << 2;
2718 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2725 model_m32r2_sath (SIM_CPU
*current_cpu
, void *sem_arg
)
2727 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2728 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2729 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2733 int UNUSED insn_referenced
= abuf
->written
;
2737 in_sr
= FLD (in_sr
);
2738 out_dr
= FLD (out_dr
);
2739 referenced
|= 1 << 0;
2740 referenced
|= 1 << 2;
2741 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2748 model_m32r2_sat (SIM_CPU
*current_cpu
, void *sem_arg
)
2750 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2751 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2752 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2756 int UNUSED insn_referenced
= abuf
->written
;
2760 in_sr
= FLD (in_sr
);
2761 out_dr
= FLD (out_dr
);
2762 if (insn_referenced
& (1 << 1)) referenced
|= 1 << 0;
2763 referenced
|= 1 << 2;
2764 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2771 model_m32r2_pcmpbz (SIM_CPU
*current_cpu
, void *sem_arg
)
2773 #define FLD(f) abuf->fields.sfmt_st_plus.f
2774 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2775 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2779 int UNUSED insn_referenced
= abuf
->written
;
2782 in_src2
= FLD (in_src2
);
2783 referenced
|= 1 << 1;
2784 cycles
+= m32r2f_model_m32r2_u_cmp (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2791 model_m32r2_sadd (SIM_CPU
*current_cpu
, void *sem_arg
)
2793 #define FLD(f) abuf->fields.sfmt_empty.f
2794 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2795 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2799 int UNUSED insn_referenced
= abuf
->written
;
2802 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2809 model_m32r2_macwu1 (SIM_CPU
*current_cpu
, void *sem_arg
)
2811 #define FLD(f) abuf->fields.sfmt_st_plus.f
2812 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2813 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2817 int UNUSED insn_referenced
= abuf
->written
;
2820 in_src1
= FLD (in_src1
);
2821 in_src2
= FLD (in_src2
);
2822 referenced
|= 1 << 0;
2823 referenced
|= 1 << 1;
2824 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2831 model_m32r2_msblo (SIM_CPU
*current_cpu
, void *sem_arg
)
2833 #define FLD(f) abuf->fields.sfmt_st_plus.f
2834 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2835 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2839 int UNUSED insn_referenced
= abuf
->written
;
2842 in_src1
= FLD (in_src1
);
2843 in_src2
= FLD (in_src2
);
2844 referenced
|= 1 << 0;
2845 referenced
|= 1 << 1;
2846 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2853 model_m32r2_mulwu1 (SIM_CPU
*current_cpu
, void *sem_arg
)
2855 #define FLD(f) abuf->fields.sfmt_st_plus.f
2856 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2857 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2861 int UNUSED insn_referenced
= abuf
->written
;
2864 in_src1
= FLD (in_src1
);
2865 in_src2
= FLD (in_src2
);
2866 referenced
|= 1 << 0;
2867 referenced
|= 1 << 1;
2868 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2875 model_m32r2_maclh1 (SIM_CPU
*current_cpu
, void *sem_arg
)
2877 #define FLD(f) abuf->fields.sfmt_st_plus.f
2878 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2879 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2883 int UNUSED insn_referenced
= abuf
->written
;
2886 in_src1
= FLD (in_src1
);
2887 in_src2
= FLD (in_src2
);
2888 referenced
|= 1 << 0;
2889 referenced
|= 1 << 1;
2890 cycles
+= m32r2f_model_m32r2_u_mac (current_cpu
, idesc
, 0, referenced
, in_src1
, in_src2
);
2897 model_m32r2_sc (SIM_CPU
*current_cpu
, void *sem_arg
)
2899 #define FLD(f) abuf->fields.sfmt_empty.f
2900 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2901 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2905 int UNUSED insn_referenced
= abuf
->written
;
2909 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2916 model_m32r2_snc (SIM_CPU
*current_cpu
, void *sem_arg
)
2918 #define FLD(f) abuf->fields.sfmt_empty.f
2919 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2920 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2924 int UNUSED insn_referenced
= abuf
->written
;
2928 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2935 model_m32r2_clrpsw (SIM_CPU
*current_cpu
, void *sem_arg
)
2937 #define FLD(f) abuf->fields.sfmt_clrpsw.f
2938 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2939 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2943 int UNUSED insn_referenced
= abuf
->written
;
2947 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2954 model_m32r2_setpsw (SIM_CPU
*current_cpu
, void *sem_arg
)
2956 #define FLD(f) abuf->fields.sfmt_clrpsw.f
2957 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2958 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2962 int UNUSED insn_referenced
= abuf
->written
;
2966 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2973 model_m32r2_bset (SIM_CPU
*current_cpu
, void *sem_arg
)
2975 #define FLD(f) abuf->fields.sfmt_bset.f
2976 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2977 const IDESC
* UNUSED idesc
= abuf
->idesc
;
2981 int UNUSED insn_referenced
= abuf
->written
;
2985 in_sr
= FLD (in_sr
);
2986 referenced
|= 1 << 0;
2987 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
2994 model_m32r2_bclr (SIM_CPU
*current_cpu
, void *sem_arg
)
2996 #define FLD(f) abuf->fields.sfmt_bset.f
2997 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
2998 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3002 int UNUSED insn_referenced
= abuf
->written
;
3006 in_sr
= FLD (in_sr
);
3007 referenced
|= 1 << 0;
3008 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
3015 model_m32r2_btst (SIM_CPU
*current_cpu
, void *sem_arg
)
3017 #define FLD(f) abuf->fields.sfmt_bset.f
3018 const ARGBUF
* UNUSED abuf
= SEM_ARGBUF ((SEM_ARG
) sem_arg
);
3019 const IDESC
* UNUSED idesc
= abuf
->idesc
;
3023 int UNUSED insn_referenced
= abuf
->written
;
3027 in_sr
= FLD (in_sr
);
3028 referenced
|= 1 << 0;
3029 cycles
+= m32r2f_model_m32r2_u_exec (current_cpu
, idesc
, 0, referenced
, in_sr
, in_dr
, out_dr
);
3035 /* We assume UNIT_NONE == 0 because the tables don't always terminate
3038 /* Model timing data for `m32r2'. */
3040 static const INSN_TIMING m32r2_timing
[] = {
3041 { M32R2F_INSN_X_INVALID
, 0, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3042 { M32R2F_INSN_X_AFTER
, 0, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3043 { M32R2F_INSN_X_BEFORE
, 0, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3044 { M32R2F_INSN_X_CTI_CHAIN
, 0, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3045 { M32R2F_INSN_X_CHAIN
, 0, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3046 { M32R2F_INSN_X_BEGIN
, 0, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3047 { M32R2F_INSN_ADD
, model_m32r2_add
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3048 { M32R2F_INSN_ADD3
, model_m32r2_add3
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3049 { M32R2F_INSN_AND
, model_m32r2_and
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3050 { M32R2F_INSN_AND3
, model_m32r2_and3
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3051 { M32R2F_INSN_OR
, model_m32r2_or
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3052 { M32R2F_INSN_OR3
, model_m32r2_or3
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3053 { M32R2F_INSN_XOR
, model_m32r2_xor
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3054 { M32R2F_INSN_XOR3
, model_m32r2_xor3
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3055 { M32R2F_INSN_ADDI
, model_m32r2_addi
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3056 { M32R2F_INSN_ADDV
, model_m32r2_addv
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3057 { M32R2F_INSN_ADDV3
, model_m32r2_addv3
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3058 { M32R2F_INSN_ADDX
, model_m32r2_addx
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3059 { M32R2F_INSN_BC8
, model_m32r2_bc8
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3060 { M32R2F_INSN_BC24
, model_m32r2_bc24
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3061 { M32R2F_INSN_BEQ
, model_m32r2_beq
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 }, { (int) UNIT_M32R2_U_CMP
, 1, 0 } } },
3062 { M32R2F_INSN_BEQZ
, model_m32r2_beqz
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 }, { (int) UNIT_M32R2_U_CMP
, 1, 0 } } },
3063 { M32R2F_INSN_BGEZ
, model_m32r2_bgez
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 }, { (int) UNIT_M32R2_U_CMP
, 1, 0 } } },
3064 { M32R2F_INSN_BGTZ
, model_m32r2_bgtz
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 }, { (int) UNIT_M32R2_U_CMP
, 1, 0 } } },
3065 { M32R2F_INSN_BLEZ
, model_m32r2_blez
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 }, { (int) UNIT_M32R2_U_CMP
, 1, 0 } } },
3066 { M32R2F_INSN_BLTZ
, model_m32r2_bltz
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 }, { (int) UNIT_M32R2_U_CMP
, 1, 0 } } },
3067 { M32R2F_INSN_BNEZ
, model_m32r2_bnez
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 }, { (int) UNIT_M32R2_U_CMP
, 1, 0 } } },
3068 { M32R2F_INSN_BL8
, model_m32r2_bl8
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3069 { M32R2F_INSN_BL24
, model_m32r2_bl24
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3070 { M32R2F_INSN_BCL8
, model_m32r2_bcl8
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3071 { M32R2F_INSN_BCL24
, model_m32r2_bcl24
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3072 { M32R2F_INSN_BNC8
, model_m32r2_bnc8
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3073 { M32R2F_INSN_BNC24
, model_m32r2_bnc24
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3074 { M32R2F_INSN_BNE
, model_m32r2_bne
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 }, { (int) UNIT_M32R2_U_CMP
, 1, 0 } } },
3075 { M32R2F_INSN_BRA8
, model_m32r2_bra8
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3076 { M32R2F_INSN_BRA24
, model_m32r2_bra24
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3077 { M32R2F_INSN_BNCL8
, model_m32r2_bncl8
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3078 { M32R2F_INSN_BNCL24
, model_m32r2_bncl24
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3079 { M32R2F_INSN_CMP
, model_m32r2_cmp
, { { (int) UNIT_M32R2_U_CMP
, 1, 1 } } },
3080 { M32R2F_INSN_CMPI
, model_m32r2_cmpi
, { { (int) UNIT_M32R2_U_CMP
, 1, 1 } } },
3081 { M32R2F_INSN_CMPU
, model_m32r2_cmpu
, { { (int) UNIT_M32R2_U_CMP
, 1, 1 } } },
3082 { M32R2F_INSN_CMPUI
, model_m32r2_cmpui
, { { (int) UNIT_M32R2_U_CMP
, 1, 1 } } },
3083 { M32R2F_INSN_CMPEQ
, model_m32r2_cmpeq
, { { (int) UNIT_M32R2_U_CMP
, 1, 1 } } },
3084 { M32R2F_INSN_CMPZ
, model_m32r2_cmpz
, { { (int) UNIT_M32R2_U_CMP
, 1, 1 } } },
3085 { M32R2F_INSN_DIV
, model_m32r2_div
, { { (int) UNIT_M32R2_U_EXEC
, 1, 37 } } },
3086 { M32R2F_INSN_DIVU
, model_m32r2_divu
, { { (int) UNIT_M32R2_U_EXEC
, 1, 37 } } },
3087 { M32R2F_INSN_REM
, model_m32r2_rem
, { { (int) UNIT_M32R2_U_EXEC
, 1, 37 } } },
3088 { M32R2F_INSN_REMU
, model_m32r2_remu
, { { (int) UNIT_M32R2_U_EXEC
, 1, 37 } } },
3089 { M32R2F_INSN_REMH
, model_m32r2_remh
, { { (int) UNIT_M32R2_U_EXEC
, 1, 21 } } },
3090 { M32R2F_INSN_REMUH
, model_m32r2_remuh
, { { (int) UNIT_M32R2_U_EXEC
, 1, 21 } } },
3091 { M32R2F_INSN_REMB
, model_m32r2_remb
, { { (int) UNIT_M32R2_U_EXEC
, 1, 21 } } },
3092 { M32R2F_INSN_REMUB
, model_m32r2_remub
, { { (int) UNIT_M32R2_U_EXEC
, 1, 21 } } },
3093 { M32R2F_INSN_DIVUH
, model_m32r2_divuh
, { { (int) UNIT_M32R2_U_EXEC
, 1, 21 } } },
3094 { M32R2F_INSN_DIVB
, model_m32r2_divb
, { { (int) UNIT_M32R2_U_EXEC
, 1, 21 } } },
3095 { M32R2F_INSN_DIVUB
, model_m32r2_divub
, { { (int) UNIT_M32R2_U_EXEC
, 1, 21 } } },
3096 { M32R2F_INSN_DIVH
, model_m32r2_divh
, { { (int) UNIT_M32R2_U_EXEC
, 1, 21 } } },
3097 { M32R2F_INSN_JC
, model_m32r2_jc
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3098 { M32R2F_INSN_JNC
, model_m32r2_jnc
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3099 { M32R2F_INSN_JL
, model_m32r2_jl
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3100 { M32R2F_INSN_JMP
, model_m32r2_jmp
, { { (int) UNIT_M32R2_U_CTI
, 1, 1 } } },
3101 { M32R2F_INSN_LD
, model_m32r2_ld
, { { (int) UNIT_M32R2_U_LOAD
, 1, 1 } } },
3102 { M32R2F_INSN_LD_D
, model_m32r2_ld_d
, { { (int) UNIT_M32R2_U_LOAD
, 1, 2 } } },
3103 { M32R2F_INSN_LDB
, model_m32r2_ldb
, { { (int) UNIT_M32R2_U_LOAD
, 1, 1 } } },
3104 { M32R2F_INSN_LDB_D
, model_m32r2_ldb_d
, { { (int) UNIT_M32R2_U_LOAD
, 1, 2 } } },
3105 { M32R2F_INSN_LDH
, model_m32r2_ldh
, { { (int) UNIT_M32R2_U_LOAD
, 1, 1 } } },
3106 { M32R2F_INSN_LDH_D
, model_m32r2_ldh_d
, { { (int) UNIT_M32R2_U_LOAD
, 1, 2 } } },
3107 { M32R2F_INSN_LDUB
, model_m32r2_ldub
, { { (int) UNIT_M32R2_U_LOAD
, 1, 1 } } },
3108 { M32R2F_INSN_LDUB_D
, model_m32r2_ldub_d
, { { (int) UNIT_M32R2_U_LOAD
, 1, 2 } } },
3109 { M32R2F_INSN_LDUH
, model_m32r2_lduh
, { { (int) UNIT_M32R2_U_LOAD
, 1, 1 } } },
3110 { M32R2F_INSN_LDUH_D
, model_m32r2_lduh_d
, { { (int) UNIT_M32R2_U_LOAD
, 1, 2 } } },
3111 { M32R2F_INSN_LD_PLUS
, model_m32r2_ld_plus
, { { (int) UNIT_M32R2_U_LOAD
, 1, 1 }, { (int) UNIT_M32R2_U_EXEC
, 1, 0 } } },
3112 { M32R2F_INSN_LD24
, model_m32r2_ld24
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3113 { M32R2F_INSN_LDI8
, model_m32r2_ldi8
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3114 { M32R2F_INSN_LDI16
, model_m32r2_ldi16
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3115 { M32R2F_INSN_LOCK
, model_m32r2_lock
, { { (int) UNIT_M32R2_U_LOAD
, 1, 1 } } },
3116 { M32R2F_INSN_MACHI_A
, model_m32r2_machi_a
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3117 { M32R2F_INSN_MACLO_A
, model_m32r2_maclo_a
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3118 { M32R2F_INSN_MACWHI_A
, model_m32r2_macwhi_a
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3119 { M32R2F_INSN_MACWLO_A
, model_m32r2_macwlo_a
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3120 { M32R2F_INSN_MUL
, model_m32r2_mul
, { { (int) UNIT_M32R2_U_EXEC
, 1, 4 } } },
3121 { M32R2F_INSN_MULHI_A
, model_m32r2_mulhi_a
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3122 { M32R2F_INSN_MULLO_A
, model_m32r2_mullo_a
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3123 { M32R2F_INSN_MULWHI_A
, model_m32r2_mulwhi_a
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3124 { M32R2F_INSN_MULWLO_A
, model_m32r2_mulwlo_a
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3125 { M32R2F_INSN_MV
, model_m32r2_mv
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3126 { M32R2F_INSN_MVFACHI_A
, model_m32r2_mvfachi_a
, { { (int) UNIT_M32R2_U_EXEC
, 1, 2 } } },
3127 { M32R2F_INSN_MVFACLO_A
, model_m32r2_mvfaclo_a
, { { (int) UNIT_M32R2_U_EXEC
, 1, 2 } } },
3128 { M32R2F_INSN_MVFACMI_A
, model_m32r2_mvfacmi_a
, { { (int) UNIT_M32R2_U_EXEC
, 1, 2 } } },
3129 { M32R2F_INSN_MVFC
, model_m32r2_mvfc
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3130 { M32R2F_INSN_MVTACHI_A
, model_m32r2_mvtachi_a
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3131 { M32R2F_INSN_MVTACLO_A
, model_m32r2_mvtaclo_a
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3132 { M32R2F_INSN_MVTC
, model_m32r2_mvtc
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3133 { M32R2F_INSN_NEG
, model_m32r2_neg
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3134 { M32R2F_INSN_NOP
, model_m32r2_nop
, { { (int) UNIT_M32R2_U_EXEC
, 1, 0 } } },
3135 { M32R2F_INSN_NOT
, model_m32r2_not
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3136 { M32R2F_INSN_RAC_DSI
, model_m32r2_rac_dsi
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3137 { M32R2F_INSN_RACH_DSI
, model_m32r2_rach_dsi
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3138 { M32R2F_INSN_RTE
, model_m32r2_rte
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3139 { M32R2F_INSN_SETH
, model_m32r2_seth
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3140 { M32R2F_INSN_SLL
, model_m32r2_sll
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3141 { M32R2F_INSN_SLL3
, model_m32r2_sll3
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3142 { M32R2F_INSN_SLLI
, model_m32r2_slli
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3143 { M32R2F_INSN_SRA
, model_m32r2_sra
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3144 { M32R2F_INSN_SRA3
, model_m32r2_sra3
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3145 { M32R2F_INSN_SRAI
, model_m32r2_srai
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3146 { M32R2F_INSN_SRL
, model_m32r2_srl
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3147 { M32R2F_INSN_SRL3
, model_m32r2_srl3
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3148 { M32R2F_INSN_SRLI
, model_m32r2_srli
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3149 { M32R2F_INSN_ST
, model_m32r2_st
, { { (int) UNIT_M32R2_U_STORE
, 1, 1 } } },
3150 { M32R2F_INSN_ST_D
, model_m32r2_st_d
, { { (int) UNIT_M32R2_U_STORE
, 1, 2 } } },
3151 { M32R2F_INSN_STB
, model_m32r2_stb
, { { (int) UNIT_M32R2_U_STORE
, 1, 1 } } },
3152 { M32R2F_INSN_STB_D
, model_m32r2_stb_d
, { { (int) UNIT_M32R2_U_STORE
, 1, 2 } } },
3153 { M32R2F_INSN_STH
, model_m32r2_sth
, { { (int) UNIT_M32R2_U_STORE
, 1, 1 } } },
3154 { M32R2F_INSN_STH_D
, model_m32r2_sth_d
, { { (int) UNIT_M32R2_U_STORE
, 1, 2 } } },
3155 { M32R2F_INSN_ST_PLUS
, model_m32r2_st_plus
, { { (int) UNIT_M32R2_U_STORE
, 1, 1 }, { (int) UNIT_M32R2_U_EXEC
, 1, 0 } } },
3156 { M32R2F_INSN_STH_PLUS
, model_m32r2_sth_plus
, { { (int) UNIT_M32R2_U_STORE
, 1, 1 }, { (int) UNIT_M32R2_U_EXEC
, 1, 0 } } },
3157 { M32R2F_INSN_STB_PLUS
, model_m32r2_stb_plus
, { { (int) UNIT_M32R2_U_STORE
, 1, 1 }, { (int) UNIT_M32R2_U_EXEC
, 1, 0 } } },
3158 { M32R2F_INSN_ST_MINUS
, model_m32r2_st_minus
, { { (int) UNIT_M32R2_U_STORE
, 1, 1 }, { (int) UNIT_M32R2_U_EXEC
, 1, 0 } } },
3159 { M32R2F_INSN_SUB
, model_m32r2_sub
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3160 { M32R2F_INSN_SUBV
, model_m32r2_subv
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3161 { M32R2F_INSN_SUBX
, model_m32r2_subx
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3162 { M32R2F_INSN_TRAP
, model_m32r2_trap
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3163 { M32R2F_INSN_UNLOCK
, model_m32r2_unlock
, { { (int) UNIT_M32R2_U_LOAD
, 1, 1 } } },
3164 { M32R2F_INSN_SATB
, model_m32r2_satb
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3165 { M32R2F_INSN_SATH
, model_m32r2_sath
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3166 { M32R2F_INSN_SAT
, model_m32r2_sat
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3167 { M32R2F_INSN_PCMPBZ
, model_m32r2_pcmpbz
, { { (int) UNIT_M32R2_U_CMP
, 1, 1 } } },
3168 { M32R2F_INSN_SADD
, model_m32r2_sadd
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3169 { M32R2F_INSN_MACWU1
, model_m32r2_macwu1
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3170 { M32R2F_INSN_MSBLO
, model_m32r2_msblo
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3171 { M32R2F_INSN_MULWU1
, model_m32r2_mulwu1
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3172 { M32R2F_INSN_MACLH1
, model_m32r2_maclh1
, { { (int) UNIT_M32R2_U_MAC
, 1, 1 } } },
3173 { M32R2F_INSN_SC
, model_m32r2_sc
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3174 { M32R2F_INSN_SNC
, model_m32r2_snc
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3175 { M32R2F_INSN_CLRPSW
, model_m32r2_clrpsw
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3176 { M32R2F_INSN_SETPSW
, model_m32r2_setpsw
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3177 { M32R2F_INSN_BSET
, model_m32r2_bset
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3178 { M32R2F_INSN_BCLR
, model_m32r2_bclr
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3179 { M32R2F_INSN_BTST
, model_m32r2_btst
, { { (int) UNIT_M32R2_U_EXEC
, 1, 1 } } },
3182 #endif /* WITH_PROFILE_MODEL_P */
3185 m32r2_model_init (SIM_CPU
*cpu
)
3187 CPU_MODEL_DATA (cpu
) = (void *) zalloc (sizeof (MODEL_M32R2_DATA
));
3190 #if WITH_PROFILE_MODEL_P
3191 #define TIMING_DATA(td) td
3193 #define TIMING_DATA(td) 0
3196 static const SIM_MODEL m32r2_models
[] =
3198 { "m32r2", & m32r2_mach
, MODEL_M32R2
, TIMING_DATA (& m32r2_timing
[0]), m32r2_model_init
},
3202 /* The properties of this cpu's implementation. */
3204 static const SIM_MACH_IMP_PROPERTIES m32r2f_imp_properties
=
3216 m32r2f_prepare_run (SIM_CPU
*cpu
)
3218 if (CPU_IDESC (cpu
) == NULL
)
3219 m32r2f_init_idesc_table (cpu
);
3222 static const CGEN_INSN
*
3223 m32r2f_get_idata (SIM_CPU
*cpu
, int inum
)
3225 return CPU_IDESC (cpu
) [inum
].idata
;
3229 m32r2_init_cpu (SIM_CPU
*cpu
)
3231 CPU_REG_FETCH (cpu
) = m32r2f_fetch_register
;
3232 CPU_REG_STORE (cpu
) = m32r2f_store_register
;
3233 CPU_PC_FETCH (cpu
) = m32r2f_h_pc_get
;
3234 CPU_PC_STORE (cpu
) = m32r2f_h_pc_set
;
3235 CPU_GET_IDATA (cpu
) = m32r2f_get_idata
;
3236 CPU_MAX_INSNS (cpu
) = M32R2F_INSN__MAX
;
3237 CPU_INSN_NAME (cpu
) = cgen_insn_name
;
3238 CPU_FULL_ENGINE_FN (cpu
) = m32r2f_engine_run_full
;
3240 CPU_FAST_ENGINE_FN (cpu
) = m32r2f_engine_run_fast
;
3242 CPU_FAST_ENGINE_FN (cpu
) = m32r2f_engine_run_full
;
3246 const SIM_MACH m32r2_mach
=
3248 "m32r2", "m32r2", MACH_M32R2
,
3249 32, 32, & m32r2_models
[0], & m32r2f_imp_properties
,