Fix sim build when configured with --enable-plugins
[deliverable/binutils-gdb.git] / sim / m32r / model2.c
CommitLineData
16b47b25
NC
1/* Simulator model support for m32r2f.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
c5a57081 5Copyright 1996-2010, 2012 Free Software Foundation, Inc.
16b47b25
NC
6
7This file is part of the GNU simulators.
8
e9c60591
DE
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)
12 any later version.
16b47b25 13
e9c60591
DE
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.
16b47b25 18
e9c60591
DE
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.
16b47b25
NC
22
23*/
24
25#define WANT_CPU m32r2f
26#define WANT_CPU_M32R2F
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
37static int
38model_m32r2_add (SIM_CPU *current_cpu, void *sem_arg)
39{
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;
43 int cycles = 0;
44 {
45 int referenced = 0;
46 int UNUSED insn_referenced = abuf->written;
47 INT in_sr = -1;
48 INT in_dr = -1;
49 INT out_dr = -1;
50 in_sr = FLD (in_sr);
51 in_dr = FLD (in_dr);
52 out_dr = FLD (out_dr);
53 referenced |= 1 << 0;
54 referenced |= 1 << 1;
55 referenced |= 1 << 2;
56 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
57 }
58 return cycles;
59#undef FLD
60}
61
62static int
63model_m32r2_add3 (SIM_CPU *current_cpu, void *sem_arg)
64{
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;
68 int cycles = 0;
69 {
70 int referenced = 0;
71 int UNUSED insn_referenced = abuf->written;
72 INT in_sr = -1;
73 INT in_dr = -1;
74 INT out_dr = -1;
75 in_sr = FLD (in_sr);
76 out_dr = FLD (out_dr);
77 referenced |= 1 << 0;
78 referenced |= 1 << 2;
79 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
80 }
81 return cycles;
82#undef FLD
83}
84
85static int
86model_m32r2_and (SIM_CPU *current_cpu, void *sem_arg)
87{
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;
91 int cycles = 0;
92 {
93 int referenced = 0;
94 int UNUSED insn_referenced = abuf->written;
95 INT in_sr = -1;
96 INT in_dr = -1;
97 INT out_dr = -1;
98 in_sr = FLD (in_sr);
99 in_dr = FLD (in_dr);
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);
105 }
106 return cycles;
107#undef FLD
108}
109
110static int
111model_m32r2_and3 (SIM_CPU *current_cpu, void *sem_arg)
112{
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;
116 int cycles = 0;
117 {
118 int referenced = 0;
119 int UNUSED insn_referenced = abuf->written;
120 INT in_sr = -1;
121 INT in_dr = -1;
122 INT out_dr = -1;
123 in_sr = FLD (in_sr);
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);
128 }
129 return cycles;
130#undef FLD
131}
132
133static int
134model_m32r2_or (SIM_CPU *current_cpu, void *sem_arg)
135{
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;
139 int cycles = 0;
140 {
141 int referenced = 0;
142 int UNUSED insn_referenced = abuf->written;
143 INT in_sr = -1;
144 INT in_dr = -1;
145 INT out_dr = -1;
146 in_sr = FLD (in_sr);
147 in_dr = FLD (in_dr);
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);
153 }
154 return cycles;
155#undef FLD
156}
157
158static int
159model_m32r2_or3 (SIM_CPU *current_cpu, void *sem_arg)
160{
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;
164 int cycles = 0;
165 {
166 int referenced = 0;
167 int UNUSED insn_referenced = abuf->written;
168 INT in_sr = -1;
169 INT in_dr = -1;
170 INT out_dr = -1;
171 in_sr = FLD (in_sr);
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);
176 }
177 return cycles;
178#undef FLD
179}
180
181static int
182model_m32r2_xor (SIM_CPU *current_cpu, void *sem_arg)
183{
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;
187 int cycles = 0;
188 {
189 int referenced = 0;
190 int UNUSED insn_referenced = abuf->written;
191 INT in_sr = -1;
192 INT in_dr = -1;
193 INT out_dr = -1;
194 in_sr = FLD (in_sr);
195 in_dr = FLD (in_dr);
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);
201 }
202 return cycles;
203#undef FLD
204}
205
206static int
207model_m32r2_xor3 (SIM_CPU *current_cpu, void *sem_arg)
208{
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;
212 int cycles = 0;
213 {
214 int referenced = 0;
215 int UNUSED insn_referenced = abuf->written;
216 INT in_sr = -1;
217 INT in_dr = -1;
218 INT out_dr = -1;
219 in_sr = FLD (in_sr);
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);
224 }
225 return cycles;
226#undef FLD
227}
228
229static int
230model_m32r2_addi (SIM_CPU *current_cpu, void *sem_arg)
231{
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;
235 int cycles = 0;
236 {
237 int referenced = 0;
238 int UNUSED insn_referenced = abuf->written;
239 INT in_sr = -1;
240 INT in_dr = -1;
241 INT out_dr = -1;
242 in_dr = FLD (in_dr);
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);
247 }
248 return cycles;
249#undef FLD
250}
251
252static int
253model_m32r2_addv (SIM_CPU *current_cpu, void *sem_arg)
254{
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;
258 int cycles = 0;
259 {
260 int referenced = 0;
261 int UNUSED insn_referenced = abuf->written;
262 INT in_sr = -1;
263 INT in_dr = -1;
264 INT out_dr = -1;
265 in_sr = FLD (in_sr);
266 in_dr = FLD (in_dr);
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);
272 }
273 return cycles;
274#undef FLD
275}
276
277static int
278model_m32r2_addv3 (SIM_CPU *current_cpu, void *sem_arg)
279{
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;
283 int cycles = 0;
284 {
285 int referenced = 0;
286 int UNUSED insn_referenced = abuf->written;
287 INT in_sr = -1;
288 INT in_dr = -1;
289 INT out_dr = -1;
290 in_sr = FLD (in_sr);
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);
295 }
296 return cycles;
297#undef FLD
298}
299
300static int
301model_m32r2_addx (SIM_CPU *current_cpu, void *sem_arg)
302{
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;
306 int cycles = 0;
307 {
308 int referenced = 0;
309 int UNUSED insn_referenced = abuf->written;
310 INT in_sr = -1;
311 INT in_dr = -1;
312 INT out_dr = -1;
313 in_sr = FLD (in_sr);
314 in_dr = FLD (in_dr);
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);
320 }
321 return cycles;
322#undef FLD
323}
324
325static int
326model_m32r2_bc8 (SIM_CPU *current_cpu, void *sem_arg)
327{
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;
331 int cycles = 0;
332 {
333 int referenced = 0;
334 int UNUSED insn_referenced = abuf->written;
335 INT in_sr = -1;
336 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
337 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
338 }
339 return cycles;
340#undef FLD
341}
342
343static int
344model_m32r2_bc24 (SIM_CPU *current_cpu, void *sem_arg)
345{
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;
349 int cycles = 0;
350 {
351 int referenced = 0;
352 int UNUSED insn_referenced = abuf->written;
353 INT in_sr = -1;
354 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
355 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
356 }
357 return cycles;
358#undef FLD
359}
360
361static int
362model_m32r2_beq (SIM_CPU *current_cpu, void *sem_arg)
363{
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;
367 int cycles = 0;
368 {
369 int referenced = 0;
370 int UNUSED insn_referenced = abuf->written;
371 INT in_sr = -1;
372 if (insn_referenced & (1 << 3)) referenced |= 1 << 1;
373 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
374 }
375 {
376 int referenced = 0;
377 int UNUSED insn_referenced = abuf->written;
378 INT in_src1 = -1;
379 INT in_src2 = -1;
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);
385 }
386 return cycles;
387#undef FLD
388}
389
390static int
391model_m32r2_beqz (SIM_CPU *current_cpu, void *sem_arg)
392{
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;
396 int cycles = 0;
397 {
398 int referenced = 0;
399 int UNUSED insn_referenced = abuf->written;
400 INT in_sr = -1;
401 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
402 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
403 }
404 {
405 int referenced = 0;
406 int UNUSED insn_referenced = abuf->written;
407 INT in_src1 = -1;
408 INT in_src2 = -1;
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);
412 }
413 return cycles;
414#undef FLD
415}
416
417static int
418model_m32r2_bgez (SIM_CPU *current_cpu, void *sem_arg)
419{
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;
423 int cycles = 0;
424 {
425 int referenced = 0;
426 int UNUSED insn_referenced = abuf->written;
427 INT in_sr = -1;
428 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
429 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
430 }
431 {
432 int referenced = 0;
433 int UNUSED insn_referenced = abuf->written;
434 INT in_src1 = -1;
435 INT in_src2 = -1;
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);
439 }
440 return cycles;
441#undef FLD
442}
443
444static int
445model_m32r2_bgtz (SIM_CPU *current_cpu, void *sem_arg)
446{
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;
450 int cycles = 0;
451 {
452 int referenced = 0;
453 int UNUSED insn_referenced = abuf->written;
454 INT in_sr = -1;
455 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
456 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
457 }
458 {
459 int referenced = 0;
460 int UNUSED insn_referenced = abuf->written;
461 INT in_src1 = -1;
462 INT in_src2 = -1;
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);
466 }
467 return cycles;
468#undef FLD
469}
470
471static int
472model_m32r2_blez (SIM_CPU *current_cpu, void *sem_arg)
473{
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;
477 int cycles = 0;
478 {
479 int referenced = 0;
480 int UNUSED insn_referenced = abuf->written;
481 INT in_sr = -1;
482 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
483 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
484 }
485 {
486 int referenced = 0;
487 int UNUSED insn_referenced = abuf->written;
488 INT in_src1 = -1;
489 INT in_src2 = -1;
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);
493 }
494 return cycles;
495#undef FLD
496}
497
498static int
499model_m32r2_bltz (SIM_CPU *current_cpu, void *sem_arg)
500{
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;
504 int cycles = 0;
505 {
506 int referenced = 0;
507 int UNUSED insn_referenced = abuf->written;
508 INT in_sr = -1;
509 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
510 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
511 }
512 {
513 int referenced = 0;
514 int UNUSED insn_referenced = abuf->written;
515 INT in_src1 = -1;
516 INT in_src2 = -1;
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);
520 }
521 return cycles;
522#undef FLD
523}
524
525static int
526model_m32r2_bnez (SIM_CPU *current_cpu, void *sem_arg)
527{
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;
531 int cycles = 0;
532 {
533 int referenced = 0;
534 int UNUSED insn_referenced = abuf->written;
535 INT in_sr = -1;
536 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
537 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
538 }
539 {
540 int referenced = 0;
541 int UNUSED insn_referenced = abuf->written;
542 INT in_src1 = -1;
543 INT in_src2 = -1;
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);
547 }
548 return cycles;
549#undef FLD
550}
551
552static int
553model_m32r2_bl8 (SIM_CPU *current_cpu, void *sem_arg)
554{
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;
558 int cycles = 0;
559 {
560 int referenced = 0;
561 int UNUSED insn_referenced = abuf->written;
562 INT in_sr = -1;
563 referenced |= 1 << 1;
564 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
565 }
566 return cycles;
567#undef FLD
568}
569
570static int
571model_m32r2_bl24 (SIM_CPU *current_cpu, void *sem_arg)
572{
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;
576 int cycles = 0;
577 {
578 int referenced = 0;
579 int UNUSED insn_referenced = abuf->written;
580 INT in_sr = -1;
581 referenced |= 1 << 1;
582 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
583 }
584 return cycles;
585#undef FLD
586}
587
588static int
589model_m32r2_bcl8 (SIM_CPU *current_cpu, void *sem_arg)
590{
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;
594 int cycles = 0;
595 {
596 int referenced = 0;
597 int UNUSED insn_referenced = abuf->written;
598 INT in_sr = -1;
599 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
600 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
601 }
602 return cycles;
603#undef FLD
604}
605
606static int
607model_m32r2_bcl24 (SIM_CPU *current_cpu, void *sem_arg)
608{
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;
612 int cycles = 0;
613 {
614 int referenced = 0;
615 int UNUSED insn_referenced = abuf->written;
616 INT in_sr = -1;
617 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
618 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
619 }
620 return cycles;
621#undef FLD
622}
623
624static int
625model_m32r2_bnc8 (SIM_CPU *current_cpu, void *sem_arg)
626{
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;
630 int cycles = 0;
631 {
632 int referenced = 0;
633 int UNUSED insn_referenced = abuf->written;
634 INT in_sr = -1;
635 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
636 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
637 }
638 return cycles;
639#undef FLD
640}
641
642static int
643model_m32r2_bnc24 (SIM_CPU *current_cpu, void *sem_arg)
644{
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;
648 int cycles = 0;
649 {
650 int referenced = 0;
651 int UNUSED insn_referenced = abuf->written;
652 INT in_sr = -1;
653 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
654 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
655 }
656 return cycles;
657#undef FLD
658}
659
660static int
661model_m32r2_bne (SIM_CPU *current_cpu, void *sem_arg)
662{
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;
666 int cycles = 0;
667 {
668 int referenced = 0;
669 int UNUSED insn_referenced = abuf->written;
670 INT in_sr = -1;
671 if (insn_referenced & (1 << 3)) referenced |= 1 << 1;
672 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
673 }
674 {
675 int referenced = 0;
676 int UNUSED insn_referenced = abuf->written;
677 INT in_src1 = -1;
678 INT in_src2 = -1;
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);
684 }
685 return cycles;
686#undef FLD
687}
688
689static int
690model_m32r2_bra8 (SIM_CPU *current_cpu, void *sem_arg)
691{
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;
695 int cycles = 0;
696 {
697 int referenced = 0;
698 int UNUSED insn_referenced = abuf->written;
699 INT in_sr = -1;
700 referenced |= 1 << 1;
701 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
702 }
703 return cycles;
704#undef FLD
705}
706
707static int
708model_m32r2_bra24 (SIM_CPU *current_cpu, void *sem_arg)
709{
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;
713 int cycles = 0;
714 {
715 int referenced = 0;
716 int UNUSED insn_referenced = abuf->written;
717 INT in_sr = -1;
718 referenced |= 1 << 1;
719 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
720 }
721 return cycles;
722#undef FLD
723}
724
725static int
726model_m32r2_bncl8 (SIM_CPU *current_cpu, void *sem_arg)
727{
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;
731 int cycles = 0;
732 {
733 int referenced = 0;
734 int UNUSED insn_referenced = abuf->written;
735 INT in_sr = -1;
736 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
737 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
738 }
739 return cycles;
740#undef FLD
741}
742
743static int
744model_m32r2_bncl24 (SIM_CPU *current_cpu, void *sem_arg)
745{
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;
749 int cycles = 0;
750 {
751 int referenced = 0;
752 int UNUSED insn_referenced = abuf->written;
753 INT in_sr = -1;
754 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
755 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
756 }
757 return cycles;
758#undef FLD
759}
760
761static int
762model_m32r2_cmp (SIM_CPU *current_cpu, void *sem_arg)
763{
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;
767 int cycles = 0;
768 {
769 int referenced = 0;
770 int UNUSED insn_referenced = abuf->written;
771 INT in_src1 = -1;
772 INT in_src2 = -1;
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);
778 }
779 return cycles;
780#undef FLD
781}
782
783static int
784model_m32r2_cmpi (SIM_CPU *current_cpu, void *sem_arg)
785{
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;
789 int cycles = 0;
790 {
791 int referenced = 0;
792 int UNUSED insn_referenced = abuf->written;
793 INT in_src1 = -1;
794 INT in_src2 = -1;
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);
798 }
799 return cycles;
800#undef FLD
801}
802
803static int
804model_m32r2_cmpu (SIM_CPU *current_cpu, void *sem_arg)
805{
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;
809 int cycles = 0;
810 {
811 int referenced = 0;
812 int UNUSED insn_referenced = abuf->written;
813 INT in_src1 = -1;
814 INT in_src2 = -1;
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);
820 }
821 return cycles;
822#undef FLD
823}
824
825static int
826model_m32r2_cmpui (SIM_CPU *current_cpu, void *sem_arg)
827{
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;
831 int cycles = 0;
832 {
833 int referenced = 0;
834 int UNUSED insn_referenced = abuf->written;
835 INT in_src1 = -1;
836 INT in_src2 = -1;
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);
840 }
841 return cycles;
842#undef FLD
843}
844
845static int
846model_m32r2_cmpeq (SIM_CPU *current_cpu, void *sem_arg)
847{
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;
851 int cycles = 0;
852 {
853 int referenced = 0;
854 int UNUSED insn_referenced = abuf->written;
855 INT in_src1 = -1;
856 INT in_src2 = -1;
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);
862 }
863 return cycles;
864#undef FLD
865}
866
867static int
868model_m32r2_cmpz (SIM_CPU *current_cpu, void *sem_arg)
869{
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;
873 int cycles = 0;
874 {
875 int referenced = 0;
876 int UNUSED insn_referenced = abuf->written;
877 INT in_src1 = -1;
878 INT in_src2 = -1;
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);
882 }
883 return cycles;
884#undef FLD
885}
886
887static int
888model_m32r2_div (SIM_CPU *current_cpu, void *sem_arg)
889{
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;
893 int cycles = 0;
894 {
895 int referenced = 0;
896 int UNUSED insn_referenced = abuf->written;
897 INT in_sr = -1;
898 INT in_dr = -1;
899 INT out_dr = -1;
900 in_sr = FLD (in_sr);
901 in_dr = FLD (in_dr);
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);
907 }
908 return cycles;
909#undef FLD
910}
911
912static int
913model_m32r2_divu (SIM_CPU *current_cpu, void *sem_arg)
914{
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;
918 int cycles = 0;
919 {
920 int referenced = 0;
921 int UNUSED insn_referenced = abuf->written;
922 INT in_sr = -1;
923 INT in_dr = -1;
924 INT out_dr = -1;
925 in_sr = FLD (in_sr);
926 in_dr = FLD (in_dr);
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);
932 }
933 return cycles;
934#undef FLD
935}
936
937static int
938model_m32r2_rem (SIM_CPU *current_cpu, void *sem_arg)
939{
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;
943 int cycles = 0;
944 {
945 int referenced = 0;
946 int UNUSED insn_referenced = abuf->written;
947 INT in_sr = -1;
948 INT in_dr = -1;
949 INT out_dr = -1;
950 in_sr = FLD (in_sr);
951 in_dr = FLD (in_dr);
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);
957 }
958 return cycles;
959#undef FLD
960}
961
962static int
963model_m32r2_remu (SIM_CPU *current_cpu, void *sem_arg)
964{
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;
968 int cycles = 0;
969 {
970 int referenced = 0;
971 int UNUSED insn_referenced = abuf->written;
972 INT in_sr = -1;
973 INT in_dr = -1;
974 INT out_dr = -1;
975 in_sr = FLD (in_sr);
976 in_dr = FLD (in_dr);
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);
982 }
983 return cycles;
984#undef FLD
985}
986
987static int
988model_m32r2_remh (SIM_CPU *current_cpu, void *sem_arg)
989{
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;
993 int cycles = 0;
994 {
995 int referenced = 0;
996 int UNUSED insn_referenced = abuf->written;
997 INT in_sr = -1;
998 INT in_dr = -1;
999 INT out_dr = -1;
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);
1007 }
1008 return cycles;
1009#undef FLD
1010}
1011
1012static int
1013model_m32r2_remuh (SIM_CPU *current_cpu, void *sem_arg)
1014{
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;
1018 int cycles = 0;
1019 {
1020 int referenced = 0;
1021 int UNUSED insn_referenced = abuf->written;
1022 INT in_sr = -1;
1023 INT in_dr = -1;
1024 INT out_dr = -1;
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);
1032 }
1033 return cycles;
1034#undef FLD
1035}
1036
1037static int
1038model_m32r2_remb (SIM_CPU *current_cpu, void *sem_arg)
1039{
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;
1043 int cycles = 0;
1044 {
1045 int referenced = 0;
1046 int UNUSED insn_referenced = abuf->written;
1047 INT in_sr = -1;
1048 INT in_dr = -1;
1049 INT out_dr = -1;
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);
1057 }
1058 return cycles;
1059#undef FLD
1060}
1061
1062static int
1063model_m32r2_remub (SIM_CPU *current_cpu, void *sem_arg)
1064{
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;
1068 int cycles = 0;
1069 {
1070 int referenced = 0;
1071 int UNUSED insn_referenced = abuf->written;
1072 INT in_sr = -1;
1073 INT in_dr = -1;
1074 INT out_dr = -1;
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);
1082 }
1083 return cycles;
1084#undef FLD
1085}
1086
1087static int
1088model_m32r2_divuh (SIM_CPU *current_cpu, void *sem_arg)
1089{
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;
1093 int cycles = 0;
1094 {
1095 int referenced = 0;
1096 int UNUSED insn_referenced = abuf->written;
1097 INT in_sr = -1;
1098 INT in_dr = -1;
1099 INT out_dr = -1;
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);
1107 }
1108 return cycles;
1109#undef FLD
1110}
1111
1112static int
1113model_m32r2_divb (SIM_CPU *current_cpu, void *sem_arg)
1114{
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;
1118 int cycles = 0;
1119 {
1120 int referenced = 0;
1121 int UNUSED insn_referenced = abuf->written;
1122 INT in_sr = -1;
1123 INT in_dr = -1;
1124 INT out_dr = -1;
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);
1132 }
1133 return cycles;
1134#undef FLD
1135}
1136
1137static int
1138model_m32r2_divub (SIM_CPU *current_cpu, void *sem_arg)
1139{
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;
1143 int cycles = 0;
1144 {
1145 int referenced = 0;
1146 int UNUSED insn_referenced = abuf->written;
1147 INT in_sr = -1;
1148 INT in_dr = -1;
1149 INT out_dr = -1;
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);
1157 }
1158 return cycles;
1159#undef FLD
1160}
1161
1162static int
1163model_m32r2_divh (SIM_CPU *current_cpu, void *sem_arg)
1164{
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;
1168 int cycles = 0;
1169 {
1170 int referenced = 0;
1171 int UNUSED insn_referenced = abuf->written;
1172 INT in_sr = -1;
1173 INT in_dr = -1;
1174 INT out_dr = -1;
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);
1182 }
1183 return cycles;
1184#undef FLD
1185}
1186
1187static int
1188model_m32r2_jc (SIM_CPU *current_cpu, void *sem_arg)
1189{
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;
1193 int cycles = 0;
1194 {
1195 int referenced = 0;
1196 int UNUSED insn_referenced = abuf->written;
1197 INT in_sr = -1;
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);
1202 }
1203 return cycles;
1204#undef FLD
1205}
1206
1207static int
1208model_m32r2_jnc (SIM_CPU *current_cpu, void *sem_arg)
1209{
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;
1213 int cycles = 0;
1214 {
1215 int referenced = 0;
1216 int UNUSED insn_referenced = abuf->written;
1217 INT in_sr = -1;
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);
1222 }
1223 return cycles;
1224#undef FLD
1225}
1226
1227static int
1228model_m32r2_jl (SIM_CPU *current_cpu, void *sem_arg)
1229{
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;
1233 int cycles = 0;
1234 {
1235 int referenced = 0;
1236 int UNUSED insn_referenced = abuf->written;
1237 INT in_sr = -1;
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);
1242 }
1243 return cycles;
1244#undef FLD
1245}
1246
1247static int
1248model_m32r2_jmp (SIM_CPU *current_cpu, void *sem_arg)
1249{
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;
1253 int cycles = 0;
1254 {
1255 int referenced = 0;
1256 int UNUSED insn_referenced = abuf->written;
1257 INT in_sr = -1;
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);
1262 }
1263 return cycles;
1264#undef FLD
1265}
1266
1267static int
1268model_m32r2_ld (SIM_CPU *current_cpu, void *sem_arg)
1269{
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;
1273 int cycles = 0;
1274 {
1275 int referenced = 0;
1276 int UNUSED insn_referenced = abuf->written;
1277 INT in_sr = 0;
1278 INT out_dr = 0;
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);
1284 }
1285 return cycles;
1286#undef FLD
1287}
1288
1289static int
1290model_m32r2_ld_d (SIM_CPU *current_cpu, void *sem_arg)
1291{
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;
1295 int cycles = 0;
1296 {
1297 int referenced = 0;
1298 int UNUSED insn_referenced = abuf->written;
1299 INT in_sr = 0;
1300 INT out_dr = 0;
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);
1306 }
1307 return cycles;
1308#undef FLD
1309}
1310
1311static int
1312model_m32r2_ldb (SIM_CPU *current_cpu, void *sem_arg)
1313{
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;
1317 int cycles = 0;
1318 {
1319 int referenced = 0;
1320 int UNUSED insn_referenced = abuf->written;
1321 INT in_sr = 0;
1322 INT out_dr = 0;
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);
1328 }
1329 return cycles;
1330#undef FLD
1331}
1332
1333static int
1334model_m32r2_ldb_d (SIM_CPU *current_cpu, void *sem_arg)
1335{
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;
1339 int cycles = 0;
1340 {
1341 int referenced = 0;
1342 int UNUSED insn_referenced = abuf->written;
1343 INT in_sr = 0;
1344 INT out_dr = 0;
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);
1350 }
1351 return cycles;
1352#undef FLD
1353}
1354
1355static int
1356model_m32r2_ldh (SIM_CPU *current_cpu, void *sem_arg)
1357{
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;
1361 int cycles = 0;
1362 {
1363 int referenced = 0;
1364 int UNUSED insn_referenced = abuf->written;
1365 INT in_sr = 0;
1366 INT out_dr = 0;
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);
1372 }
1373 return cycles;
1374#undef FLD
1375}
1376
1377static int
1378model_m32r2_ldh_d (SIM_CPU *current_cpu, void *sem_arg)
1379{
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;
1383 int cycles = 0;
1384 {
1385 int referenced = 0;
1386 int UNUSED insn_referenced = abuf->written;
1387 INT in_sr = 0;
1388 INT out_dr = 0;
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);
1394 }
1395 return cycles;
1396#undef FLD
1397}
1398
1399static int
1400model_m32r2_ldub (SIM_CPU *current_cpu, void *sem_arg)
1401{
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;
1405 int cycles = 0;
1406 {
1407 int referenced = 0;
1408 int UNUSED insn_referenced = abuf->written;
1409 INT in_sr = 0;
1410 INT out_dr = 0;
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);
1416 }
1417 return cycles;
1418#undef FLD
1419}
1420
1421static int
1422model_m32r2_ldub_d (SIM_CPU *current_cpu, void *sem_arg)
1423{
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;
1427 int cycles = 0;
1428 {
1429 int referenced = 0;
1430 int UNUSED insn_referenced = abuf->written;
1431 INT in_sr = 0;
1432 INT out_dr = 0;
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);
1438 }
1439 return cycles;
1440#undef FLD
1441}
1442
1443static int
1444model_m32r2_lduh (SIM_CPU *current_cpu, void *sem_arg)
1445{
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;
1449 int cycles = 0;
1450 {
1451 int referenced = 0;
1452 int UNUSED insn_referenced = abuf->written;
1453 INT in_sr = 0;
1454 INT out_dr = 0;
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);
1460 }
1461 return cycles;
1462#undef FLD
1463}
1464
1465static int
1466model_m32r2_lduh_d (SIM_CPU *current_cpu, void *sem_arg)
1467{
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;
1471 int cycles = 0;
1472 {
1473 int referenced = 0;
1474 int UNUSED insn_referenced = abuf->written;
1475 INT in_sr = 0;
1476 INT out_dr = 0;
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);
1482 }
1483 return cycles;
1484#undef FLD
1485}
1486
1487static int
1488model_m32r2_ld_plus (SIM_CPU *current_cpu, void *sem_arg)
1489{
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;
1493 int cycles = 0;
1494 {
1495 int referenced = 0;
1496 int UNUSED insn_referenced = abuf->written;
1497 INT in_sr = 0;
1498 INT out_dr = 0;
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);
1504 }
1505 {
1506 int referenced = 0;
1507 int UNUSED insn_referenced = abuf->written;
1508 INT in_sr = -1;
1509 INT in_dr = -1;
1510 INT out_dr = -1;
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);
1516 }
1517 return cycles;
1518#undef FLD
1519}
1520
1521static int
1522model_m32r2_ld24 (SIM_CPU *current_cpu, void *sem_arg)
1523{
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;
1527 int cycles = 0;
1528 {
1529 int referenced = 0;
1530 int UNUSED insn_referenced = abuf->written;
1531 INT in_sr = -1;
1532 INT in_dr = -1;
1533 INT out_dr = -1;
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);
1537 }
1538 return cycles;
1539#undef FLD
1540}
1541
1542static int
1543model_m32r2_ldi8 (SIM_CPU *current_cpu, void *sem_arg)
1544{
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;
1548 int cycles = 0;
1549 {
1550 int referenced = 0;
1551 int UNUSED insn_referenced = abuf->written;
1552 INT in_sr = -1;
1553 INT in_dr = -1;
1554 INT out_dr = -1;
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);
1558 }
1559 return cycles;
1560#undef FLD
1561}
1562
1563static int
1564model_m32r2_ldi16 (SIM_CPU *current_cpu, void *sem_arg)
1565{
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;
1569 int cycles = 0;
1570 {
1571 int referenced = 0;
1572 int UNUSED insn_referenced = abuf->written;
1573 INT in_sr = -1;
1574 INT in_dr = -1;
1575 INT out_dr = -1;
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);
1579 }
1580 return cycles;
1581#undef FLD
1582}
1583
1584static int
1585model_m32r2_lock (SIM_CPU *current_cpu, void *sem_arg)
1586{
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;
1590 int cycles = 0;
1591 {
1592 int referenced = 0;
1593 int UNUSED insn_referenced = abuf->written;
1594 INT in_sr = 0;
1595 INT out_dr = 0;
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);
1601 }
1602 return cycles;
1603#undef FLD
1604}
1605
1606static int
1607model_m32r2_machi_a (SIM_CPU *current_cpu, void *sem_arg)
1608{
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;
1612 int cycles = 0;
1613 {
1614 int referenced = 0;
1615 int UNUSED insn_referenced = abuf->written;
1616 INT in_src1 = -1;
1617 INT in_src2 = -1;
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);
1623 }
1624 return cycles;
1625#undef FLD
1626}
1627
1628static int
1629model_m32r2_maclo_a (SIM_CPU *current_cpu, void *sem_arg)
1630{
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;
1634 int cycles = 0;
1635 {
1636 int referenced = 0;
1637 int UNUSED insn_referenced = abuf->written;
1638 INT in_src1 = -1;
1639 INT in_src2 = -1;
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);
1645 }
1646 return cycles;
1647#undef FLD
1648}
1649
1650static int
1651model_m32r2_macwhi_a (SIM_CPU *current_cpu, void *sem_arg)
1652{
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;
1656 int cycles = 0;
1657 {
1658 int referenced = 0;
1659 int UNUSED insn_referenced = abuf->written;
1660 INT in_src1 = -1;
1661 INT in_src2 = -1;
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);
1667 }
1668 return cycles;
1669#undef FLD
1670}
1671
1672static int
1673model_m32r2_macwlo_a (SIM_CPU *current_cpu, void *sem_arg)
1674{
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;
1678 int cycles = 0;
1679 {
1680 int referenced = 0;
1681 int UNUSED insn_referenced = abuf->written;
1682 INT in_src1 = -1;
1683 INT in_src2 = -1;
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);
1689 }
1690 return cycles;
1691#undef FLD
1692}
1693
1694static int
1695model_m32r2_mul (SIM_CPU *current_cpu, void *sem_arg)
1696{
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;
1700 int cycles = 0;
1701 {
1702 int referenced = 0;
1703 int UNUSED insn_referenced = abuf->written;
1704 INT in_sr = -1;
1705 INT in_dr = -1;
1706 INT out_dr = -1;
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);
1714 }
1715 return cycles;
1716#undef FLD
1717}
1718
1719static int
1720model_m32r2_mulhi_a (SIM_CPU *current_cpu, void *sem_arg)
1721{
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;
1725 int cycles = 0;
1726 {
1727 int referenced = 0;
1728 int UNUSED insn_referenced = abuf->written;
1729 INT in_src1 = -1;
1730 INT in_src2 = -1;
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);
1736 }
1737 return cycles;
1738#undef FLD
1739}
1740
1741static int
1742model_m32r2_mullo_a (SIM_CPU *current_cpu, void *sem_arg)
1743{
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;
1747 int cycles = 0;
1748 {
1749 int referenced = 0;
1750 int UNUSED insn_referenced = abuf->written;
1751 INT in_src1 = -1;
1752 INT in_src2 = -1;
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);
1758 }
1759 return cycles;
1760#undef FLD
1761}
1762
1763static int
1764model_m32r2_mulwhi_a (SIM_CPU *current_cpu, void *sem_arg)
1765{
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;
1769 int cycles = 0;
1770 {
1771 int referenced = 0;
1772 int UNUSED insn_referenced = abuf->written;
1773 INT in_src1 = -1;
1774 INT in_src2 = -1;
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);
1780 }
1781 return cycles;
1782#undef FLD
1783}
1784
1785static int
1786model_m32r2_mulwlo_a (SIM_CPU *current_cpu, void *sem_arg)
1787{
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;
1791 int cycles = 0;
1792 {
1793 int referenced = 0;
1794 int UNUSED insn_referenced = abuf->written;
1795 INT in_src1 = -1;
1796 INT in_src2 = -1;
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);
1802 }
1803 return cycles;
1804#undef FLD
1805}
1806
1807static int
1808model_m32r2_mv (SIM_CPU *current_cpu, void *sem_arg)
1809{
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;
1813 int cycles = 0;
1814 {
1815 int referenced = 0;
1816 int UNUSED insn_referenced = abuf->written;
1817 INT in_sr = -1;
1818 INT in_dr = -1;
1819 INT out_dr = -1;
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);
1825 }
1826 return cycles;
1827#undef FLD
1828}
1829
1830static int
1831model_m32r2_mvfachi_a (SIM_CPU *current_cpu, void *sem_arg)
1832{
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;
1836 int cycles = 0;
1837 {
1838 int referenced = 0;
1839 int UNUSED insn_referenced = abuf->written;
1840 INT in_sr = -1;
1841 INT in_dr = -1;
1842 INT out_dr = -1;
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);
1846 }
1847 return cycles;
1848#undef FLD
1849}
1850
1851static int
1852model_m32r2_mvfaclo_a (SIM_CPU *current_cpu, void *sem_arg)
1853{
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;
1857 int cycles = 0;
1858 {
1859 int referenced = 0;
1860 int UNUSED insn_referenced = abuf->written;
1861 INT in_sr = -1;
1862 INT in_dr = -1;
1863 INT out_dr = -1;
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);
1867 }
1868 return cycles;
1869#undef FLD
1870}
1871
1872static int
1873model_m32r2_mvfacmi_a (SIM_CPU *current_cpu, void *sem_arg)
1874{
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;
1878 int cycles = 0;
1879 {
1880 int referenced = 0;
1881 int UNUSED insn_referenced = abuf->written;
1882 INT in_sr = -1;
1883 INT in_dr = -1;
1884 INT out_dr = -1;
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);
1888 }
1889 return cycles;
1890#undef FLD
1891}
1892
1893static int
1894model_m32r2_mvfc (SIM_CPU *current_cpu, void *sem_arg)
1895{
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;
1899 int cycles = 0;
1900 {
1901 int referenced = 0;
1902 int UNUSED insn_referenced = abuf->written;
1903 INT in_sr = -1;
1904 INT in_dr = -1;
1905 INT out_dr = -1;
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);
1909 }
1910 return cycles;
1911#undef FLD
1912}
1913
1914static int
1915model_m32r2_mvtachi_a (SIM_CPU *current_cpu, void *sem_arg)
1916{
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;
1920 int cycles = 0;
1921 {
1922 int referenced = 0;
1923 int UNUSED insn_referenced = abuf->written;
1924 INT in_sr = -1;
1925 INT in_dr = -1;
1926 INT out_dr = -1;
1927 in_sr = FLD (in_src1);
1928 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1929 }
1930 return cycles;
1931#undef FLD
1932}
1933
1934static int
1935model_m32r2_mvtaclo_a (SIM_CPU *current_cpu, void *sem_arg)
1936{
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;
1940 int cycles = 0;
1941 {
1942 int referenced = 0;
1943 int UNUSED insn_referenced = abuf->written;
1944 INT in_sr = -1;
1945 INT in_dr = -1;
1946 INT out_dr = -1;
1947 in_sr = FLD (in_src1);
1948 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1949 }
1950 return cycles;
1951#undef FLD
1952}
1953
1954static int
1955model_m32r2_mvtc (SIM_CPU *current_cpu, void *sem_arg)
1956{
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;
1960 int cycles = 0;
1961 {
1962 int referenced = 0;
1963 int UNUSED insn_referenced = abuf->written;
1964 INT in_sr = -1;
1965 INT in_dr = -1;
1966 INT out_dr = -1;
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);
1970 }
1971 return cycles;
1972#undef FLD
1973}
1974
1975static int
1976model_m32r2_neg (SIM_CPU *current_cpu, void *sem_arg)
1977{
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;
1981 int cycles = 0;
1982 {
1983 int referenced = 0;
1984 int UNUSED insn_referenced = abuf->written;
1985 INT in_sr = -1;
1986 INT in_dr = -1;
1987 INT out_dr = -1;
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);
1993 }
1994 return cycles;
1995#undef FLD
1996}
1997
1998static int
1999model_m32r2_nop (SIM_CPU *current_cpu, void *sem_arg)
2000{
2310652a 2001#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2002 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2003 const IDESC * UNUSED idesc = abuf->idesc;
2004 int cycles = 0;
2005 {
2006 int referenced = 0;
2007 int UNUSED insn_referenced = abuf->written;
2008 INT in_sr = -1;
2009 INT in_dr = -1;
2010 INT out_dr = -1;
2011 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2012 }
2013 return cycles;
2014#undef FLD
2015}
2016
2017static int
2018model_m32r2_not (SIM_CPU *current_cpu, void *sem_arg)
2019{
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;
2023 int cycles = 0;
2024 {
2025 int referenced = 0;
2026 int UNUSED insn_referenced = abuf->written;
2027 INT in_sr = -1;
2028 INT in_dr = -1;
2029 INT out_dr = -1;
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);
2035 }
2036 return cycles;
2037#undef FLD
2038}
2039
2040static int
2041model_m32r2_rac_dsi (SIM_CPU *current_cpu, void *sem_arg)
2042{
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;
2046 int cycles = 0;
2047 {
2048 int referenced = 0;
2049 int UNUSED insn_referenced = abuf->written;
2050 INT in_src1 = -1;
2051 INT in_src2 = -1;
2052 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2053 }
2054 return cycles;
2055#undef FLD
2056}
2057
2058static int
2059model_m32r2_rach_dsi (SIM_CPU *current_cpu, void *sem_arg)
2060{
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;
2064 int cycles = 0;
2065 {
2066 int referenced = 0;
2067 int UNUSED insn_referenced = abuf->written;
2068 INT in_src1 = -1;
2069 INT in_src2 = -1;
2070 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2071 }
2072 return cycles;
2073#undef FLD
2074}
2075
2076static int
2077model_m32r2_rte (SIM_CPU *current_cpu, void *sem_arg)
2078{
2310652a 2079#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2080 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2081 const IDESC * UNUSED idesc = abuf->idesc;
2082 int cycles = 0;
2083 {
2084 int referenced = 0;
2085 int UNUSED insn_referenced = abuf->written;
2086 INT in_sr = -1;
2087 INT in_dr = -1;
2088 INT out_dr = -1;
2089 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2090 }
2091 return cycles;
2092#undef FLD
2093}
2094
2095static int
2096model_m32r2_seth (SIM_CPU *current_cpu, void *sem_arg)
2097{
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;
2101 int cycles = 0;
2102 {
2103 int referenced = 0;
2104 int UNUSED insn_referenced = abuf->written;
2105 INT in_sr = -1;
2106 INT in_dr = -1;
2107 INT out_dr = -1;
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);
2111 }
2112 return cycles;
2113#undef FLD
2114}
2115
2116static int
2117model_m32r2_sll (SIM_CPU *current_cpu, void *sem_arg)
2118{
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;
2122 int cycles = 0;
2123 {
2124 int referenced = 0;
2125 int UNUSED insn_referenced = abuf->written;
2126 INT in_sr = -1;
2127 INT in_dr = -1;
2128 INT out_dr = -1;
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);
2136 }
2137 return cycles;
2138#undef FLD
2139}
2140
2141static int
2142model_m32r2_sll3 (SIM_CPU *current_cpu, void *sem_arg)
2143{
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;
2147 int cycles = 0;
2148 {
2149 int referenced = 0;
2150 int UNUSED insn_referenced = abuf->written;
2151 INT in_sr = -1;
2152 INT in_dr = -1;
2153 INT out_dr = -1;
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);
2159 }
2160 return cycles;
2161#undef FLD
2162}
2163
2164static int
2165model_m32r2_slli (SIM_CPU *current_cpu, void *sem_arg)
2166{
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;
2170 int cycles = 0;
2171 {
2172 int referenced = 0;
2173 int UNUSED insn_referenced = abuf->written;
2174 INT in_sr = -1;
2175 INT in_dr = -1;
2176 INT out_dr = -1;
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);
2182 }
2183 return cycles;
2184#undef FLD
2185}
2186
2187static int
2188model_m32r2_sra (SIM_CPU *current_cpu, void *sem_arg)
2189{
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;
2193 int cycles = 0;
2194 {
2195 int referenced = 0;
2196 int UNUSED insn_referenced = abuf->written;
2197 INT in_sr = -1;
2198 INT in_dr = -1;
2199 INT out_dr = -1;
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);
2207 }
2208 return cycles;
2209#undef FLD
2210}
2211
2212static int
2213model_m32r2_sra3 (SIM_CPU *current_cpu, void *sem_arg)
2214{
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;
2218 int cycles = 0;
2219 {
2220 int referenced = 0;
2221 int UNUSED insn_referenced = abuf->written;
2222 INT in_sr = -1;
2223 INT in_dr = -1;
2224 INT out_dr = -1;
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);
2230 }
2231 return cycles;
2232#undef FLD
2233}
2234
2235static int
2236model_m32r2_srai (SIM_CPU *current_cpu, void *sem_arg)
2237{
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;
2241 int cycles = 0;
2242 {
2243 int referenced = 0;
2244 int UNUSED insn_referenced = abuf->written;
2245 INT in_sr = -1;
2246 INT in_dr = -1;
2247 INT out_dr = -1;
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);
2253 }
2254 return cycles;
2255#undef FLD
2256}
2257
2258static int
2259model_m32r2_srl (SIM_CPU *current_cpu, void *sem_arg)
2260{
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;
2264 int cycles = 0;
2265 {
2266 int referenced = 0;
2267 int UNUSED insn_referenced = abuf->written;
2268 INT in_sr = -1;
2269 INT in_dr = -1;
2270 INT out_dr = -1;
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);
2278 }
2279 return cycles;
2280#undef FLD
2281}
2282
2283static int
2284model_m32r2_srl3 (SIM_CPU *current_cpu, void *sem_arg)
2285{
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;
2289 int cycles = 0;
2290 {
2291 int referenced = 0;
2292 int UNUSED insn_referenced = abuf->written;
2293 INT in_sr = -1;
2294 INT in_dr = -1;
2295 INT out_dr = -1;
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);
2301 }
2302 return cycles;
2303#undef FLD
2304}
2305
2306static int
2307model_m32r2_srli (SIM_CPU *current_cpu, void *sem_arg)
2308{
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;
2312 int cycles = 0;
2313 {
2314 int referenced = 0;
2315 int UNUSED insn_referenced = abuf->written;
2316 INT in_sr = -1;
2317 INT in_dr = -1;
2318 INT out_dr = -1;
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);
2324 }
2325 return cycles;
2326#undef FLD
2327}
2328
2329static int
2330model_m32r2_st (SIM_CPU *current_cpu, void *sem_arg)
2331{
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;
2335 int cycles = 0;
2336 {
2337 int referenced = 0;
2338 int UNUSED insn_referenced = abuf->written;
2339 INT in_src1 = 0;
2340 INT in_src2 = 0;
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);
2346 }
2347 return cycles;
2348#undef FLD
2349}
2350
2351static int
2352model_m32r2_st_d (SIM_CPU *current_cpu, void *sem_arg)
2353{
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;
2357 int cycles = 0;
2358 {
2359 int referenced = 0;
2360 int UNUSED insn_referenced = abuf->written;
2361 INT in_src1 = 0;
2362 INT in_src2 = 0;
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);
2368 }
2369 return cycles;
2370#undef FLD
2371}
2372
2373static int
2374model_m32r2_stb (SIM_CPU *current_cpu, void *sem_arg)
2375{
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;
2379 int cycles = 0;
2380 {
2381 int referenced = 0;
2382 int UNUSED insn_referenced = abuf->written;
2383 INT in_src1 = 0;
2384 INT in_src2 = 0;
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);
2390 }
2391 return cycles;
2392#undef FLD
2393}
2394
2395static int
2396model_m32r2_stb_d (SIM_CPU *current_cpu, void *sem_arg)
2397{
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;
2401 int cycles = 0;
2402 {
2403 int referenced = 0;
2404 int UNUSED insn_referenced = abuf->written;
2405 INT in_src1 = 0;
2406 INT in_src2 = 0;
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);
2412 }
2413 return cycles;
2414#undef FLD
2415}
2416
2417static int
2418model_m32r2_sth (SIM_CPU *current_cpu, void *sem_arg)
2419{
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;
2423 int cycles = 0;
2424 {
2425 int referenced = 0;
2426 int UNUSED insn_referenced = abuf->written;
2427 INT in_src1 = 0;
2428 INT in_src2 = 0;
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);
2434 }
2435 return cycles;
2436#undef FLD
2437}
2438
2439static int
2440model_m32r2_sth_d (SIM_CPU *current_cpu, void *sem_arg)
2441{
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;
2445 int cycles = 0;
2446 {
2447 int referenced = 0;
2448 int UNUSED insn_referenced = abuf->written;
2449 INT in_src1 = 0;
2450 INT in_src2 = 0;
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);
2456 }
2457 return cycles;
2458#undef FLD
2459}
2460
2461static int
2462model_m32r2_st_plus (SIM_CPU *current_cpu, void *sem_arg)
2463{
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;
2467 int cycles = 0;
2468 {
2469 int referenced = 0;
2470 int UNUSED insn_referenced = abuf->written;
2471 INT in_src1 = 0;
2472 INT in_src2 = 0;
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);
2478 }
2479 {
2480 int referenced = 0;
2481 int UNUSED insn_referenced = abuf->written;
2482 INT in_sr = -1;
2483 INT in_dr = -1;
2484 INT out_dr = -1;
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);
2488 }
2489 return cycles;
2490#undef FLD
2491}
2492
2493static int
2494model_m32r2_sth_plus (SIM_CPU *current_cpu, void *sem_arg)
2495{
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;
2499 int cycles = 0;
2500 {
2501 int referenced = 0;
2502 int UNUSED insn_referenced = abuf->written;
2503 INT in_src1 = 0;
2504 INT in_src2 = 0;
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);
2510 }
2511 {
2512 int referenced = 0;
2513 int UNUSED insn_referenced = abuf->written;
2514 INT in_sr = -1;
2515 INT in_dr = -1;
2516 INT out_dr = -1;
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);
2520 }
2521 return cycles;
2522#undef FLD
2523}
2524
2525static int
2526model_m32r2_stb_plus (SIM_CPU *current_cpu, void *sem_arg)
2527{
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;
2531 int cycles = 0;
2532 {
2533 int referenced = 0;
2534 int UNUSED insn_referenced = abuf->written;
2535 INT in_src1 = 0;
2536 INT in_src2 = 0;
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);
2542 }
2543 {
2544 int referenced = 0;
2545 int UNUSED insn_referenced = abuf->written;
2546 INT in_sr = -1;
2547 INT in_dr = -1;
2548 INT out_dr = -1;
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);
2552 }
2553 return cycles;
2554#undef FLD
2555}
2556
2557static int
2558model_m32r2_st_minus (SIM_CPU *current_cpu, void *sem_arg)
2559{
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;
2563 int cycles = 0;
2564 {
2565 int referenced = 0;
2566 int UNUSED insn_referenced = abuf->written;
2567 INT in_src1 = 0;
2568 INT in_src2 = 0;
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);
2574 }
2575 {
2576 int referenced = 0;
2577 int UNUSED insn_referenced = abuf->written;
2578 INT in_sr = -1;
2579 INT in_dr = -1;
2580 INT out_dr = -1;
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);
2584 }
2585 return cycles;
2586#undef FLD
2587}
2588
2589static int
2590model_m32r2_sub (SIM_CPU *current_cpu, void *sem_arg)
2591{
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;
2595 int cycles = 0;
2596 {
2597 int referenced = 0;
2598 int UNUSED insn_referenced = abuf->written;
2599 INT in_sr = -1;
2600 INT in_dr = -1;
2601 INT out_dr = -1;
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);
2609 }
2610 return cycles;
2611#undef FLD
2612}
2613
2614static int
2615model_m32r2_subv (SIM_CPU *current_cpu, void *sem_arg)
2616{
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;
2620 int cycles = 0;
2621 {
2622 int referenced = 0;
2623 int UNUSED insn_referenced = abuf->written;
2624 INT in_sr = -1;
2625 INT in_dr = -1;
2626 INT out_dr = -1;
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);
2634 }
2635 return cycles;
2636#undef FLD
2637}
2638
2639static int
2640model_m32r2_subx (SIM_CPU *current_cpu, void *sem_arg)
2641{
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;
2645 int cycles = 0;
2646 {
2647 int referenced = 0;
2648 int UNUSED insn_referenced = abuf->written;
2649 INT in_sr = -1;
2650 INT in_dr = -1;
2651 INT out_dr = -1;
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);
2659 }
2660 return cycles;
2661#undef FLD
2662}
2663
2664static int
2665model_m32r2_trap (SIM_CPU *current_cpu, void *sem_arg)
2666{
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;
2670 int cycles = 0;
2671 {
2672 int referenced = 0;
2673 int UNUSED insn_referenced = abuf->written;
2674 INT in_sr = -1;
2675 INT in_dr = -1;
2676 INT out_dr = -1;
2677 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2678 }
2679 return cycles;
2680#undef FLD
2681}
2682
2683static int
2684model_m32r2_unlock (SIM_CPU *current_cpu, void *sem_arg)
2685{
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;
2689 int cycles = 0;
2690 {
2691 int referenced = 0;
2692 int UNUSED insn_referenced = abuf->written;
2693 INT in_sr = 0;
2694 INT out_dr = 0;
2695 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
2696 }
2697 return cycles;
2698#undef FLD
2699}
2700
2701static int
2702model_m32r2_satb (SIM_CPU *current_cpu, void *sem_arg)
2703{
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;
2707 int cycles = 0;
2708 {
2709 int referenced = 0;
2710 int UNUSED insn_referenced = abuf->written;
2711 INT in_sr = -1;
2712 INT in_dr = -1;
2713 INT out_dr = -1;
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);
2719 }
2720 return cycles;
2721#undef FLD
2722}
2723
2724static int
2725model_m32r2_sath (SIM_CPU *current_cpu, void *sem_arg)
2726{
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;
2730 int cycles = 0;
2731 {
2732 int referenced = 0;
2733 int UNUSED insn_referenced = abuf->written;
2734 INT in_sr = -1;
2735 INT in_dr = -1;
2736 INT out_dr = -1;
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);
2742 }
2743 return cycles;
2744#undef FLD
2745}
2746
2747static int
2748model_m32r2_sat (SIM_CPU *current_cpu, void *sem_arg)
2749{
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;
2753 int cycles = 0;
2754 {
2755 int referenced = 0;
2756 int UNUSED insn_referenced = abuf->written;
2757 INT in_sr = -1;
2758 INT in_dr = -1;
2759 INT out_dr = -1;
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);
2765 }
2766 return cycles;
2767#undef FLD
2768}
2769
2770static int
2771model_m32r2_pcmpbz (SIM_CPU *current_cpu, void *sem_arg)
2772{
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;
2776 int cycles = 0;
2777 {
2778 int referenced = 0;
2779 int UNUSED insn_referenced = abuf->written;
2780 INT in_src1 = -1;
2781 INT in_src2 = -1;
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);
2785 }
2786 return cycles;
2787#undef FLD
2788}
2789
2790static int
2791model_m32r2_sadd (SIM_CPU *current_cpu, void *sem_arg)
2792{
2310652a 2793#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2794 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2795 const IDESC * UNUSED idesc = abuf->idesc;
2796 int cycles = 0;
2797 {
2798 int referenced = 0;
2799 int UNUSED insn_referenced = abuf->written;
2800 INT in_src1 = -1;
2801 INT in_src2 = -1;
2802 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2803 }
2804 return cycles;
2805#undef FLD
2806}
2807
2808static int
2809model_m32r2_macwu1 (SIM_CPU *current_cpu, void *sem_arg)
2810{
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;
2814 int cycles = 0;
2815 {
2816 int referenced = 0;
2817 int UNUSED insn_referenced = abuf->written;
2818 INT in_src1 = -1;
2819 INT in_src2 = -1;
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);
2825 }
2826 return cycles;
2827#undef FLD
2828}
2829
2830static int
2831model_m32r2_msblo (SIM_CPU *current_cpu, void *sem_arg)
2832{
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;
2836 int cycles = 0;
2837 {
2838 int referenced = 0;
2839 int UNUSED insn_referenced = abuf->written;
2840 INT in_src1 = -1;
2841 INT in_src2 = -1;
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);
2847 }
2848 return cycles;
2849#undef FLD
2850}
2851
2852static int
2853model_m32r2_mulwu1 (SIM_CPU *current_cpu, void *sem_arg)
2854{
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;
2858 int cycles = 0;
2859 {
2860 int referenced = 0;
2861 int UNUSED insn_referenced = abuf->written;
2862 INT in_src1 = -1;
2863 INT in_src2 = -1;
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);
2869 }
2870 return cycles;
2871#undef FLD
2872}
2873
2874static int
2875model_m32r2_maclh1 (SIM_CPU *current_cpu, void *sem_arg)
2876{
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;
2880 int cycles = 0;
2881 {
2882 int referenced = 0;
2883 int UNUSED insn_referenced = abuf->written;
2884 INT in_src1 = -1;
2885 INT in_src2 = -1;
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);
2891 }
2892 return cycles;
2893#undef FLD
2894}
2895
2896static int
2897model_m32r2_sc (SIM_CPU *current_cpu, void *sem_arg)
2898{
2310652a 2899#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2900 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2901 const IDESC * UNUSED idesc = abuf->idesc;
2902 int cycles = 0;
2903 {
2904 int referenced = 0;
2905 int UNUSED insn_referenced = abuf->written;
2906 INT in_sr = -1;
2907 INT in_dr = -1;
2908 INT out_dr = -1;
2909 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2910 }
2911 return cycles;
2912#undef FLD
2913}
2914
2915static int
2916model_m32r2_snc (SIM_CPU *current_cpu, void *sem_arg)
2917{
2310652a 2918#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2919 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2920 const IDESC * UNUSED idesc = abuf->idesc;
2921 int cycles = 0;
2922 {
2923 int referenced = 0;
2924 int UNUSED insn_referenced = abuf->written;
2925 INT in_sr = -1;
2926 INT in_dr = -1;
2927 INT out_dr = -1;
2928 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2929 }
2930 return cycles;
2931#undef FLD
2932}
2933
2934static int
2935model_m32r2_clrpsw (SIM_CPU *current_cpu, void *sem_arg)
2936{
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;
2940 int cycles = 0;
2941 {
2942 int referenced = 0;
2943 int UNUSED insn_referenced = abuf->written;
2944 INT in_sr = -1;
2945 INT in_dr = -1;
2946 INT out_dr = -1;
2947 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2948 }
2949 return cycles;
2950#undef FLD
2951}
2952
2953static int
2954model_m32r2_setpsw (SIM_CPU *current_cpu, void *sem_arg)
2955{
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;
2959 int cycles = 0;
2960 {
2961 int referenced = 0;
2962 int UNUSED insn_referenced = abuf->written;
2963 INT in_sr = -1;
2964 INT in_dr = -1;
2965 INT out_dr = -1;
2966 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2967 }
2968 return cycles;
2969#undef FLD
2970}
2971
2972static int
2973model_m32r2_bset (SIM_CPU *current_cpu, void *sem_arg)
2974{
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;
2978 int cycles = 0;
2979 {
2980 int referenced = 0;
2981 int UNUSED insn_referenced = abuf->written;
2982 INT in_sr = -1;
2983 INT in_dr = -1;
2984 INT out_dr = -1;
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);
2988 }
2989 return cycles;
2990#undef FLD
2991}
2992
2993static int
2994model_m32r2_bclr (SIM_CPU *current_cpu, void *sem_arg)
2995{
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;
2999 int cycles = 0;
3000 {
3001 int referenced = 0;
3002 int UNUSED insn_referenced = abuf->written;
3003 INT in_sr = -1;
3004 INT in_dr = -1;
3005 INT out_dr = -1;
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);
3009 }
3010 return cycles;
3011#undef FLD
3012}
3013
3014static int
3015model_m32r2_btst (SIM_CPU *current_cpu, void *sem_arg)
3016{
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;
3020 int cycles = 0;
3021 {
3022 int referenced = 0;
3023 int UNUSED insn_referenced = abuf->written;
3024 INT in_sr = -1;
3025 INT in_dr = -1;
3026 INT out_dr = -1;
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);
3030 }
3031 return cycles;
3032#undef FLD
3033}
3034
3035/* We assume UNIT_NONE == 0 because the tables don't always terminate
3036 entries with it. */
3037
3038/* Model timing data for `m32r2'. */
3039
3040static 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 } } },
3180};
3181
3182#endif /* WITH_PROFILE_MODEL_P */
3183
3184static void
3185m32r2_model_init (SIM_CPU *cpu)
3186{
3187 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_M32R2_DATA));
3188}
3189
3190#if WITH_PROFILE_MODEL_P
3191#define TIMING_DATA(td) td
3192#else
3193#define TIMING_DATA(td) 0
3194#endif
3195
3196static const MODEL m32r2_models[] =
3197{
3198 { "m32r2", & m32r2_mach, MODEL_M32R2, TIMING_DATA (& m32r2_timing[0]), m32r2_model_init },
3199 { 0 }
3200};
3201
3202/* The properties of this cpu's implementation. */
3203
3204static const MACH_IMP_PROPERTIES m32r2f_imp_properties =
3205{
3206 sizeof (SIM_CPU),
3207#if WITH_SCACHE
3208 sizeof (SCACHE)
3209#else
3210 0
3211#endif
3212};
3213
3214
3215static void
3216m32r2f_prepare_run (SIM_CPU *cpu)
3217{
3218 if (CPU_IDESC (cpu) == NULL)
3219 m32r2f_init_idesc_table (cpu);
3220}
3221
3222static const CGEN_INSN *
3223m32r2f_get_idata (SIM_CPU *cpu, int inum)
3224{
3225 return CPU_IDESC (cpu) [inum].idata;
3226}
3227
3228static void
3229m32r2_init_cpu (SIM_CPU *cpu)
3230{
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;
3239#if WITH_FAST
3240 CPU_FAST_ENGINE_FN (cpu) = m32r2f_engine_run_fast;
3241#else
3242 CPU_FAST_ENGINE_FN (cpu) = m32r2f_engine_run_full;
3243#endif
3244}
3245
3246const MACH m32r2_mach =
3247{
3248 "m32r2", "m32r2", MACH_M32R2,
3249 32, 32, & m32r2_models[0], & m32r2f_imp_properties,
3250 m32r2_init_cpu,
3251 m32r2f_prepare_run
3252};
3253
This page took 0.487486 seconds and 4 git commands to generate.