* Makefile.in (MAIN_INCLUDE_DEPS): Delete.
[deliverable/binutils-gdb.git] / sim / m32r / modelx.c
1 /* Simulator model support for m32rxf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
6
7 This file is part of the GNU Simulators.
8
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)
12 any later version.
13
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.
18
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.
22
23 */
24
25 #define WANT_CPU m32rxf
26 #define WANT_CPU_M32RXF
27
28 #include "sim-main.h"
29
30 /* The profiling data is recorded here, but is accessed via the profiling
31 mechanism. After all, this is information for profiling. */
32
33 #if WITH_PROFILE_MODEL_P
34
35 /* Model handlers for each insn. */
36
37 static int
38 model_m32rx_x_invalid (SIM_CPU *current_cpu, void *sem_arg)
39 {
40 #define FLD(f) abuf->fields.fmt_empty.f
41 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
42 int cycles = 0;
43 {
44 int referenced = 0;
45 int UNUSED insn_referenced = abuf->written;
46 INT sr = -1;
47 INT sr2 = -1;
48 INT dr = -1;
49 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
50 }
51 return cycles;
52 #undef FLD
53 }
54
55 static int
56 model_m32rx_x_after (SIM_CPU *current_cpu, void *sem_arg)
57 {
58 #define FLD(f) abuf->fields.fmt_empty.f
59 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
60 int cycles = 0;
61 {
62 int referenced = 0;
63 int UNUSED insn_referenced = abuf->written;
64 INT sr = -1;
65 INT sr2 = -1;
66 INT dr = -1;
67 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
68 }
69 return cycles;
70 #undef FLD
71 }
72
73 static int
74 model_m32rx_x_before (SIM_CPU *current_cpu, void *sem_arg)
75 {
76 #define FLD(f) abuf->fields.fmt_empty.f
77 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
78 int cycles = 0;
79 {
80 int referenced = 0;
81 int UNUSED insn_referenced = abuf->written;
82 INT sr = -1;
83 INT sr2 = -1;
84 INT dr = -1;
85 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
86 }
87 return cycles;
88 #undef FLD
89 }
90
91 static int
92 model_m32rx_x_cti_chain (SIM_CPU *current_cpu, void *sem_arg)
93 {
94 #define FLD(f) abuf->fields.fmt_empty.f
95 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
96 int cycles = 0;
97 {
98 int referenced = 0;
99 int UNUSED insn_referenced = abuf->written;
100 INT sr = -1;
101 INT sr2 = -1;
102 INT dr = -1;
103 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
104 }
105 return cycles;
106 #undef FLD
107 }
108
109 static int
110 model_m32rx_x_chain (SIM_CPU *current_cpu, void *sem_arg)
111 {
112 #define FLD(f) abuf->fields.fmt_empty.f
113 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
114 int cycles = 0;
115 {
116 int referenced = 0;
117 int UNUSED insn_referenced = abuf->written;
118 INT sr = -1;
119 INT sr2 = -1;
120 INT dr = -1;
121 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
122 }
123 return cycles;
124 #undef FLD
125 }
126
127 static int
128 model_m32rx_x_begin (SIM_CPU *current_cpu, void *sem_arg)
129 {
130 #define FLD(f) abuf->fields.fmt_empty.f
131 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
132 int cycles = 0;
133 {
134 int referenced = 0;
135 int UNUSED insn_referenced = abuf->written;
136 INT sr = -1;
137 INT sr2 = -1;
138 INT dr = -1;
139 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
140 }
141 return cycles;
142 #undef FLD
143 }
144
145 static int
146 model_m32rx_add (SIM_CPU *current_cpu, void *sem_arg)
147 {
148 #define FLD(f) abuf->fields.fmt_add.f
149 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
150 int cycles = 0;
151 {
152 int referenced = 0;
153 int UNUSED insn_referenced = abuf->written;
154 INT sr = -1;
155 INT sr2 = -1;
156 INT dr = -1;
157 sr = FLD (in_sr);
158 dr = FLD (out_dr);
159 referenced |= 1 << 0;
160 referenced |= 1 << 2;
161 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
162 }
163 return cycles;
164 #undef FLD
165 }
166
167 static int
168 model_m32rx_add3 (SIM_CPU *current_cpu, void *sem_arg)
169 {
170 #define FLD(f) abuf->fields.fmt_add3.f
171 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
172 int cycles = 0;
173 {
174 int referenced = 0;
175 int UNUSED insn_referenced = abuf->written;
176 INT sr = -1;
177 INT sr2 = -1;
178 INT dr = -1;
179 sr = FLD (in_sr);
180 dr = FLD (out_dr);
181 referenced |= 1 << 0;
182 referenced |= 1 << 2;
183 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
184 }
185 return cycles;
186 #undef FLD
187 }
188
189 static int
190 model_m32rx_and (SIM_CPU *current_cpu, void *sem_arg)
191 {
192 #define FLD(f) abuf->fields.fmt_add.f
193 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
194 int cycles = 0;
195 {
196 int referenced = 0;
197 int UNUSED insn_referenced = abuf->written;
198 INT sr = -1;
199 INT sr2 = -1;
200 INT dr = -1;
201 sr = FLD (in_sr);
202 dr = FLD (out_dr);
203 referenced |= 1 << 0;
204 referenced |= 1 << 2;
205 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
206 }
207 return cycles;
208 #undef FLD
209 }
210
211 static int
212 model_m32rx_and3 (SIM_CPU *current_cpu, void *sem_arg)
213 {
214 #define FLD(f) abuf->fields.fmt_and3.f
215 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
216 int cycles = 0;
217 {
218 int referenced = 0;
219 int UNUSED insn_referenced = abuf->written;
220 INT sr = -1;
221 INT sr2 = -1;
222 INT dr = -1;
223 sr = FLD (in_sr);
224 dr = FLD (out_dr);
225 referenced |= 1 << 0;
226 referenced |= 1 << 2;
227 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
228 }
229 return cycles;
230 #undef FLD
231 }
232
233 static int
234 model_m32rx_or (SIM_CPU *current_cpu, void *sem_arg)
235 {
236 #define FLD(f) abuf->fields.fmt_add.f
237 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
238 int cycles = 0;
239 {
240 int referenced = 0;
241 int UNUSED insn_referenced = abuf->written;
242 INT sr = -1;
243 INT sr2 = -1;
244 INT dr = -1;
245 sr = FLD (in_sr);
246 dr = FLD (out_dr);
247 referenced |= 1 << 0;
248 referenced |= 1 << 2;
249 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
250 }
251 return cycles;
252 #undef FLD
253 }
254
255 static int
256 model_m32rx_or3 (SIM_CPU *current_cpu, void *sem_arg)
257 {
258 #define FLD(f) abuf->fields.fmt_or3.f
259 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
260 int cycles = 0;
261 {
262 int referenced = 0;
263 int UNUSED insn_referenced = abuf->written;
264 INT sr = -1;
265 INT sr2 = -1;
266 INT dr = -1;
267 sr = FLD (in_sr);
268 dr = FLD (out_dr);
269 referenced |= 1 << 0;
270 referenced |= 1 << 2;
271 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
272 }
273 return cycles;
274 #undef FLD
275 }
276
277 static int
278 model_m32rx_xor (SIM_CPU *current_cpu, void *sem_arg)
279 {
280 #define FLD(f) abuf->fields.fmt_add.f
281 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
282 int cycles = 0;
283 {
284 int referenced = 0;
285 int UNUSED insn_referenced = abuf->written;
286 INT sr = -1;
287 INT sr2 = -1;
288 INT dr = -1;
289 sr = FLD (in_sr);
290 dr = FLD (out_dr);
291 referenced |= 1 << 0;
292 referenced |= 1 << 2;
293 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
294 }
295 return cycles;
296 #undef FLD
297 }
298
299 static int
300 model_m32rx_xor3 (SIM_CPU *current_cpu, void *sem_arg)
301 {
302 #define FLD(f) abuf->fields.fmt_and3.f
303 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
304 int cycles = 0;
305 {
306 int referenced = 0;
307 int UNUSED insn_referenced = abuf->written;
308 INT sr = -1;
309 INT sr2 = -1;
310 INT dr = -1;
311 sr = FLD (in_sr);
312 dr = FLD (out_dr);
313 referenced |= 1 << 0;
314 referenced |= 1 << 2;
315 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
316 }
317 return cycles;
318 #undef FLD
319 }
320
321 static int
322 model_m32rx_addi (SIM_CPU *current_cpu, void *sem_arg)
323 {
324 #define FLD(f) abuf->fields.fmt_addi.f
325 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
326 int cycles = 0;
327 {
328 int referenced = 0;
329 int UNUSED insn_referenced = abuf->written;
330 INT sr = -1;
331 INT sr2 = -1;
332 INT dr = -1;
333 dr = FLD (out_dr);
334 sr = FLD (in_dr);
335 referenced |= 1 << 0;
336 referenced |= 1 << 2;
337 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
338 }
339 return cycles;
340 #undef FLD
341 }
342
343 static int
344 model_m32rx_addv (SIM_CPU *current_cpu, void *sem_arg)
345 {
346 #define FLD(f) abuf->fields.fmt_addv.f
347 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
348 int cycles = 0;
349 {
350 int referenced = 0;
351 int UNUSED insn_referenced = abuf->written;
352 INT sr = -1;
353 INT sr2 = -1;
354 INT dr = -1;
355 sr = FLD (in_sr);
356 dr = FLD (out_dr);
357 referenced |= 1 << 0;
358 referenced |= 1 << 2;
359 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
360 }
361 return cycles;
362 #undef FLD
363 }
364
365 static int
366 model_m32rx_addv3 (SIM_CPU *current_cpu, void *sem_arg)
367 {
368 #define FLD(f) abuf->fields.fmt_addv3.f
369 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
370 int cycles = 0;
371 {
372 int referenced = 0;
373 int UNUSED insn_referenced = abuf->written;
374 INT sr = -1;
375 INT sr2 = -1;
376 INT dr = -1;
377 sr = FLD (in_sr);
378 dr = FLD (out_dr);
379 referenced |= 1 << 0;
380 referenced |= 1 << 2;
381 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
382 }
383 return cycles;
384 #undef FLD
385 }
386
387 static int
388 model_m32rx_addx (SIM_CPU *current_cpu, void *sem_arg)
389 {
390 #define FLD(f) abuf->fields.fmt_addx.f
391 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
392 int cycles = 0;
393 {
394 int referenced = 0;
395 int UNUSED insn_referenced = abuf->written;
396 INT sr = -1;
397 INT sr2 = -1;
398 INT dr = -1;
399 sr = FLD (in_sr);
400 dr = FLD (out_dr);
401 referenced |= 1 << 0;
402 referenced |= 1 << 2;
403 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
404 }
405 return cycles;
406 #undef FLD
407 }
408
409 static int
410 model_m32rx_bc8 (SIM_CPU *current_cpu, void *sem_arg)
411 {
412 #define FLD(f) abuf->fields.cti.fields.fmt_bc8.f
413 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
414 int cycles = 0;
415 {
416 int referenced = 0;
417 int UNUSED insn_referenced = abuf->written;
418 INT sr = -1;
419 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
420 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
421 }
422 return cycles;
423 #undef FLD
424 }
425
426 static int
427 model_m32rx_bc24 (SIM_CPU *current_cpu, void *sem_arg)
428 {
429 #define FLD(f) abuf->fields.cti.fields.fmt_bc24.f
430 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
431 int cycles = 0;
432 {
433 int referenced = 0;
434 int UNUSED insn_referenced = abuf->written;
435 INT sr = -1;
436 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
437 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
438 }
439 return cycles;
440 #undef FLD
441 }
442
443 static int
444 model_m32rx_beq (SIM_CPU *current_cpu, void *sem_arg)
445 {
446 #define FLD(f) abuf->fields.cti.fields.fmt_beq.f
447 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
448 int cycles = 0;
449 {
450 int referenced = 0;
451 int UNUSED insn_referenced = abuf->written;
452 INT sr = -1;
453 if (insn_referenced & (1 << 3)) referenced |= 1 << 1;
454 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
455 }
456 {
457 int referenced = 0;
458 int UNUSED insn_referenced = abuf->written;
459 INT src1 = -1;
460 INT src2 = -1;
461 src1 = FLD (in_src1);
462 src2 = FLD (in_src2);
463 referenced |= 1 << 0;
464 referenced |= 1 << 1;
465 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 1, referenced, src1, src2);
466 }
467 return cycles;
468 #undef FLD
469 }
470
471 static int
472 model_m32rx_beqz (SIM_CPU *current_cpu, void *sem_arg)
473 {
474 #define FLD(f) abuf->fields.cti.fields.fmt_beqz.f
475 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
476 int cycles = 0;
477 {
478 int referenced = 0;
479 int UNUSED insn_referenced = abuf->written;
480 INT sr = -1;
481 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
482 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
483 }
484 {
485 int referenced = 0;
486 int UNUSED insn_referenced = abuf->written;
487 INT src1 = -1;
488 INT src2 = -1;
489 src2 = FLD (in_src2);
490 referenced |= 1 << 1;
491 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 1, referenced, src1, src2);
492 }
493 return cycles;
494 #undef FLD
495 }
496
497 static int
498 model_m32rx_bgez (SIM_CPU *current_cpu, void *sem_arg)
499 {
500 #define FLD(f) abuf->fields.cti.fields.fmt_beqz.f
501 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
502 int cycles = 0;
503 {
504 int referenced = 0;
505 int UNUSED insn_referenced = abuf->written;
506 INT sr = -1;
507 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
508 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
509 }
510 {
511 int referenced = 0;
512 int UNUSED insn_referenced = abuf->written;
513 INT src1 = -1;
514 INT src2 = -1;
515 src2 = FLD (in_src2);
516 referenced |= 1 << 1;
517 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 1, referenced, src1, src2);
518 }
519 return cycles;
520 #undef FLD
521 }
522
523 static int
524 model_m32rx_bgtz (SIM_CPU *current_cpu, void *sem_arg)
525 {
526 #define FLD(f) abuf->fields.cti.fields.fmt_beqz.f
527 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
528 int cycles = 0;
529 {
530 int referenced = 0;
531 int UNUSED insn_referenced = abuf->written;
532 INT sr = -1;
533 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
534 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
535 }
536 {
537 int referenced = 0;
538 int UNUSED insn_referenced = abuf->written;
539 INT src1 = -1;
540 INT src2 = -1;
541 src2 = FLD (in_src2);
542 referenced |= 1 << 1;
543 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 1, referenced, src1, src2);
544 }
545 return cycles;
546 #undef FLD
547 }
548
549 static int
550 model_m32rx_blez (SIM_CPU *current_cpu, void *sem_arg)
551 {
552 #define FLD(f) abuf->fields.cti.fields.fmt_beqz.f
553 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
554 int cycles = 0;
555 {
556 int referenced = 0;
557 int UNUSED insn_referenced = abuf->written;
558 INT sr = -1;
559 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
560 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
561 }
562 {
563 int referenced = 0;
564 int UNUSED insn_referenced = abuf->written;
565 INT src1 = -1;
566 INT src2 = -1;
567 src2 = FLD (in_src2);
568 referenced |= 1 << 1;
569 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 1, referenced, src1, src2);
570 }
571 return cycles;
572 #undef FLD
573 }
574
575 static int
576 model_m32rx_bltz (SIM_CPU *current_cpu, void *sem_arg)
577 {
578 #define FLD(f) abuf->fields.cti.fields.fmt_beqz.f
579 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
580 int cycles = 0;
581 {
582 int referenced = 0;
583 int UNUSED insn_referenced = abuf->written;
584 INT sr = -1;
585 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
586 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
587 }
588 {
589 int referenced = 0;
590 int UNUSED insn_referenced = abuf->written;
591 INT src1 = -1;
592 INT src2 = -1;
593 src2 = FLD (in_src2);
594 referenced |= 1 << 1;
595 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 1, referenced, src1, src2);
596 }
597 return cycles;
598 #undef FLD
599 }
600
601 static int
602 model_m32rx_bnez (SIM_CPU *current_cpu, void *sem_arg)
603 {
604 #define FLD(f) abuf->fields.cti.fields.fmt_beqz.f
605 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
606 int cycles = 0;
607 {
608 int referenced = 0;
609 int UNUSED insn_referenced = abuf->written;
610 INT sr = -1;
611 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
612 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
613 }
614 {
615 int referenced = 0;
616 int UNUSED insn_referenced = abuf->written;
617 INT src1 = -1;
618 INT src2 = -1;
619 src2 = FLD (in_src2);
620 referenced |= 1 << 1;
621 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 1, referenced, src1, src2);
622 }
623 return cycles;
624 #undef FLD
625 }
626
627 static int
628 model_m32rx_bl8 (SIM_CPU *current_cpu, void *sem_arg)
629 {
630 #define FLD(f) abuf->fields.cti.fields.fmt_bl8.f
631 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
632 int cycles = 0;
633 {
634 int referenced = 0;
635 int UNUSED insn_referenced = abuf->written;
636 INT sr = -1;
637 referenced |= 1 << 1;
638 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
639 }
640 return cycles;
641 #undef FLD
642 }
643
644 static int
645 model_m32rx_bl24 (SIM_CPU *current_cpu, void *sem_arg)
646 {
647 #define FLD(f) abuf->fields.cti.fields.fmt_bl24.f
648 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
649 int cycles = 0;
650 {
651 int referenced = 0;
652 int UNUSED insn_referenced = abuf->written;
653 INT sr = -1;
654 referenced |= 1 << 1;
655 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
656 }
657 return cycles;
658 #undef FLD
659 }
660
661 static int
662 model_m32rx_bcl8 (SIM_CPU *current_cpu, void *sem_arg)
663 {
664 #define FLD(f) abuf->fields.cti.fields.fmt_bcl8.f
665 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
666 int cycles = 0;
667 {
668 int referenced = 0;
669 int UNUSED insn_referenced = abuf->written;
670 INT sr = -1;
671 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
672 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
673 }
674 return cycles;
675 #undef FLD
676 }
677
678 static int
679 model_m32rx_bcl24 (SIM_CPU *current_cpu, void *sem_arg)
680 {
681 #define FLD(f) abuf->fields.cti.fields.fmt_bcl24.f
682 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
683 int cycles = 0;
684 {
685 int referenced = 0;
686 int UNUSED insn_referenced = abuf->written;
687 INT sr = -1;
688 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
689 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
690 }
691 return cycles;
692 #undef FLD
693 }
694
695 static int
696 model_m32rx_bnc8 (SIM_CPU *current_cpu, void *sem_arg)
697 {
698 #define FLD(f) abuf->fields.cti.fields.fmt_bc8.f
699 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
700 int cycles = 0;
701 {
702 int referenced = 0;
703 int UNUSED insn_referenced = abuf->written;
704 INT sr = -1;
705 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
706 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
707 }
708 return cycles;
709 #undef FLD
710 }
711
712 static int
713 model_m32rx_bnc24 (SIM_CPU *current_cpu, void *sem_arg)
714 {
715 #define FLD(f) abuf->fields.cti.fields.fmt_bc24.f
716 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
717 int cycles = 0;
718 {
719 int referenced = 0;
720 int UNUSED insn_referenced = abuf->written;
721 INT sr = -1;
722 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
723 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
724 }
725 return cycles;
726 #undef FLD
727 }
728
729 static int
730 model_m32rx_bne (SIM_CPU *current_cpu, void *sem_arg)
731 {
732 #define FLD(f) abuf->fields.cti.fields.fmt_beq.f
733 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
734 int cycles = 0;
735 {
736 int referenced = 0;
737 int UNUSED insn_referenced = abuf->written;
738 INT sr = -1;
739 if (insn_referenced & (1 << 3)) referenced |= 1 << 1;
740 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
741 }
742 {
743 int referenced = 0;
744 int UNUSED insn_referenced = abuf->written;
745 INT src1 = -1;
746 INT src2 = -1;
747 src1 = FLD (in_src1);
748 src2 = FLD (in_src2);
749 referenced |= 1 << 0;
750 referenced |= 1 << 1;
751 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 1, referenced, src1, src2);
752 }
753 return cycles;
754 #undef FLD
755 }
756
757 static int
758 model_m32rx_bra8 (SIM_CPU *current_cpu, void *sem_arg)
759 {
760 #define FLD(f) abuf->fields.cti.fields.fmt_bra8.f
761 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
762 int cycles = 0;
763 {
764 int referenced = 0;
765 int UNUSED insn_referenced = abuf->written;
766 INT sr = -1;
767 referenced |= 1 << 1;
768 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
769 }
770 return cycles;
771 #undef FLD
772 }
773
774 static int
775 model_m32rx_bra24 (SIM_CPU *current_cpu, void *sem_arg)
776 {
777 #define FLD(f) abuf->fields.cti.fields.fmt_bra24.f
778 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
779 int cycles = 0;
780 {
781 int referenced = 0;
782 int UNUSED insn_referenced = abuf->written;
783 INT sr = -1;
784 referenced |= 1 << 1;
785 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
786 }
787 return cycles;
788 #undef FLD
789 }
790
791 static int
792 model_m32rx_bncl8 (SIM_CPU *current_cpu, void *sem_arg)
793 {
794 #define FLD(f) abuf->fields.cti.fields.fmt_bcl8.f
795 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
796 int cycles = 0;
797 {
798 int referenced = 0;
799 int UNUSED insn_referenced = abuf->written;
800 INT sr = -1;
801 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
802 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
803 }
804 return cycles;
805 #undef FLD
806 }
807
808 static int
809 model_m32rx_bncl24 (SIM_CPU *current_cpu, void *sem_arg)
810 {
811 #define FLD(f) abuf->fields.cti.fields.fmt_bcl24.f
812 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
813 int cycles = 0;
814 {
815 int referenced = 0;
816 int UNUSED insn_referenced = abuf->written;
817 INT sr = -1;
818 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
819 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
820 }
821 return cycles;
822 #undef FLD
823 }
824
825 static int
826 model_m32rx_cmp (SIM_CPU *current_cpu, void *sem_arg)
827 {
828 #define FLD(f) abuf->fields.fmt_cmp.f
829 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
830 int cycles = 0;
831 {
832 int referenced = 0;
833 int UNUSED insn_referenced = abuf->written;
834 INT src1 = -1;
835 INT src2 = -1;
836 src1 = FLD (in_src1);
837 src2 = FLD (in_src2);
838 referenced |= 1 << 0;
839 referenced |= 1 << 1;
840 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 0, referenced, src1, src2);
841 }
842 return cycles;
843 #undef FLD
844 }
845
846 static int
847 model_m32rx_cmpi (SIM_CPU *current_cpu, void *sem_arg)
848 {
849 #define FLD(f) abuf->fields.fmt_cmpi.f
850 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
851 int cycles = 0;
852 {
853 int referenced = 0;
854 int UNUSED insn_referenced = abuf->written;
855 INT src1 = -1;
856 INT src2 = -1;
857 src2 = FLD (in_src2);
858 referenced |= 1 << 1;
859 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 0, referenced, src1, src2);
860 }
861 return cycles;
862 #undef FLD
863 }
864
865 static int
866 model_m32rx_cmpu (SIM_CPU *current_cpu, void *sem_arg)
867 {
868 #define FLD(f) abuf->fields.fmt_cmp.f
869 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
870 int cycles = 0;
871 {
872 int referenced = 0;
873 int UNUSED insn_referenced = abuf->written;
874 INT src1 = -1;
875 INT src2 = -1;
876 src1 = FLD (in_src1);
877 src2 = FLD (in_src2);
878 referenced |= 1 << 0;
879 referenced |= 1 << 1;
880 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 0, referenced, src1, src2);
881 }
882 return cycles;
883 #undef FLD
884 }
885
886 static int
887 model_m32rx_cmpui (SIM_CPU *current_cpu, void *sem_arg)
888 {
889 #define FLD(f) abuf->fields.fmt_cmpi.f
890 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
891 int cycles = 0;
892 {
893 int referenced = 0;
894 int UNUSED insn_referenced = abuf->written;
895 INT src1 = -1;
896 INT src2 = -1;
897 src2 = FLD (in_src2);
898 referenced |= 1 << 1;
899 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 0, referenced, src1, src2);
900 }
901 return cycles;
902 #undef FLD
903 }
904
905 static int
906 model_m32rx_cmpeq (SIM_CPU *current_cpu, void *sem_arg)
907 {
908 #define FLD(f) abuf->fields.fmt_cmp.f
909 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
910 int cycles = 0;
911 {
912 int referenced = 0;
913 int UNUSED insn_referenced = abuf->written;
914 INT src1 = -1;
915 INT src2 = -1;
916 src1 = FLD (in_src1);
917 src2 = FLD (in_src2);
918 referenced |= 1 << 0;
919 referenced |= 1 << 1;
920 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 0, referenced, src1, src2);
921 }
922 return cycles;
923 #undef FLD
924 }
925
926 static int
927 model_m32rx_cmpz (SIM_CPU *current_cpu, void *sem_arg)
928 {
929 #define FLD(f) abuf->fields.fmt_cmpz.f
930 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
931 int cycles = 0;
932 {
933 int referenced = 0;
934 int UNUSED insn_referenced = abuf->written;
935 INT src1 = -1;
936 INT src2 = -1;
937 src2 = FLD (in_src2);
938 referenced |= 1 << 1;
939 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 0, referenced, src1, src2);
940 }
941 return cycles;
942 #undef FLD
943 }
944
945 static int
946 model_m32rx_div (SIM_CPU *current_cpu, void *sem_arg)
947 {
948 #define FLD(f) abuf->fields.fmt_div.f
949 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
950 int cycles = 0;
951 {
952 int referenced = 0;
953 int UNUSED insn_referenced = abuf->written;
954 INT sr = -1;
955 INT sr2 = -1;
956 INT dr = -1;
957 sr = FLD (in_sr);
958 dr = FLD (out_dr);
959 referenced |= 1 << 0;
960 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
961 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
962 }
963 return cycles;
964 #undef FLD
965 }
966
967 static int
968 model_m32rx_divu (SIM_CPU *current_cpu, void *sem_arg)
969 {
970 #define FLD(f) abuf->fields.fmt_div.f
971 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
972 int cycles = 0;
973 {
974 int referenced = 0;
975 int UNUSED insn_referenced = abuf->written;
976 INT sr = -1;
977 INT sr2 = -1;
978 INT dr = -1;
979 sr = FLD (in_sr);
980 dr = FLD (out_dr);
981 referenced |= 1 << 0;
982 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
983 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
984 }
985 return cycles;
986 #undef FLD
987 }
988
989 static int
990 model_m32rx_rem (SIM_CPU *current_cpu, void *sem_arg)
991 {
992 #define FLD(f) abuf->fields.fmt_div.f
993 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
994 int cycles = 0;
995 {
996 int referenced = 0;
997 int UNUSED insn_referenced = abuf->written;
998 INT sr = -1;
999 INT sr2 = -1;
1000 INT dr = -1;
1001 sr = FLD (in_sr);
1002 dr = FLD (out_dr);
1003 referenced |= 1 << 0;
1004 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1005 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1006 }
1007 return cycles;
1008 #undef FLD
1009 }
1010
1011 static int
1012 model_m32rx_remu (SIM_CPU *current_cpu, void *sem_arg)
1013 {
1014 #define FLD(f) abuf->fields.fmt_div.f
1015 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1016 int cycles = 0;
1017 {
1018 int referenced = 0;
1019 int UNUSED insn_referenced = abuf->written;
1020 INT sr = -1;
1021 INT sr2 = -1;
1022 INT dr = -1;
1023 sr = FLD (in_sr);
1024 dr = FLD (out_dr);
1025 referenced |= 1 << 0;
1026 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1027 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1028 }
1029 return cycles;
1030 #undef FLD
1031 }
1032
1033 static int
1034 model_m32rx_divh (SIM_CPU *current_cpu, void *sem_arg)
1035 {
1036 #define FLD(f) abuf->fields.fmt_div.f
1037 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1038 int cycles = 0;
1039 {
1040 int referenced = 0;
1041 int UNUSED insn_referenced = abuf->written;
1042 INT sr = -1;
1043 INT sr2 = -1;
1044 INT dr = -1;
1045 sr = FLD (in_sr);
1046 dr = FLD (out_dr);
1047 referenced |= 1 << 0;
1048 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1049 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1050 }
1051 return cycles;
1052 #undef FLD
1053 }
1054
1055 static int
1056 model_m32rx_jc (SIM_CPU *current_cpu, void *sem_arg)
1057 {
1058 #define FLD(f) abuf->fields.cti.fields.fmt_jc.f
1059 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1060 int cycles = 0;
1061 {
1062 int referenced = 0;
1063 int UNUSED insn_referenced = abuf->written;
1064 INT sr = -1;
1065 sr = FLD (in_sr);
1066 if (insn_referenced & (1 << 1)) referenced |= 1 << 0;
1067 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
1068 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
1069 }
1070 return cycles;
1071 #undef FLD
1072 }
1073
1074 static int
1075 model_m32rx_jnc (SIM_CPU *current_cpu, void *sem_arg)
1076 {
1077 #define FLD(f) abuf->fields.cti.fields.fmt_jc.f
1078 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1079 int cycles = 0;
1080 {
1081 int referenced = 0;
1082 int UNUSED insn_referenced = abuf->written;
1083 INT sr = -1;
1084 sr = FLD (in_sr);
1085 if (insn_referenced & (1 << 1)) referenced |= 1 << 0;
1086 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
1087 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
1088 }
1089 return cycles;
1090 #undef FLD
1091 }
1092
1093 static int
1094 model_m32rx_jl (SIM_CPU *current_cpu, void *sem_arg)
1095 {
1096 #define FLD(f) abuf->fields.cti.fields.fmt_jl.f
1097 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1098 int cycles = 0;
1099 {
1100 int referenced = 0;
1101 int UNUSED insn_referenced = abuf->written;
1102 INT sr = -1;
1103 sr = FLD (in_sr);
1104 referenced |= 1 << 0;
1105 referenced |= 1 << 1;
1106 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
1107 }
1108 return cycles;
1109 #undef FLD
1110 }
1111
1112 static int
1113 model_m32rx_jmp (SIM_CPU *current_cpu, void *sem_arg)
1114 {
1115 #define FLD(f) abuf->fields.cti.fields.fmt_jmp.f
1116 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1117 int cycles = 0;
1118 {
1119 int referenced = 0;
1120 int UNUSED insn_referenced = abuf->written;
1121 INT sr = -1;
1122 sr = FLD (in_sr);
1123 referenced |= 1 << 0;
1124 referenced |= 1 << 1;
1125 cycles += m32rxf_model_m32rx_u_cti (current_cpu, abuf->idesc, 0, referenced, sr);
1126 }
1127 return cycles;
1128 #undef FLD
1129 }
1130
1131 static int
1132 model_m32rx_ld (SIM_CPU *current_cpu, void *sem_arg)
1133 {
1134 #define FLD(f) abuf->fields.fmt_ld.f
1135 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1136 int cycles = 0;
1137 {
1138 int referenced = 0;
1139 int UNUSED insn_referenced = abuf->written;
1140 INT sr = 0;
1141 INT dr = 0;
1142 sr = FLD (in_sr);
1143 dr = FLD (out_dr);
1144 referenced |= 1 << 0;
1145 referenced |= 1 << 1;
1146 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1147 }
1148 return cycles;
1149 #undef FLD
1150 }
1151
1152 static int
1153 model_m32rx_ld_d (SIM_CPU *current_cpu, void *sem_arg)
1154 {
1155 #define FLD(f) abuf->fields.fmt_ld_d.f
1156 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1157 int cycles = 0;
1158 {
1159 int referenced = 0;
1160 int UNUSED insn_referenced = abuf->written;
1161 INT sr = 0;
1162 INT dr = 0;
1163 sr = FLD (in_sr);
1164 dr = FLD (out_dr);
1165 referenced |= 1 << 0;
1166 referenced |= 1 << 1;
1167 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1168 }
1169 return cycles;
1170 #undef FLD
1171 }
1172
1173 static int
1174 model_m32rx_ldb (SIM_CPU *current_cpu, void *sem_arg)
1175 {
1176 #define FLD(f) abuf->fields.fmt_ldb.f
1177 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1178 int cycles = 0;
1179 {
1180 int referenced = 0;
1181 int UNUSED insn_referenced = abuf->written;
1182 INT sr = 0;
1183 INT dr = 0;
1184 sr = FLD (in_sr);
1185 dr = FLD (out_dr);
1186 referenced |= 1 << 0;
1187 referenced |= 1 << 1;
1188 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1189 }
1190 return cycles;
1191 #undef FLD
1192 }
1193
1194 static int
1195 model_m32rx_ldb_d (SIM_CPU *current_cpu, void *sem_arg)
1196 {
1197 #define FLD(f) abuf->fields.fmt_ldb_d.f
1198 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1199 int cycles = 0;
1200 {
1201 int referenced = 0;
1202 int UNUSED insn_referenced = abuf->written;
1203 INT sr = 0;
1204 INT dr = 0;
1205 sr = FLD (in_sr);
1206 dr = FLD (out_dr);
1207 referenced |= 1 << 0;
1208 referenced |= 1 << 1;
1209 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1210 }
1211 return cycles;
1212 #undef FLD
1213 }
1214
1215 static int
1216 model_m32rx_ldh (SIM_CPU *current_cpu, void *sem_arg)
1217 {
1218 #define FLD(f) abuf->fields.fmt_ldh.f
1219 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1220 int cycles = 0;
1221 {
1222 int referenced = 0;
1223 int UNUSED insn_referenced = abuf->written;
1224 INT sr = 0;
1225 INT dr = 0;
1226 sr = FLD (in_sr);
1227 dr = FLD (out_dr);
1228 referenced |= 1 << 0;
1229 referenced |= 1 << 1;
1230 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1231 }
1232 return cycles;
1233 #undef FLD
1234 }
1235
1236 static int
1237 model_m32rx_ldh_d (SIM_CPU *current_cpu, void *sem_arg)
1238 {
1239 #define FLD(f) abuf->fields.fmt_ldh_d.f
1240 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1241 int cycles = 0;
1242 {
1243 int referenced = 0;
1244 int UNUSED insn_referenced = abuf->written;
1245 INT sr = 0;
1246 INT dr = 0;
1247 sr = FLD (in_sr);
1248 dr = FLD (out_dr);
1249 referenced |= 1 << 0;
1250 referenced |= 1 << 1;
1251 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1252 }
1253 return cycles;
1254 #undef FLD
1255 }
1256
1257 static int
1258 model_m32rx_ldub (SIM_CPU *current_cpu, void *sem_arg)
1259 {
1260 #define FLD(f) abuf->fields.fmt_ldb.f
1261 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1262 int cycles = 0;
1263 {
1264 int referenced = 0;
1265 int UNUSED insn_referenced = abuf->written;
1266 INT sr = 0;
1267 INT dr = 0;
1268 sr = FLD (in_sr);
1269 dr = FLD (out_dr);
1270 referenced |= 1 << 0;
1271 referenced |= 1 << 1;
1272 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1273 }
1274 return cycles;
1275 #undef FLD
1276 }
1277
1278 static int
1279 model_m32rx_ldub_d (SIM_CPU *current_cpu, void *sem_arg)
1280 {
1281 #define FLD(f) abuf->fields.fmt_ldb_d.f
1282 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1283 int cycles = 0;
1284 {
1285 int referenced = 0;
1286 int UNUSED insn_referenced = abuf->written;
1287 INT sr = 0;
1288 INT dr = 0;
1289 sr = FLD (in_sr);
1290 dr = FLD (out_dr);
1291 referenced |= 1 << 0;
1292 referenced |= 1 << 1;
1293 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1294 }
1295 return cycles;
1296 #undef FLD
1297 }
1298
1299 static int
1300 model_m32rx_lduh (SIM_CPU *current_cpu, void *sem_arg)
1301 {
1302 #define FLD(f) abuf->fields.fmt_ldh.f
1303 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1304 int cycles = 0;
1305 {
1306 int referenced = 0;
1307 int UNUSED insn_referenced = abuf->written;
1308 INT sr = 0;
1309 INT dr = 0;
1310 sr = FLD (in_sr);
1311 dr = FLD (out_dr);
1312 referenced |= 1 << 0;
1313 referenced |= 1 << 1;
1314 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1315 }
1316 return cycles;
1317 #undef FLD
1318 }
1319
1320 static int
1321 model_m32rx_lduh_d (SIM_CPU *current_cpu, void *sem_arg)
1322 {
1323 #define FLD(f) abuf->fields.fmt_ldh_d.f
1324 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1325 int cycles = 0;
1326 {
1327 int referenced = 0;
1328 int UNUSED insn_referenced = abuf->written;
1329 INT sr = 0;
1330 INT dr = 0;
1331 sr = FLD (in_sr);
1332 dr = FLD (out_dr);
1333 referenced |= 1 << 0;
1334 referenced |= 1 << 1;
1335 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1336 }
1337 return cycles;
1338 #undef FLD
1339 }
1340
1341 static int
1342 model_m32rx_ld_plus (SIM_CPU *current_cpu, void *sem_arg)
1343 {
1344 #define FLD(f) abuf->fields.fmt_ld_plus.f
1345 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1346 int cycles = 0;
1347 {
1348 int referenced = 0;
1349 int UNUSED insn_referenced = abuf->written;
1350 INT sr = 0;
1351 INT dr = 0;
1352 sr = FLD (in_sr);
1353 dr = FLD (out_dr);
1354 referenced |= 1 << 0;
1355 referenced |= 1 << 1;
1356 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1357 }
1358 {
1359 int referenced = 0;
1360 int UNUSED insn_referenced = abuf->written;
1361 INT sr = -1;
1362 INT sr2 = -1;
1363 INT dr = -1;
1364 sr = FLD (in_sr);
1365 dr = FLD (out_sr);
1366 referenced |= 1 << 0;
1367 referenced |= 1 << 2;
1368 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 1, referenced, sr, sr2, dr);
1369 }
1370 return cycles;
1371 #undef FLD
1372 }
1373
1374 static int
1375 model_m32rx_ld24 (SIM_CPU *current_cpu, void *sem_arg)
1376 {
1377 #define FLD(f) abuf->fields.fmt_ld24.f
1378 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1379 int cycles = 0;
1380 {
1381 int referenced = 0;
1382 int UNUSED insn_referenced = abuf->written;
1383 INT sr = -1;
1384 INT sr2 = -1;
1385 INT dr = -1;
1386 dr = FLD (out_dr);
1387 referenced |= 1 << 2;
1388 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1389 }
1390 return cycles;
1391 #undef FLD
1392 }
1393
1394 static int
1395 model_m32rx_ldi8 (SIM_CPU *current_cpu, void *sem_arg)
1396 {
1397 #define FLD(f) abuf->fields.fmt_ldi8.f
1398 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1399 int cycles = 0;
1400 {
1401 int referenced = 0;
1402 int UNUSED insn_referenced = abuf->written;
1403 INT sr = -1;
1404 INT sr2 = -1;
1405 INT dr = -1;
1406 dr = FLD (out_dr);
1407 referenced |= 1 << 2;
1408 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1409 }
1410 return cycles;
1411 #undef FLD
1412 }
1413
1414 static int
1415 model_m32rx_ldi16 (SIM_CPU *current_cpu, void *sem_arg)
1416 {
1417 #define FLD(f) abuf->fields.fmt_ldi16.f
1418 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1419 int cycles = 0;
1420 {
1421 int referenced = 0;
1422 int UNUSED insn_referenced = abuf->written;
1423 INT sr = -1;
1424 INT sr2 = -1;
1425 INT dr = -1;
1426 dr = FLD (out_dr);
1427 referenced |= 1 << 2;
1428 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1429 }
1430 return cycles;
1431 #undef FLD
1432 }
1433
1434 static int
1435 model_m32rx_lock (SIM_CPU *current_cpu, void *sem_arg)
1436 {
1437 #define FLD(f) abuf->fields.fmt_lock.f
1438 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1439 int cycles = 0;
1440 {
1441 int referenced = 0;
1442 int UNUSED insn_referenced = abuf->written;
1443 INT sr = 0;
1444 INT dr = 0;
1445 sr = FLD (in_sr);
1446 dr = FLD (out_dr);
1447 referenced |= 1 << 0;
1448 referenced |= 1 << 1;
1449 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
1450 }
1451 return cycles;
1452 #undef FLD
1453 }
1454
1455 static int
1456 model_m32rx_machi_a (SIM_CPU *current_cpu, void *sem_arg)
1457 {
1458 #define FLD(f) abuf->fields.fmt_machi_a.f
1459 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1460 int cycles = 0;
1461 {
1462 int referenced = 0;
1463 int UNUSED insn_referenced = abuf->written;
1464 INT src1 = -1;
1465 INT src2 = -1;
1466 src1 = FLD (in_src1);
1467 src2 = FLD (in_src2);
1468 referenced |= 1 << 0;
1469 referenced |= 1 << 1;
1470 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1471 }
1472 return cycles;
1473 #undef FLD
1474 }
1475
1476 static int
1477 model_m32rx_maclo_a (SIM_CPU *current_cpu, void *sem_arg)
1478 {
1479 #define FLD(f) abuf->fields.fmt_machi_a.f
1480 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1481 int cycles = 0;
1482 {
1483 int referenced = 0;
1484 int UNUSED insn_referenced = abuf->written;
1485 INT src1 = -1;
1486 INT src2 = -1;
1487 src1 = FLD (in_src1);
1488 src2 = FLD (in_src2);
1489 referenced |= 1 << 0;
1490 referenced |= 1 << 1;
1491 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1492 }
1493 return cycles;
1494 #undef FLD
1495 }
1496
1497 static int
1498 model_m32rx_macwhi_a (SIM_CPU *current_cpu, void *sem_arg)
1499 {
1500 #define FLD(f) abuf->fields.fmt_machi_a.f
1501 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1502 int cycles = 0;
1503 {
1504 int referenced = 0;
1505 int UNUSED insn_referenced = abuf->written;
1506 INT src1 = -1;
1507 INT src2 = -1;
1508 src1 = FLD (in_src1);
1509 src2 = FLD (in_src2);
1510 referenced |= 1 << 0;
1511 referenced |= 1 << 1;
1512 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1513 }
1514 return cycles;
1515 #undef FLD
1516 }
1517
1518 static int
1519 model_m32rx_macwlo_a (SIM_CPU *current_cpu, void *sem_arg)
1520 {
1521 #define FLD(f) abuf->fields.fmt_machi_a.f
1522 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1523 int cycles = 0;
1524 {
1525 int referenced = 0;
1526 int UNUSED insn_referenced = abuf->written;
1527 INT src1 = -1;
1528 INT src2 = -1;
1529 src1 = FLD (in_src1);
1530 src2 = FLD (in_src2);
1531 referenced |= 1 << 0;
1532 referenced |= 1 << 1;
1533 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1534 }
1535 return cycles;
1536 #undef FLD
1537 }
1538
1539 static int
1540 model_m32rx_mul (SIM_CPU *current_cpu, void *sem_arg)
1541 {
1542 #define FLD(f) abuf->fields.fmt_add.f
1543 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1544 int cycles = 0;
1545 {
1546 int referenced = 0;
1547 int UNUSED insn_referenced = abuf->written;
1548 INT sr = -1;
1549 INT sr2 = -1;
1550 INT dr = -1;
1551 sr = FLD (in_sr);
1552 dr = FLD (out_dr);
1553 referenced |= 1 << 0;
1554 referenced |= 1 << 2;
1555 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1556 }
1557 return cycles;
1558 #undef FLD
1559 }
1560
1561 static int
1562 model_m32rx_mulhi_a (SIM_CPU *current_cpu, void *sem_arg)
1563 {
1564 #define FLD(f) abuf->fields.fmt_mulhi_a.f
1565 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1566 int cycles = 0;
1567 {
1568 int referenced = 0;
1569 int UNUSED insn_referenced = abuf->written;
1570 INT src1 = -1;
1571 INT src2 = -1;
1572 src1 = FLD (in_src1);
1573 src2 = FLD (in_src2);
1574 referenced |= 1 << 0;
1575 referenced |= 1 << 1;
1576 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1577 }
1578 return cycles;
1579 #undef FLD
1580 }
1581
1582 static int
1583 model_m32rx_mullo_a (SIM_CPU *current_cpu, void *sem_arg)
1584 {
1585 #define FLD(f) abuf->fields.fmt_mulhi_a.f
1586 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1587 int cycles = 0;
1588 {
1589 int referenced = 0;
1590 int UNUSED insn_referenced = abuf->written;
1591 INT src1 = -1;
1592 INT src2 = -1;
1593 src1 = FLD (in_src1);
1594 src2 = FLD (in_src2);
1595 referenced |= 1 << 0;
1596 referenced |= 1 << 1;
1597 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1598 }
1599 return cycles;
1600 #undef FLD
1601 }
1602
1603 static int
1604 model_m32rx_mulwhi_a (SIM_CPU *current_cpu, void *sem_arg)
1605 {
1606 #define FLD(f) abuf->fields.fmt_mulhi_a.f
1607 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1608 int cycles = 0;
1609 {
1610 int referenced = 0;
1611 int UNUSED insn_referenced = abuf->written;
1612 INT src1 = -1;
1613 INT src2 = -1;
1614 src1 = FLD (in_src1);
1615 src2 = FLD (in_src2);
1616 referenced |= 1 << 0;
1617 referenced |= 1 << 1;
1618 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1619 }
1620 return cycles;
1621 #undef FLD
1622 }
1623
1624 static int
1625 model_m32rx_mulwlo_a (SIM_CPU *current_cpu, void *sem_arg)
1626 {
1627 #define FLD(f) abuf->fields.fmt_mulhi_a.f
1628 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1629 int cycles = 0;
1630 {
1631 int referenced = 0;
1632 int UNUSED insn_referenced = abuf->written;
1633 INT src1 = -1;
1634 INT src2 = -1;
1635 src1 = FLD (in_src1);
1636 src2 = FLD (in_src2);
1637 referenced |= 1 << 0;
1638 referenced |= 1 << 1;
1639 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1640 }
1641 return cycles;
1642 #undef FLD
1643 }
1644
1645 static int
1646 model_m32rx_mv (SIM_CPU *current_cpu, void *sem_arg)
1647 {
1648 #define FLD(f) abuf->fields.fmt_mv.f
1649 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1650 int cycles = 0;
1651 {
1652 int referenced = 0;
1653 int UNUSED insn_referenced = abuf->written;
1654 INT sr = -1;
1655 INT sr2 = -1;
1656 INT dr = -1;
1657 sr = FLD (in_sr);
1658 dr = FLD (out_dr);
1659 referenced |= 1 << 0;
1660 referenced |= 1 << 2;
1661 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1662 }
1663 return cycles;
1664 #undef FLD
1665 }
1666
1667 static int
1668 model_m32rx_mvfachi_a (SIM_CPU *current_cpu, void *sem_arg)
1669 {
1670 #define FLD(f) abuf->fields.fmt_mvfachi_a.f
1671 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1672 int cycles = 0;
1673 {
1674 int referenced = 0;
1675 int UNUSED insn_referenced = abuf->written;
1676 INT sr = -1;
1677 INT sr2 = -1;
1678 INT dr = -1;
1679 dr = FLD (out_dr);
1680 referenced |= 1 << 2;
1681 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1682 }
1683 return cycles;
1684 #undef FLD
1685 }
1686
1687 static int
1688 model_m32rx_mvfaclo_a (SIM_CPU *current_cpu, void *sem_arg)
1689 {
1690 #define FLD(f) abuf->fields.fmt_mvfachi_a.f
1691 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1692 int cycles = 0;
1693 {
1694 int referenced = 0;
1695 int UNUSED insn_referenced = abuf->written;
1696 INT sr = -1;
1697 INT sr2 = -1;
1698 INT dr = -1;
1699 dr = FLD (out_dr);
1700 referenced |= 1 << 2;
1701 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1702 }
1703 return cycles;
1704 #undef FLD
1705 }
1706
1707 static int
1708 model_m32rx_mvfacmi_a (SIM_CPU *current_cpu, void *sem_arg)
1709 {
1710 #define FLD(f) abuf->fields.fmt_mvfachi_a.f
1711 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1712 int cycles = 0;
1713 {
1714 int referenced = 0;
1715 int UNUSED insn_referenced = abuf->written;
1716 INT sr = -1;
1717 INT sr2 = -1;
1718 INT dr = -1;
1719 dr = FLD (out_dr);
1720 referenced |= 1 << 2;
1721 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1722 }
1723 return cycles;
1724 #undef FLD
1725 }
1726
1727 static int
1728 model_m32rx_mvfc (SIM_CPU *current_cpu, void *sem_arg)
1729 {
1730 #define FLD(f) abuf->fields.fmt_mvfc.f
1731 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1732 int cycles = 0;
1733 {
1734 int referenced = 0;
1735 int UNUSED insn_referenced = abuf->written;
1736 INT sr = -1;
1737 INT sr2 = -1;
1738 INT dr = -1;
1739 dr = FLD (out_dr);
1740 referenced |= 1 << 2;
1741 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1742 }
1743 return cycles;
1744 #undef FLD
1745 }
1746
1747 static int
1748 model_m32rx_mvtachi_a (SIM_CPU *current_cpu, void *sem_arg)
1749 {
1750 #define FLD(f) abuf->fields.fmt_mvtachi_a.f
1751 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1752 int cycles = 0;
1753 {
1754 int referenced = 0;
1755 int UNUSED insn_referenced = abuf->written;
1756 INT sr = -1;
1757 INT sr2 = -1;
1758 INT dr = -1;
1759 sr = FLD (in_src1);
1760 referenced |= 1 << 0;
1761 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1762 }
1763 return cycles;
1764 #undef FLD
1765 }
1766
1767 static int
1768 model_m32rx_mvtaclo_a (SIM_CPU *current_cpu, void *sem_arg)
1769 {
1770 #define FLD(f) abuf->fields.fmt_mvtachi_a.f
1771 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1772 int cycles = 0;
1773 {
1774 int referenced = 0;
1775 int UNUSED insn_referenced = abuf->written;
1776 INT sr = -1;
1777 INT sr2 = -1;
1778 INT dr = -1;
1779 sr = FLD (in_src1);
1780 referenced |= 1 << 0;
1781 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1782 }
1783 return cycles;
1784 #undef FLD
1785 }
1786
1787 static int
1788 model_m32rx_mvtc (SIM_CPU *current_cpu, void *sem_arg)
1789 {
1790 #define FLD(f) abuf->fields.fmt_mvtc.f
1791 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1792 int cycles = 0;
1793 {
1794 int referenced = 0;
1795 int UNUSED insn_referenced = abuf->written;
1796 INT sr = -1;
1797 INT sr2 = -1;
1798 INT dr = -1;
1799 sr = FLD (in_sr);
1800 referenced |= 1 << 0;
1801 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1802 }
1803 return cycles;
1804 #undef FLD
1805 }
1806
1807 static int
1808 model_m32rx_neg (SIM_CPU *current_cpu, void *sem_arg)
1809 {
1810 #define FLD(f) abuf->fields.fmt_mv.f
1811 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1812 int cycles = 0;
1813 {
1814 int referenced = 0;
1815 int UNUSED insn_referenced = abuf->written;
1816 INT sr = -1;
1817 INT sr2 = -1;
1818 INT dr = -1;
1819 sr = FLD (in_sr);
1820 dr = FLD (out_dr);
1821 referenced |= 1 << 0;
1822 referenced |= 1 << 2;
1823 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1824 }
1825 return cycles;
1826 #undef FLD
1827 }
1828
1829 static int
1830 model_m32rx_nop (SIM_CPU *current_cpu, void *sem_arg)
1831 {
1832 #define FLD(f) abuf->fields.fmt_nop.f
1833 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1834 int cycles = 0;
1835 {
1836 int referenced = 0;
1837 int UNUSED insn_referenced = abuf->written;
1838 INT sr = -1;
1839 INT sr2 = -1;
1840 INT dr = -1;
1841 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1842 }
1843 return cycles;
1844 #undef FLD
1845 }
1846
1847 static int
1848 model_m32rx_not (SIM_CPU *current_cpu, void *sem_arg)
1849 {
1850 #define FLD(f) abuf->fields.fmt_mv.f
1851 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1852 int cycles = 0;
1853 {
1854 int referenced = 0;
1855 int UNUSED insn_referenced = abuf->written;
1856 INT sr = -1;
1857 INT sr2 = -1;
1858 INT dr = -1;
1859 sr = FLD (in_sr);
1860 dr = FLD (out_dr);
1861 referenced |= 1 << 0;
1862 referenced |= 1 << 2;
1863 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1864 }
1865 return cycles;
1866 #undef FLD
1867 }
1868
1869 static int
1870 model_m32rx_rac_dsi (SIM_CPU *current_cpu, void *sem_arg)
1871 {
1872 #define FLD(f) abuf->fields.fmt_rac_dsi.f
1873 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1874 int cycles = 0;
1875 {
1876 int referenced = 0;
1877 int UNUSED insn_referenced = abuf->written;
1878 INT src1 = -1;
1879 INT src2 = -1;
1880 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1881 }
1882 return cycles;
1883 #undef FLD
1884 }
1885
1886 static int
1887 model_m32rx_rach_dsi (SIM_CPU *current_cpu, void *sem_arg)
1888 {
1889 #define FLD(f) abuf->fields.fmt_rac_dsi.f
1890 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1891 int cycles = 0;
1892 {
1893 int referenced = 0;
1894 int UNUSED insn_referenced = abuf->written;
1895 INT src1 = -1;
1896 INT src2 = -1;
1897 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
1898 }
1899 return cycles;
1900 #undef FLD
1901 }
1902
1903 static int
1904 model_m32rx_rte (SIM_CPU *current_cpu, void *sem_arg)
1905 {
1906 #define FLD(f) abuf->fields.cti.fields.fmt_rte.f
1907 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1908 int cycles = 0;
1909 {
1910 int referenced = 0;
1911 int UNUSED insn_referenced = abuf->written;
1912 INT sr = -1;
1913 INT sr2 = -1;
1914 INT dr = -1;
1915 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1916 }
1917 return cycles;
1918 #undef FLD
1919 }
1920
1921 static int
1922 model_m32rx_seth (SIM_CPU *current_cpu, void *sem_arg)
1923 {
1924 #define FLD(f) abuf->fields.fmt_seth.f
1925 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1926 int cycles = 0;
1927 {
1928 int referenced = 0;
1929 int UNUSED insn_referenced = abuf->written;
1930 INT sr = -1;
1931 INT sr2 = -1;
1932 INT dr = -1;
1933 dr = FLD (out_dr);
1934 referenced |= 1 << 2;
1935 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1936 }
1937 return cycles;
1938 #undef FLD
1939 }
1940
1941 static int
1942 model_m32rx_sll (SIM_CPU *current_cpu, void *sem_arg)
1943 {
1944 #define FLD(f) abuf->fields.fmt_add.f
1945 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1946 int cycles = 0;
1947 {
1948 int referenced = 0;
1949 int UNUSED insn_referenced = abuf->written;
1950 INT sr = -1;
1951 INT sr2 = -1;
1952 INT dr = -1;
1953 sr = FLD (in_sr);
1954 dr = FLD (out_dr);
1955 referenced |= 1 << 0;
1956 referenced |= 1 << 2;
1957 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1958 }
1959 return cycles;
1960 #undef FLD
1961 }
1962
1963 static int
1964 model_m32rx_sll3 (SIM_CPU *current_cpu, void *sem_arg)
1965 {
1966 #define FLD(f) abuf->fields.fmt_sll3.f
1967 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1968 int cycles = 0;
1969 {
1970 int referenced = 0;
1971 int UNUSED insn_referenced = abuf->written;
1972 INT sr = -1;
1973 INT sr2 = -1;
1974 INT dr = -1;
1975 sr = FLD (in_sr);
1976 dr = FLD (out_dr);
1977 referenced |= 1 << 0;
1978 referenced |= 1 << 2;
1979 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
1980 }
1981 return cycles;
1982 #undef FLD
1983 }
1984
1985 static int
1986 model_m32rx_slli (SIM_CPU *current_cpu, void *sem_arg)
1987 {
1988 #define FLD(f) abuf->fields.fmt_slli.f
1989 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1990 int cycles = 0;
1991 {
1992 int referenced = 0;
1993 int UNUSED insn_referenced = abuf->written;
1994 INT sr = -1;
1995 INT sr2 = -1;
1996 INT dr = -1;
1997 dr = FLD (out_dr);
1998 referenced |= 1 << 2;
1999 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2000 }
2001 return cycles;
2002 #undef FLD
2003 }
2004
2005 static int
2006 model_m32rx_sra (SIM_CPU *current_cpu, void *sem_arg)
2007 {
2008 #define FLD(f) abuf->fields.fmt_add.f
2009 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2010 int cycles = 0;
2011 {
2012 int referenced = 0;
2013 int UNUSED insn_referenced = abuf->written;
2014 INT sr = -1;
2015 INT sr2 = -1;
2016 INT dr = -1;
2017 sr = FLD (in_sr);
2018 dr = FLD (out_dr);
2019 referenced |= 1 << 0;
2020 referenced |= 1 << 2;
2021 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2022 }
2023 return cycles;
2024 #undef FLD
2025 }
2026
2027 static int
2028 model_m32rx_sra3 (SIM_CPU *current_cpu, void *sem_arg)
2029 {
2030 #define FLD(f) abuf->fields.fmt_sll3.f
2031 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2032 int cycles = 0;
2033 {
2034 int referenced = 0;
2035 int UNUSED insn_referenced = abuf->written;
2036 INT sr = -1;
2037 INT sr2 = -1;
2038 INT dr = -1;
2039 sr = FLD (in_sr);
2040 dr = FLD (out_dr);
2041 referenced |= 1 << 0;
2042 referenced |= 1 << 2;
2043 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2044 }
2045 return cycles;
2046 #undef FLD
2047 }
2048
2049 static int
2050 model_m32rx_srai (SIM_CPU *current_cpu, void *sem_arg)
2051 {
2052 #define FLD(f) abuf->fields.fmt_slli.f
2053 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2054 int cycles = 0;
2055 {
2056 int referenced = 0;
2057 int UNUSED insn_referenced = abuf->written;
2058 INT sr = -1;
2059 INT sr2 = -1;
2060 INT dr = -1;
2061 dr = FLD (out_dr);
2062 referenced |= 1 << 2;
2063 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2064 }
2065 return cycles;
2066 #undef FLD
2067 }
2068
2069 static int
2070 model_m32rx_srl (SIM_CPU *current_cpu, void *sem_arg)
2071 {
2072 #define FLD(f) abuf->fields.fmt_add.f
2073 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2074 int cycles = 0;
2075 {
2076 int referenced = 0;
2077 int UNUSED insn_referenced = abuf->written;
2078 INT sr = -1;
2079 INT sr2 = -1;
2080 INT dr = -1;
2081 sr = FLD (in_sr);
2082 dr = FLD (out_dr);
2083 referenced |= 1 << 0;
2084 referenced |= 1 << 2;
2085 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2086 }
2087 return cycles;
2088 #undef FLD
2089 }
2090
2091 static int
2092 model_m32rx_srl3 (SIM_CPU *current_cpu, void *sem_arg)
2093 {
2094 #define FLD(f) abuf->fields.fmt_sll3.f
2095 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2096 int cycles = 0;
2097 {
2098 int referenced = 0;
2099 int UNUSED insn_referenced = abuf->written;
2100 INT sr = -1;
2101 INT sr2 = -1;
2102 INT dr = -1;
2103 sr = FLD (in_sr);
2104 dr = FLD (out_dr);
2105 referenced |= 1 << 0;
2106 referenced |= 1 << 2;
2107 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2108 }
2109 return cycles;
2110 #undef FLD
2111 }
2112
2113 static int
2114 model_m32rx_srli (SIM_CPU *current_cpu, void *sem_arg)
2115 {
2116 #define FLD(f) abuf->fields.fmt_slli.f
2117 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2118 int cycles = 0;
2119 {
2120 int referenced = 0;
2121 int UNUSED insn_referenced = abuf->written;
2122 INT sr = -1;
2123 INT sr2 = -1;
2124 INT dr = -1;
2125 dr = FLD (out_dr);
2126 referenced |= 1 << 2;
2127 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2128 }
2129 return cycles;
2130 #undef FLD
2131 }
2132
2133 static int
2134 model_m32rx_st (SIM_CPU *current_cpu, void *sem_arg)
2135 {
2136 #define FLD(f) abuf->fields.fmt_st.f
2137 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2138 int cycles = 0;
2139 {
2140 int referenced = 0;
2141 int UNUSED insn_referenced = abuf->written;
2142 INT src1 = 0;
2143 INT src2 = 0;
2144 src1 = FLD (in_src1);
2145 src2 = FLD (in_src2);
2146 referenced |= 1 << 0;
2147 referenced |= 1 << 1;
2148 cycles += m32rxf_model_m32rx_u_store (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2149 }
2150 return cycles;
2151 #undef FLD
2152 }
2153
2154 static int
2155 model_m32rx_st_d (SIM_CPU *current_cpu, void *sem_arg)
2156 {
2157 #define FLD(f) abuf->fields.fmt_st_d.f
2158 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2159 int cycles = 0;
2160 {
2161 int referenced = 0;
2162 int UNUSED insn_referenced = abuf->written;
2163 INT src1 = 0;
2164 INT src2 = 0;
2165 src1 = FLD (in_src1);
2166 src2 = FLD (in_src2);
2167 referenced |= 1 << 0;
2168 referenced |= 1 << 1;
2169 cycles += m32rxf_model_m32rx_u_store (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2170 }
2171 return cycles;
2172 #undef FLD
2173 }
2174
2175 static int
2176 model_m32rx_stb (SIM_CPU *current_cpu, void *sem_arg)
2177 {
2178 #define FLD(f) abuf->fields.fmt_stb.f
2179 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2180 int cycles = 0;
2181 {
2182 int referenced = 0;
2183 int UNUSED insn_referenced = abuf->written;
2184 INT src1 = 0;
2185 INT src2 = 0;
2186 src1 = FLD (in_src1);
2187 src2 = FLD (in_src2);
2188 referenced |= 1 << 0;
2189 referenced |= 1 << 1;
2190 cycles += m32rxf_model_m32rx_u_store (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2191 }
2192 return cycles;
2193 #undef FLD
2194 }
2195
2196 static int
2197 model_m32rx_stb_d (SIM_CPU *current_cpu, void *sem_arg)
2198 {
2199 #define FLD(f) abuf->fields.fmt_stb_d.f
2200 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2201 int cycles = 0;
2202 {
2203 int referenced = 0;
2204 int UNUSED insn_referenced = abuf->written;
2205 INT src1 = 0;
2206 INT src2 = 0;
2207 src1 = FLD (in_src1);
2208 src2 = FLD (in_src2);
2209 referenced |= 1 << 0;
2210 referenced |= 1 << 1;
2211 cycles += m32rxf_model_m32rx_u_store (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2212 }
2213 return cycles;
2214 #undef FLD
2215 }
2216
2217 static int
2218 model_m32rx_sth (SIM_CPU *current_cpu, void *sem_arg)
2219 {
2220 #define FLD(f) abuf->fields.fmt_sth.f
2221 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2222 int cycles = 0;
2223 {
2224 int referenced = 0;
2225 int UNUSED insn_referenced = abuf->written;
2226 INT src1 = 0;
2227 INT src2 = 0;
2228 src1 = FLD (in_src1);
2229 src2 = FLD (in_src2);
2230 referenced |= 1 << 0;
2231 referenced |= 1 << 1;
2232 cycles += m32rxf_model_m32rx_u_store (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2233 }
2234 return cycles;
2235 #undef FLD
2236 }
2237
2238 static int
2239 model_m32rx_sth_d (SIM_CPU *current_cpu, void *sem_arg)
2240 {
2241 #define FLD(f) abuf->fields.fmt_sth_d.f
2242 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2243 int cycles = 0;
2244 {
2245 int referenced = 0;
2246 int UNUSED insn_referenced = abuf->written;
2247 INT src1 = 0;
2248 INT src2 = 0;
2249 src1 = FLD (in_src1);
2250 src2 = FLD (in_src2);
2251 referenced |= 1 << 0;
2252 referenced |= 1 << 1;
2253 cycles += m32rxf_model_m32rx_u_store (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2254 }
2255 return cycles;
2256 #undef FLD
2257 }
2258
2259 static int
2260 model_m32rx_st_plus (SIM_CPU *current_cpu, void *sem_arg)
2261 {
2262 #define FLD(f) abuf->fields.fmt_st_plus.f
2263 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2264 int cycles = 0;
2265 {
2266 int referenced = 0;
2267 int UNUSED insn_referenced = abuf->written;
2268 INT src1 = 0;
2269 INT src2 = 0;
2270 src1 = FLD (in_src1);
2271 src2 = FLD (in_src2);
2272 referenced |= 1 << 0;
2273 referenced |= 1 << 1;
2274 cycles += m32rxf_model_m32rx_u_store (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2275 }
2276 {
2277 int referenced = 0;
2278 int UNUSED insn_referenced = abuf->written;
2279 INT sr = -1;
2280 INT sr2 = -1;
2281 INT dr = -1;
2282 dr = FLD (out_src2);
2283 sr = FLD (in_src2);
2284 referenced |= 1 << 0;
2285 referenced |= 1 << 2;
2286 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 1, referenced, sr, sr2, dr);
2287 }
2288 return cycles;
2289 #undef FLD
2290 }
2291
2292 static int
2293 model_m32rx_st_minus (SIM_CPU *current_cpu, void *sem_arg)
2294 {
2295 #define FLD(f) abuf->fields.fmt_st_plus.f
2296 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2297 int cycles = 0;
2298 {
2299 int referenced = 0;
2300 int UNUSED insn_referenced = abuf->written;
2301 INT src1 = 0;
2302 INT src2 = 0;
2303 src1 = FLD (in_src1);
2304 src2 = FLD (in_src2);
2305 referenced |= 1 << 0;
2306 referenced |= 1 << 1;
2307 cycles += m32rxf_model_m32rx_u_store (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2308 }
2309 {
2310 int referenced = 0;
2311 int UNUSED insn_referenced = abuf->written;
2312 INT sr = -1;
2313 INT sr2 = -1;
2314 INT dr = -1;
2315 dr = FLD (out_src2);
2316 sr = FLD (in_src2);
2317 referenced |= 1 << 0;
2318 referenced |= 1 << 2;
2319 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 1, referenced, sr, sr2, dr);
2320 }
2321 return cycles;
2322 #undef FLD
2323 }
2324
2325 static int
2326 model_m32rx_sub (SIM_CPU *current_cpu, void *sem_arg)
2327 {
2328 #define FLD(f) abuf->fields.fmt_add.f
2329 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2330 int cycles = 0;
2331 {
2332 int referenced = 0;
2333 int UNUSED insn_referenced = abuf->written;
2334 INT sr = -1;
2335 INT sr2 = -1;
2336 INT dr = -1;
2337 sr = FLD (in_sr);
2338 dr = FLD (out_dr);
2339 referenced |= 1 << 0;
2340 referenced |= 1 << 2;
2341 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2342 }
2343 return cycles;
2344 #undef FLD
2345 }
2346
2347 static int
2348 model_m32rx_subv (SIM_CPU *current_cpu, void *sem_arg)
2349 {
2350 #define FLD(f) abuf->fields.fmt_addv.f
2351 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2352 int cycles = 0;
2353 {
2354 int referenced = 0;
2355 int UNUSED insn_referenced = abuf->written;
2356 INT sr = -1;
2357 INT sr2 = -1;
2358 INT dr = -1;
2359 sr = FLD (in_sr);
2360 dr = FLD (out_dr);
2361 referenced |= 1 << 0;
2362 referenced |= 1 << 2;
2363 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2364 }
2365 return cycles;
2366 #undef FLD
2367 }
2368
2369 static int
2370 model_m32rx_subx (SIM_CPU *current_cpu, void *sem_arg)
2371 {
2372 #define FLD(f) abuf->fields.fmt_addx.f
2373 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2374 int cycles = 0;
2375 {
2376 int referenced = 0;
2377 int UNUSED insn_referenced = abuf->written;
2378 INT sr = -1;
2379 INT sr2 = -1;
2380 INT dr = -1;
2381 sr = FLD (in_sr);
2382 dr = FLD (out_dr);
2383 referenced |= 1 << 0;
2384 referenced |= 1 << 2;
2385 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2386 }
2387 return cycles;
2388 #undef FLD
2389 }
2390
2391 static int
2392 model_m32rx_trap (SIM_CPU *current_cpu, void *sem_arg)
2393 {
2394 #define FLD(f) abuf->fields.cti.fields.fmt_trap.f
2395 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2396 int cycles = 0;
2397 {
2398 int referenced = 0;
2399 int UNUSED insn_referenced = abuf->written;
2400 INT sr = -1;
2401 INT sr2 = -1;
2402 INT dr = -1;
2403 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2404 }
2405 return cycles;
2406 #undef FLD
2407 }
2408
2409 static int
2410 model_m32rx_unlock (SIM_CPU *current_cpu, void *sem_arg)
2411 {
2412 #define FLD(f) abuf->fields.fmt_unlock.f
2413 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2414 int cycles = 0;
2415 {
2416 int referenced = 0;
2417 int UNUSED insn_referenced = abuf->written;
2418 INT sr = 0;
2419 INT dr = 0;
2420 cycles += m32rxf_model_m32rx_u_load (current_cpu, abuf->idesc, 0, referenced, sr, dr);
2421 }
2422 return cycles;
2423 #undef FLD
2424 }
2425
2426 static int
2427 model_m32rx_satb (SIM_CPU *current_cpu, void *sem_arg)
2428 {
2429 #define FLD(f) abuf->fields.fmt_satb.f
2430 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2431 int cycles = 0;
2432 {
2433 int referenced = 0;
2434 int UNUSED insn_referenced = abuf->written;
2435 INT sr = -1;
2436 INT sr2 = -1;
2437 INT dr = -1;
2438 sr = FLD (in_sr);
2439 dr = FLD (out_dr);
2440 referenced |= 1 << 0;
2441 referenced |= 1 << 2;
2442 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2443 }
2444 return cycles;
2445 #undef FLD
2446 }
2447
2448 static int
2449 model_m32rx_sath (SIM_CPU *current_cpu, void *sem_arg)
2450 {
2451 #define FLD(f) abuf->fields.fmt_satb.f
2452 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2453 int cycles = 0;
2454 {
2455 int referenced = 0;
2456 int UNUSED insn_referenced = abuf->written;
2457 INT sr = -1;
2458 INT sr2 = -1;
2459 INT dr = -1;
2460 sr = FLD (in_sr);
2461 dr = FLD (out_dr);
2462 referenced |= 1 << 0;
2463 referenced |= 1 << 2;
2464 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2465 }
2466 return cycles;
2467 #undef FLD
2468 }
2469
2470 static int
2471 model_m32rx_sat (SIM_CPU *current_cpu, void *sem_arg)
2472 {
2473 #define FLD(f) abuf->fields.fmt_sat.f
2474 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2475 int cycles = 0;
2476 {
2477 int referenced = 0;
2478 int UNUSED insn_referenced = abuf->written;
2479 INT sr = -1;
2480 INT sr2 = -1;
2481 INT dr = -1;
2482 sr = FLD (in_sr);
2483 dr = FLD (out_dr);
2484 if (insn_referenced & (1 << 1)) referenced |= 1 << 0;
2485 referenced |= 1 << 2;
2486 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2487 }
2488 return cycles;
2489 #undef FLD
2490 }
2491
2492 static int
2493 model_m32rx_pcmpbz (SIM_CPU *current_cpu, void *sem_arg)
2494 {
2495 #define FLD(f) abuf->fields.fmt_cmpz.f
2496 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2497 int cycles = 0;
2498 {
2499 int referenced = 0;
2500 int UNUSED insn_referenced = abuf->written;
2501 INT src1 = -1;
2502 INT src2 = -1;
2503 src2 = FLD (in_src2);
2504 referenced |= 1 << 1;
2505 cycles += m32rxf_model_m32rx_u_cmp (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2506 }
2507 return cycles;
2508 #undef FLD
2509 }
2510
2511 static int
2512 model_m32rx_sadd (SIM_CPU *current_cpu, void *sem_arg)
2513 {
2514 #define FLD(f) abuf->fields.fmt_sadd.f
2515 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2516 int cycles = 0;
2517 {
2518 int referenced = 0;
2519 int UNUSED insn_referenced = abuf->written;
2520 INT src1 = -1;
2521 INT src2 = -1;
2522 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2523 }
2524 return cycles;
2525 #undef FLD
2526 }
2527
2528 static int
2529 model_m32rx_macwu1 (SIM_CPU *current_cpu, void *sem_arg)
2530 {
2531 #define FLD(f) abuf->fields.fmt_macwu1.f
2532 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2533 int cycles = 0;
2534 {
2535 int referenced = 0;
2536 int UNUSED insn_referenced = abuf->written;
2537 INT src1 = -1;
2538 INT src2 = -1;
2539 src1 = FLD (in_src1);
2540 src2 = FLD (in_src2);
2541 referenced |= 1 << 0;
2542 referenced |= 1 << 1;
2543 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2544 }
2545 return cycles;
2546 #undef FLD
2547 }
2548
2549 static int
2550 model_m32rx_msblo (SIM_CPU *current_cpu, void *sem_arg)
2551 {
2552 #define FLD(f) abuf->fields.fmt_msblo.f
2553 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2554 int cycles = 0;
2555 {
2556 int referenced = 0;
2557 int UNUSED insn_referenced = abuf->written;
2558 INT src1 = -1;
2559 INT src2 = -1;
2560 src1 = FLD (in_src1);
2561 src2 = FLD (in_src2);
2562 referenced |= 1 << 0;
2563 referenced |= 1 << 1;
2564 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2565 }
2566 return cycles;
2567 #undef FLD
2568 }
2569
2570 static int
2571 model_m32rx_mulwu1 (SIM_CPU *current_cpu, void *sem_arg)
2572 {
2573 #define FLD(f) abuf->fields.fmt_mulwu1.f
2574 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2575 int cycles = 0;
2576 {
2577 int referenced = 0;
2578 int UNUSED insn_referenced = abuf->written;
2579 INT src1 = -1;
2580 INT src2 = -1;
2581 src1 = FLD (in_src1);
2582 src2 = FLD (in_src2);
2583 referenced |= 1 << 0;
2584 referenced |= 1 << 1;
2585 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2586 }
2587 return cycles;
2588 #undef FLD
2589 }
2590
2591 static int
2592 model_m32rx_maclh1 (SIM_CPU *current_cpu, void *sem_arg)
2593 {
2594 #define FLD(f) abuf->fields.fmt_macwu1.f
2595 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2596 int cycles = 0;
2597 {
2598 int referenced = 0;
2599 int UNUSED insn_referenced = abuf->written;
2600 INT src1 = -1;
2601 INT src2 = -1;
2602 src1 = FLD (in_src1);
2603 src2 = FLD (in_src2);
2604 referenced |= 1 << 0;
2605 referenced |= 1 << 1;
2606 cycles += m32rxf_model_m32rx_u_mac (current_cpu, abuf->idesc, 0, referenced, src1, src2);
2607 }
2608 return cycles;
2609 #undef FLD
2610 }
2611
2612 static int
2613 model_m32rx_sc (SIM_CPU *current_cpu, void *sem_arg)
2614 {
2615 #define FLD(f) abuf->fields.cti.fields.fmt_sc.f
2616 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2617 int cycles = 0;
2618 {
2619 int referenced = 0;
2620 int UNUSED insn_referenced = abuf->written;
2621 INT sr = -1;
2622 INT sr2 = -1;
2623 INT dr = -1;
2624 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2625 }
2626 return cycles;
2627 #undef FLD
2628 }
2629
2630 static int
2631 model_m32rx_snc (SIM_CPU *current_cpu, void *sem_arg)
2632 {
2633 #define FLD(f) abuf->fields.cti.fields.fmt_sc.f
2634 ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2635 int cycles = 0;
2636 {
2637 int referenced = 0;
2638 int UNUSED insn_referenced = abuf->written;
2639 INT sr = -1;
2640 INT sr2 = -1;
2641 INT dr = -1;
2642 cycles += m32rxf_model_m32rx_u_exec (current_cpu, abuf->idesc, 0, referenced, sr, sr2, dr);
2643 }
2644 return cycles;
2645 #undef FLD
2646 }
2647
2648 /* We assume UNIT_NONE == 0 because the tables don't always terminate
2649 entries with it. */
2650
2651 /* Model timing data for `m32rx'. */
2652
2653 static const INSN_TIMING m32rx_timing[] = {
2654 { M32RXF_INSN_X_INVALID, model_m32rx_x_invalid, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2655 { M32RXF_INSN_X_AFTER, model_m32rx_x_after, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2656 { M32RXF_INSN_X_BEFORE, model_m32rx_x_before, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2657 { M32RXF_INSN_X_CTI_CHAIN, model_m32rx_x_cti_chain, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2658 { M32RXF_INSN_X_CHAIN, model_m32rx_x_chain, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2659 { M32RXF_INSN_X_BEGIN, model_m32rx_x_begin, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2660 { M32RXF_INSN_ADD, model_m32rx_add, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2661 { M32RXF_INSN_ADD3, model_m32rx_add3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2662 { M32RXF_INSN_AND, model_m32rx_and, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2663 { M32RXF_INSN_AND3, model_m32rx_and3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2664 { M32RXF_INSN_OR, model_m32rx_or, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2665 { M32RXF_INSN_OR3, model_m32rx_or3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2666 { M32RXF_INSN_XOR, model_m32rx_xor, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2667 { M32RXF_INSN_XOR3, model_m32rx_xor3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2668 { M32RXF_INSN_ADDI, model_m32rx_addi, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2669 { M32RXF_INSN_ADDV, model_m32rx_addv, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2670 { M32RXF_INSN_ADDV3, model_m32rx_addv3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2671 { M32RXF_INSN_ADDX, model_m32rx_addx, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2672 { M32RXF_INSN_BC8, model_m32rx_bc8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2673 { M32RXF_INSN_BC24, model_m32rx_bc24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2674 { M32RXF_INSN_BEQ, model_m32rx_beq, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } },
2675 { M32RXF_INSN_BEQZ, model_m32rx_beqz, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } },
2676 { M32RXF_INSN_BGEZ, model_m32rx_bgez, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } },
2677 { M32RXF_INSN_BGTZ, model_m32rx_bgtz, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } },
2678 { M32RXF_INSN_BLEZ, model_m32rx_blez, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } },
2679 { M32RXF_INSN_BLTZ, model_m32rx_bltz, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } },
2680 { M32RXF_INSN_BNEZ, model_m32rx_bnez, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } },
2681 { M32RXF_INSN_BL8, model_m32rx_bl8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2682 { M32RXF_INSN_BL24, model_m32rx_bl24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2683 { M32RXF_INSN_BCL8, model_m32rx_bcl8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2684 { M32RXF_INSN_BCL24, model_m32rx_bcl24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2685 { M32RXF_INSN_BNC8, model_m32rx_bnc8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2686 { M32RXF_INSN_BNC24, model_m32rx_bnc24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2687 { M32RXF_INSN_BNE, model_m32rx_bne, { { (int) UNIT_M32RX_U_CTI, 1, 1 }, { (int) UNIT_M32RX_U_CMP, 1, 0 } } },
2688 { M32RXF_INSN_BRA8, model_m32rx_bra8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2689 { M32RXF_INSN_BRA24, model_m32rx_bra24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2690 { M32RXF_INSN_BNCL8, model_m32rx_bncl8, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2691 { M32RXF_INSN_BNCL24, model_m32rx_bncl24, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2692 { M32RXF_INSN_CMP, model_m32rx_cmp, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } },
2693 { M32RXF_INSN_CMPI, model_m32rx_cmpi, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } },
2694 { M32RXF_INSN_CMPU, model_m32rx_cmpu, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } },
2695 { M32RXF_INSN_CMPUI, model_m32rx_cmpui, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } },
2696 { M32RXF_INSN_CMPEQ, model_m32rx_cmpeq, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } },
2697 { M32RXF_INSN_CMPZ, model_m32rx_cmpz, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } },
2698 { M32RXF_INSN_DIV, model_m32rx_div, { { (int) UNIT_M32RX_U_EXEC, 1, 37 } } },
2699 { M32RXF_INSN_DIVU, model_m32rx_divu, { { (int) UNIT_M32RX_U_EXEC, 1, 37 } } },
2700 { M32RXF_INSN_REM, model_m32rx_rem, { { (int) UNIT_M32RX_U_EXEC, 1, 37 } } },
2701 { M32RXF_INSN_REMU, model_m32rx_remu, { { (int) UNIT_M32RX_U_EXEC, 1, 37 } } },
2702 { M32RXF_INSN_DIVH, model_m32rx_divh, { { (int) UNIT_M32RX_U_EXEC, 1, 21 } } },
2703 { M32RXF_INSN_JC, model_m32rx_jc, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2704 { M32RXF_INSN_JNC, model_m32rx_jnc, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2705 { M32RXF_INSN_JL, model_m32rx_jl, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2706 { M32RXF_INSN_JMP, model_m32rx_jmp, { { (int) UNIT_M32RX_U_CTI, 1, 1 } } },
2707 { M32RXF_INSN_LD, model_m32rx_ld, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } },
2708 { M32RXF_INSN_LD_D, model_m32rx_ld_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } },
2709 { M32RXF_INSN_LDB, model_m32rx_ldb, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } },
2710 { M32RXF_INSN_LDB_D, model_m32rx_ldb_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } },
2711 { M32RXF_INSN_LDH, model_m32rx_ldh, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } },
2712 { M32RXF_INSN_LDH_D, model_m32rx_ldh_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } },
2713 { M32RXF_INSN_LDUB, model_m32rx_ldub, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } },
2714 { M32RXF_INSN_LDUB_D, model_m32rx_ldub_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } },
2715 { M32RXF_INSN_LDUH, model_m32rx_lduh, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } },
2716 { M32RXF_INSN_LDUH_D, model_m32rx_lduh_d, { { (int) UNIT_M32RX_U_LOAD, 1, 2 } } },
2717 { M32RXF_INSN_LD_PLUS, model_m32rx_ld_plus, { { (int) UNIT_M32RX_U_LOAD, 1, 1 }, { (int) UNIT_M32RX_U_EXEC, 1, 0 } } },
2718 { M32RXF_INSN_LD24, model_m32rx_ld24, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2719 { M32RXF_INSN_LDI8, model_m32rx_ldi8, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2720 { M32RXF_INSN_LDI16, model_m32rx_ldi16, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2721 { M32RXF_INSN_LOCK, model_m32rx_lock, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } },
2722 { M32RXF_INSN_MACHI_A, model_m32rx_machi_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2723 { M32RXF_INSN_MACLO_A, model_m32rx_maclo_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2724 { M32RXF_INSN_MACWHI_A, model_m32rx_macwhi_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2725 { M32RXF_INSN_MACWLO_A, model_m32rx_macwlo_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2726 { M32RXF_INSN_MUL, model_m32rx_mul, { { (int) UNIT_M32RX_U_EXEC, 1, 4 } } },
2727 { M32RXF_INSN_MULHI_A, model_m32rx_mulhi_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2728 { M32RXF_INSN_MULLO_A, model_m32rx_mullo_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2729 { M32RXF_INSN_MULWHI_A, model_m32rx_mulwhi_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2730 { M32RXF_INSN_MULWLO_A, model_m32rx_mulwlo_a, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2731 { M32RXF_INSN_MV, model_m32rx_mv, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2732 { M32RXF_INSN_MVFACHI_A, model_m32rx_mvfachi_a, { { (int) UNIT_M32RX_U_EXEC, 1, 2 } } },
2733 { M32RXF_INSN_MVFACLO_A, model_m32rx_mvfaclo_a, { { (int) UNIT_M32RX_U_EXEC, 1, 2 } } },
2734 { M32RXF_INSN_MVFACMI_A, model_m32rx_mvfacmi_a, { { (int) UNIT_M32RX_U_EXEC, 1, 2 } } },
2735 { M32RXF_INSN_MVFC, model_m32rx_mvfc, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2736 { M32RXF_INSN_MVTACHI_A, model_m32rx_mvtachi_a, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2737 { M32RXF_INSN_MVTACLO_A, model_m32rx_mvtaclo_a, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2738 { M32RXF_INSN_MVTC, model_m32rx_mvtc, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2739 { M32RXF_INSN_NEG, model_m32rx_neg, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2740 { M32RXF_INSN_NOP, model_m32rx_nop, { { (int) UNIT_M32RX_U_EXEC, 1, 0 } } },
2741 { M32RXF_INSN_NOT, model_m32rx_not, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2742 { M32RXF_INSN_RAC_DSI, model_m32rx_rac_dsi, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2743 { M32RXF_INSN_RACH_DSI, model_m32rx_rach_dsi, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2744 { M32RXF_INSN_RTE, model_m32rx_rte, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2745 { M32RXF_INSN_SETH, model_m32rx_seth, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2746 { M32RXF_INSN_SLL, model_m32rx_sll, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2747 { M32RXF_INSN_SLL3, model_m32rx_sll3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2748 { M32RXF_INSN_SLLI, model_m32rx_slli, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2749 { M32RXF_INSN_SRA, model_m32rx_sra, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2750 { M32RXF_INSN_SRA3, model_m32rx_sra3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2751 { M32RXF_INSN_SRAI, model_m32rx_srai, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2752 { M32RXF_INSN_SRL, model_m32rx_srl, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2753 { M32RXF_INSN_SRL3, model_m32rx_srl3, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2754 { M32RXF_INSN_SRLI, model_m32rx_srli, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2755 { M32RXF_INSN_ST, model_m32rx_st, { { (int) UNIT_M32RX_U_STORE, 1, 1 } } },
2756 { M32RXF_INSN_ST_D, model_m32rx_st_d, { { (int) UNIT_M32RX_U_STORE, 1, 2 } } },
2757 { M32RXF_INSN_STB, model_m32rx_stb, { { (int) UNIT_M32RX_U_STORE, 1, 1 } } },
2758 { M32RXF_INSN_STB_D, model_m32rx_stb_d, { { (int) UNIT_M32RX_U_STORE, 1, 2 } } },
2759 { M32RXF_INSN_STH, model_m32rx_sth, { { (int) UNIT_M32RX_U_STORE, 1, 1 } } },
2760 { M32RXF_INSN_STH_D, model_m32rx_sth_d, { { (int) UNIT_M32RX_U_STORE, 1, 2 } } },
2761 { M32RXF_INSN_ST_PLUS, model_m32rx_st_plus, { { (int) UNIT_M32RX_U_STORE, 1, 1 }, { (int) UNIT_M32RX_U_EXEC, 1, 0 } } },
2762 { M32RXF_INSN_ST_MINUS, model_m32rx_st_minus, { { (int) UNIT_M32RX_U_STORE, 1, 1 }, { (int) UNIT_M32RX_U_EXEC, 1, 0 } } },
2763 { M32RXF_INSN_SUB, model_m32rx_sub, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2764 { M32RXF_INSN_SUBV, model_m32rx_subv, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2765 { M32RXF_INSN_SUBX, model_m32rx_subx, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2766 { M32RXF_INSN_TRAP, model_m32rx_trap, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2767 { M32RXF_INSN_UNLOCK, model_m32rx_unlock, { { (int) UNIT_M32RX_U_LOAD, 1, 1 } } },
2768 { M32RXF_INSN_SATB, model_m32rx_satb, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2769 { M32RXF_INSN_SATH, model_m32rx_sath, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2770 { M32RXF_INSN_SAT, model_m32rx_sat, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2771 { M32RXF_INSN_PCMPBZ, model_m32rx_pcmpbz, { { (int) UNIT_M32RX_U_CMP, 1, 1 } } },
2772 { M32RXF_INSN_SADD, model_m32rx_sadd, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2773 { M32RXF_INSN_MACWU1, model_m32rx_macwu1, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2774 { M32RXF_INSN_MSBLO, model_m32rx_msblo, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2775 { M32RXF_INSN_MULWU1, model_m32rx_mulwu1, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2776 { M32RXF_INSN_MACLH1, model_m32rx_maclh1, { { (int) UNIT_M32RX_U_MAC, 1, 1 } } },
2777 { M32RXF_INSN_SC, model_m32rx_sc, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2778 { M32RXF_INSN_SNC, model_m32rx_snc, { { (int) UNIT_M32RX_U_EXEC, 1, 1 } } },
2779 };
2780
2781 #endif /* WITH_PROFILE_MODEL_P */
2782
2783 static void
2784 m32rx_model_init (SIM_CPU *cpu)
2785 {
2786 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_M32RX_DATA));
2787 }
2788
2789 #if WITH_PROFILE_MODEL_P
2790 #define TIMING_DATA(td) td
2791 #else
2792 #define TIMING_DATA(td) 0
2793 #endif
2794
2795 static const MODEL m32rx_models[] =
2796 {
2797 { "m32rx", & m32rx_mach, MODEL_M32RX, TIMING_DATA (& m32rx_timing[0]), m32rx_model_init },
2798 { 0 }
2799 };
2800
2801 /* The properties of this cpu's implementation. */
2802
2803 static const MACH_IMP_PROPERTIES m32rxf_imp_properties =
2804 {
2805 sizeof (SIM_CPU),
2806 #if WITH_SCACHE
2807 sizeof (SCACHE)
2808 #else
2809 0
2810 #endif
2811 };
2812
2813 static const CGEN_INSN *
2814 m32rxf_opcode (SIM_CPU *cpu, int inum)
2815 {
2816 return CPU_IDESC (cpu) [inum].opcode;
2817 }
2818
2819 /* start-sanitize-m32rx */
2820 static void
2821 m32rx_init_cpu (SIM_CPU *cpu)
2822 {
2823 CPU_REG_FETCH (cpu) = m32rxf_fetch_register;
2824 CPU_REG_STORE (cpu) = m32rxf_store_register;
2825 CPU_PC_FETCH (cpu) = m32rxf_h_pc_get;
2826 CPU_PC_STORE (cpu) = m32rxf_h_pc_set;
2827 CPU_OPCODE (cpu) = m32rxf_opcode;
2828 CPU_MAX_INSNS (cpu) = M32RXF_INSN_MAX;
2829 CPU_INSN_NAME (cpu) = cgen_insn_name;
2830 CPU_FULL_ENGINE_FN (cpu) = m32rxf_engine_run_full;
2831 #if WITH_FAST
2832 CPU_FAST_ENGINE_FN (cpu) = m32rxf_engine_run_fast;
2833 #else
2834 CPU_FAST_ENGINE_FN (cpu) = m32rxf_engine_run_full;
2835 #endif
2836 m32rxf_init_idesc_table (cpu);
2837 }
2838
2839 const MACH m32rx_mach =
2840 {
2841 "m32rx", "m32rx",
2842 32, 32, & m32rx_models[0], & m32rxf_imp_properties,
2843 m32rx_init_cpu
2844 };
2845
2846 /* end-sanitize-m32rx */
This page took 0.198491 seconds and 5 git commands to generate.