]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/m32r/model2.c
Update Copyright year range in all files maintained by GDB.
[thirdparty/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
ecd75fc8 5Copyright 1996-2014 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 19 You should have received a copy of the GNU General Public License along
51b318de 20 with this program; if not, see <http://www.gnu.org/licenses/>.
16b47b25
NC
21
22*/
23
24#define WANT_CPU m32r2f
25#define WANT_CPU_M32R2F
26
27#include "sim-main.h"
28
29/* The profiling data is recorded here, but is accessed via the profiling
30 mechanism. After all, this is information for profiling. */
31
32#if WITH_PROFILE_MODEL_P
33
34/* Model handlers for each insn. */
35
36static int
37model_m32r2_add (SIM_CPU *current_cpu, void *sem_arg)
38{
39#define FLD(f) abuf->fields.sfmt_add.f
40 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
41 const IDESC * UNUSED idesc = abuf->idesc;
42 int cycles = 0;
43 {
44 int referenced = 0;
45 int UNUSED insn_referenced = abuf->written;
46 INT in_sr = -1;
47 INT in_dr = -1;
48 INT out_dr = -1;
49 in_sr = FLD (in_sr);
50 in_dr = FLD (in_dr);
51 out_dr = FLD (out_dr);
52 referenced |= 1 << 0;
53 referenced |= 1 << 1;
54 referenced |= 1 << 2;
55 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
56 }
57 return cycles;
58#undef FLD
59}
60
61static int
62model_m32r2_add3 (SIM_CPU *current_cpu, void *sem_arg)
63{
64#define FLD(f) abuf->fields.sfmt_add3.f
65 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
66 const IDESC * UNUSED idesc = abuf->idesc;
67 int cycles = 0;
68 {
69 int referenced = 0;
70 int UNUSED insn_referenced = abuf->written;
71 INT in_sr = -1;
72 INT in_dr = -1;
73 INT out_dr = -1;
74 in_sr = FLD (in_sr);
75 out_dr = FLD (out_dr);
76 referenced |= 1 << 0;
77 referenced |= 1 << 2;
78 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
79 }
80 return cycles;
81#undef FLD
82}
83
84static int
85model_m32r2_and (SIM_CPU *current_cpu, void *sem_arg)
86{
87#define FLD(f) abuf->fields.sfmt_add.f
88 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
89 const IDESC * UNUSED idesc = abuf->idesc;
90 int cycles = 0;
91 {
92 int referenced = 0;
93 int UNUSED insn_referenced = abuf->written;
94 INT in_sr = -1;
95 INT in_dr = -1;
96 INT out_dr = -1;
97 in_sr = FLD (in_sr);
98 in_dr = FLD (in_dr);
99 out_dr = FLD (out_dr);
100 referenced |= 1 << 0;
101 referenced |= 1 << 1;
102 referenced |= 1 << 2;
103 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
104 }
105 return cycles;
106#undef FLD
107}
108
109static int
110model_m32r2_and3 (SIM_CPU *current_cpu, void *sem_arg)
111{
112#define FLD(f) abuf->fields.sfmt_and3.f
113 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
114 const IDESC * UNUSED idesc = abuf->idesc;
115 int cycles = 0;
116 {
117 int referenced = 0;
118 int UNUSED insn_referenced = abuf->written;
119 INT in_sr = -1;
120 INT in_dr = -1;
121 INT out_dr = -1;
122 in_sr = FLD (in_sr);
123 out_dr = FLD (out_dr);
124 referenced |= 1 << 0;
125 referenced |= 1 << 2;
126 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
127 }
128 return cycles;
129#undef FLD
130}
131
132static int
133model_m32r2_or (SIM_CPU *current_cpu, void *sem_arg)
134{
135#define FLD(f) abuf->fields.sfmt_add.f
136 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
137 const IDESC * UNUSED idesc = abuf->idesc;
138 int cycles = 0;
139 {
140 int referenced = 0;
141 int UNUSED insn_referenced = abuf->written;
142 INT in_sr = -1;
143 INT in_dr = -1;
144 INT out_dr = -1;
145 in_sr = FLD (in_sr);
146 in_dr = FLD (in_dr);
147 out_dr = FLD (out_dr);
148 referenced |= 1 << 0;
149 referenced |= 1 << 1;
150 referenced |= 1 << 2;
151 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
152 }
153 return cycles;
154#undef FLD
155}
156
157static int
158model_m32r2_or3 (SIM_CPU *current_cpu, void *sem_arg)
159{
160#define FLD(f) abuf->fields.sfmt_and3.f
161 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
162 const IDESC * UNUSED idesc = abuf->idesc;
163 int cycles = 0;
164 {
165 int referenced = 0;
166 int UNUSED insn_referenced = abuf->written;
167 INT in_sr = -1;
168 INT in_dr = -1;
169 INT out_dr = -1;
170 in_sr = FLD (in_sr);
171 out_dr = FLD (out_dr);
172 referenced |= 1 << 0;
173 referenced |= 1 << 2;
174 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
175 }
176 return cycles;
177#undef FLD
178}
179
180static int
181model_m32r2_xor (SIM_CPU *current_cpu, void *sem_arg)
182{
183#define FLD(f) abuf->fields.sfmt_add.f
184 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
185 const IDESC * UNUSED idesc = abuf->idesc;
186 int cycles = 0;
187 {
188 int referenced = 0;
189 int UNUSED insn_referenced = abuf->written;
190 INT in_sr = -1;
191 INT in_dr = -1;
192 INT out_dr = -1;
193 in_sr = FLD (in_sr);
194 in_dr = FLD (in_dr);
195 out_dr = FLD (out_dr);
196 referenced |= 1 << 0;
197 referenced |= 1 << 1;
198 referenced |= 1 << 2;
199 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
200 }
201 return cycles;
202#undef FLD
203}
204
205static int
206model_m32r2_xor3 (SIM_CPU *current_cpu, void *sem_arg)
207{
208#define FLD(f) abuf->fields.sfmt_and3.f
209 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
210 const IDESC * UNUSED idesc = abuf->idesc;
211 int cycles = 0;
212 {
213 int referenced = 0;
214 int UNUSED insn_referenced = abuf->written;
215 INT in_sr = -1;
216 INT in_dr = -1;
217 INT out_dr = -1;
218 in_sr = FLD (in_sr);
219 out_dr = FLD (out_dr);
220 referenced |= 1 << 0;
221 referenced |= 1 << 2;
222 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
223 }
224 return cycles;
225#undef FLD
226}
227
228static int
229model_m32r2_addi (SIM_CPU *current_cpu, void *sem_arg)
230{
231#define FLD(f) abuf->fields.sfmt_addi.f
232 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
233 const IDESC * UNUSED idesc = abuf->idesc;
234 int cycles = 0;
235 {
236 int referenced = 0;
237 int UNUSED insn_referenced = abuf->written;
238 INT in_sr = -1;
239 INT in_dr = -1;
240 INT out_dr = -1;
241 in_dr = FLD (in_dr);
242 out_dr = FLD (out_dr);
243 referenced |= 1 << 1;
244 referenced |= 1 << 2;
245 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
246 }
247 return cycles;
248#undef FLD
249}
250
251static int
252model_m32r2_addv (SIM_CPU *current_cpu, void *sem_arg)
253{
254#define FLD(f) abuf->fields.sfmt_add.f
255 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
256 const IDESC * UNUSED idesc = abuf->idesc;
257 int cycles = 0;
258 {
259 int referenced = 0;
260 int UNUSED insn_referenced = abuf->written;
261 INT in_sr = -1;
262 INT in_dr = -1;
263 INT out_dr = -1;
264 in_sr = FLD (in_sr);
265 in_dr = FLD (in_dr);
266 out_dr = FLD (out_dr);
267 referenced |= 1 << 0;
268 referenced |= 1 << 1;
269 referenced |= 1 << 2;
270 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
271 }
272 return cycles;
273#undef FLD
274}
275
276static int
277model_m32r2_addv3 (SIM_CPU *current_cpu, void *sem_arg)
278{
279#define FLD(f) abuf->fields.sfmt_add3.f
280 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
281 const IDESC * UNUSED idesc = abuf->idesc;
282 int cycles = 0;
283 {
284 int referenced = 0;
285 int UNUSED insn_referenced = abuf->written;
286 INT in_sr = -1;
287 INT in_dr = -1;
288 INT out_dr = -1;
289 in_sr = FLD (in_sr);
290 out_dr = FLD (out_dr);
291 referenced |= 1 << 0;
292 referenced |= 1 << 2;
293 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
294 }
295 return cycles;
296#undef FLD
297}
298
299static int
300model_m32r2_addx (SIM_CPU *current_cpu, void *sem_arg)
301{
302#define FLD(f) abuf->fields.sfmt_add.f
303 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
304 const IDESC * UNUSED idesc = abuf->idesc;
305 int cycles = 0;
306 {
307 int referenced = 0;
308 int UNUSED insn_referenced = abuf->written;
309 INT in_sr = -1;
310 INT in_dr = -1;
311 INT out_dr = -1;
312 in_sr = FLD (in_sr);
313 in_dr = FLD (in_dr);
314 out_dr = FLD (out_dr);
315 referenced |= 1 << 0;
316 referenced |= 1 << 1;
317 referenced |= 1 << 2;
318 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
319 }
320 return cycles;
321#undef FLD
322}
323
324static int
325model_m32r2_bc8 (SIM_CPU *current_cpu, void *sem_arg)
326{
327#define FLD(f) abuf->fields.sfmt_bl8.f
328 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
329 const IDESC * UNUSED idesc = abuf->idesc;
330 int cycles = 0;
331 {
332 int referenced = 0;
333 int UNUSED insn_referenced = abuf->written;
334 INT in_sr = -1;
335 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
336 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
337 }
338 return cycles;
339#undef FLD
340}
341
342static int
343model_m32r2_bc24 (SIM_CPU *current_cpu, void *sem_arg)
344{
345#define FLD(f) abuf->fields.sfmt_bl24.f
346 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
347 const IDESC * UNUSED idesc = abuf->idesc;
348 int cycles = 0;
349 {
350 int referenced = 0;
351 int UNUSED insn_referenced = abuf->written;
352 INT in_sr = -1;
353 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
354 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
355 }
356 return cycles;
357#undef FLD
358}
359
360static int
361model_m32r2_beq (SIM_CPU *current_cpu, void *sem_arg)
362{
363#define FLD(f) abuf->fields.sfmt_beq.f
364 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
365 const IDESC * UNUSED idesc = abuf->idesc;
366 int cycles = 0;
367 {
368 int referenced = 0;
369 int UNUSED insn_referenced = abuf->written;
370 INT in_sr = -1;
371 if (insn_referenced & (1 << 3)) referenced |= 1 << 1;
372 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
373 }
374 {
375 int referenced = 0;
376 int UNUSED insn_referenced = abuf->written;
377 INT in_src1 = -1;
378 INT in_src2 = -1;
379 in_src1 = FLD (in_src1);
380 in_src2 = FLD (in_src2);
381 referenced |= 1 << 0;
382 referenced |= 1 << 1;
383 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
384 }
385 return cycles;
386#undef FLD
387}
388
389static int
390model_m32r2_beqz (SIM_CPU *current_cpu, void *sem_arg)
391{
392#define FLD(f) abuf->fields.sfmt_beq.f
393 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
394 const IDESC * UNUSED idesc = abuf->idesc;
395 int cycles = 0;
396 {
397 int referenced = 0;
398 int UNUSED insn_referenced = abuf->written;
399 INT in_sr = -1;
400 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
401 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
402 }
403 {
404 int referenced = 0;
405 int UNUSED insn_referenced = abuf->written;
406 INT in_src1 = -1;
407 INT in_src2 = -1;
408 in_src2 = FLD (in_src2);
409 referenced |= 1 << 1;
410 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
411 }
412 return cycles;
413#undef FLD
414}
415
416static int
417model_m32r2_bgez (SIM_CPU *current_cpu, void *sem_arg)
418{
419#define FLD(f) abuf->fields.sfmt_beq.f
420 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
421 const IDESC * UNUSED idesc = abuf->idesc;
422 int cycles = 0;
423 {
424 int referenced = 0;
425 int UNUSED insn_referenced = abuf->written;
426 INT in_sr = -1;
427 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
428 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
429 }
430 {
431 int referenced = 0;
432 int UNUSED insn_referenced = abuf->written;
433 INT in_src1 = -1;
434 INT in_src2 = -1;
435 in_src2 = FLD (in_src2);
436 referenced |= 1 << 1;
437 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
438 }
439 return cycles;
440#undef FLD
441}
442
443static int
444model_m32r2_bgtz (SIM_CPU *current_cpu, void *sem_arg)
445{
446#define FLD(f) abuf->fields.sfmt_beq.f
447 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
448 const IDESC * UNUSED idesc = abuf->idesc;
449 int cycles = 0;
450 {
451 int referenced = 0;
452 int UNUSED insn_referenced = abuf->written;
453 INT in_sr = -1;
454 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
455 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
456 }
457 {
458 int referenced = 0;
459 int UNUSED insn_referenced = abuf->written;
460 INT in_src1 = -1;
461 INT in_src2 = -1;
462 in_src2 = FLD (in_src2);
463 referenced |= 1 << 1;
464 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
465 }
466 return cycles;
467#undef FLD
468}
469
470static int
471model_m32r2_blez (SIM_CPU *current_cpu, void *sem_arg)
472{
473#define FLD(f) abuf->fields.sfmt_beq.f
474 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
475 const IDESC * UNUSED idesc = abuf->idesc;
476 int cycles = 0;
477 {
478 int referenced = 0;
479 int UNUSED insn_referenced = abuf->written;
480 INT in_sr = -1;
481 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
482 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
483 }
484 {
485 int referenced = 0;
486 int UNUSED insn_referenced = abuf->written;
487 INT in_src1 = -1;
488 INT in_src2 = -1;
489 in_src2 = FLD (in_src2);
490 referenced |= 1 << 1;
491 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
492 }
493 return cycles;
494#undef FLD
495}
496
497static int
498model_m32r2_bltz (SIM_CPU *current_cpu, void *sem_arg)
499{
500#define FLD(f) abuf->fields.sfmt_beq.f
501 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
502 const IDESC * UNUSED idesc = abuf->idesc;
503 int cycles = 0;
504 {
505 int referenced = 0;
506 int UNUSED insn_referenced = abuf->written;
507 INT in_sr = -1;
508 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
509 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
510 }
511 {
512 int referenced = 0;
513 int UNUSED insn_referenced = abuf->written;
514 INT in_src1 = -1;
515 INT in_src2 = -1;
516 in_src2 = FLD (in_src2);
517 referenced |= 1 << 1;
518 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
519 }
520 return cycles;
521#undef FLD
522}
523
524static int
525model_m32r2_bnez (SIM_CPU *current_cpu, void *sem_arg)
526{
527#define FLD(f) abuf->fields.sfmt_beq.f
528 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
529 const IDESC * UNUSED idesc = abuf->idesc;
530 int cycles = 0;
531 {
532 int referenced = 0;
533 int UNUSED insn_referenced = abuf->written;
534 INT in_sr = -1;
535 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
536 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
537 }
538 {
539 int referenced = 0;
540 int UNUSED insn_referenced = abuf->written;
541 INT in_src1 = -1;
542 INT in_src2 = -1;
543 in_src2 = FLD (in_src2);
544 referenced |= 1 << 1;
545 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
546 }
547 return cycles;
548#undef FLD
549}
550
551static int
552model_m32r2_bl8 (SIM_CPU *current_cpu, void *sem_arg)
553{
554#define FLD(f) abuf->fields.sfmt_bl8.f
555 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
556 const IDESC * UNUSED idesc = abuf->idesc;
557 int cycles = 0;
558 {
559 int referenced = 0;
560 int UNUSED insn_referenced = abuf->written;
561 INT in_sr = -1;
562 referenced |= 1 << 1;
563 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
564 }
565 return cycles;
566#undef FLD
567}
568
569static int
570model_m32r2_bl24 (SIM_CPU *current_cpu, void *sem_arg)
571{
572#define FLD(f) abuf->fields.sfmt_bl24.f
573 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
574 const IDESC * UNUSED idesc = abuf->idesc;
575 int cycles = 0;
576 {
577 int referenced = 0;
578 int UNUSED insn_referenced = abuf->written;
579 INT in_sr = -1;
580 referenced |= 1 << 1;
581 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
582 }
583 return cycles;
584#undef FLD
585}
586
587static int
588model_m32r2_bcl8 (SIM_CPU *current_cpu, void *sem_arg)
589{
590#define FLD(f) abuf->fields.sfmt_bl8.f
591 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
592 const IDESC * UNUSED idesc = abuf->idesc;
593 int cycles = 0;
594 {
595 int referenced = 0;
596 int UNUSED insn_referenced = abuf->written;
597 INT in_sr = -1;
598 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
599 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
600 }
601 return cycles;
602#undef FLD
603}
604
605static int
606model_m32r2_bcl24 (SIM_CPU *current_cpu, void *sem_arg)
607{
608#define FLD(f) abuf->fields.sfmt_bl24.f
609 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
610 const IDESC * UNUSED idesc = abuf->idesc;
611 int cycles = 0;
612 {
613 int referenced = 0;
614 int UNUSED insn_referenced = abuf->written;
615 INT in_sr = -1;
616 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
617 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
618 }
619 return cycles;
620#undef FLD
621}
622
623static int
624model_m32r2_bnc8 (SIM_CPU *current_cpu, void *sem_arg)
625{
626#define FLD(f) abuf->fields.sfmt_bl8.f
627 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
628 const IDESC * UNUSED idesc = abuf->idesc;
629 int cycles = 0;
630 {
631 int referenced = 0;
632 int UNUSED insn_referenced = abuf->written;
633 INT in_sr = -1;
634 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
635 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
636 }
637 return cycles;
638#undef FLD
639}
640
641static int
642model_m32r2_bnc24 (SIM_CPU *current_cpu, void *sem_arg)
643{
644#define FLD(f) abuf->fields.sfmt_bl24.f
645 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
646 const IDESC * UNUSED idesc = abuf->idesc;
647 int cycles = 0;
648 {
649 int referenced = 0;
650 int UNUSED insn_referenced = abuf->written;
651 INT in_sr = -1;
652 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
653 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
654 }
655 return cycles;
656#undef FLD
657}
658
659static int
660model_m32r2_bne (SIM_CPU *current_cpu, void *sem_arg)
661{
662#define FLD(f) abuf->fields.sfmt_beq.f
663 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
664 const IDESC * UNUSED idesc = abuf->idesc;
665 int cycles = 0;
666 {
667 int referenced = 0;
668 int UNUSED insn_referenced = abuf->written;
669 INT in_sr = -1;
670 if (insn_referenced & (1 << 3)) referenced |= 1 << 1;
671 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
672 }
673 {
674 int referenced = 0;
675 int UNUSED insn_referenced = abuf->written;
676 INT in_src1 = -1;
677 INT in_src2 = -1;
678 in_src1 = FLD (in_src1);
679 in_src2 = FLD (in_src2);
680 referenced |= 1 << 0;
681 referenced |= 1 << 1;
682 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
683 }
684 return cycles;
685#undef FLD
686}
687
688static int
689model_m32r2_bra8 (SIM_CPU *current_cpu, void *sem_arg)
690{
691#define FLD(f) abuf->fields.sfmt_bl8.f
692 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
693 const IDESC * UNUSED idesc = abuf->idesc;
694 int cycles = 0;
695 {
696 int referenced = 0;
697 int UNUSED insn_referenced = abuf->written;
698 INT in_sr = -1;
699 referenced |= 1 << 1;
700 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
701 }
702 return cycles;
703#undef FLD
704}
705
706static int
707model_m32r2_bra24 (SIM_CPU *current_cpu, void *sem_arg)
708{
709#define FLD(f) abuf->fields.sfmt_bl24.f
710 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
711 const IDESC * UNUSED idesc = abuf->idesc;
712 int cycles = 0;
713 {
714 int referenced = 0;
715 int UNUSED insn_referenced = abuf->written;
716 INT in_sr = -1;
717 referenced |= 1 << 1;
718 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
719 }
720 return cycles;
721#undef FLD
722}
723
724static int
725model_m32r2_bncl8 (SIM_CPU *current_cpu, void *sem_arg)
726{
727#define FLD(f) abuf->fields.sfmt_bl8.f
728 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
729 const IDESC * UNUSED idesc = abuf->idesc;
730 int cycles = 0;
731 {
732 int referenced = 0;
733 int UNUSED insn_referenced = abuf->written;
734 INT in_sr = -1;
735 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
736 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
737 }
738 return cycles;
739#undef FLD
740}
741
742static int
743model_m32r2_bncl24 (SIM_CPU *current_cpu, void *sem_arg)
744{
745#define FLD(f) abuf->fields.sfmt_bl24.f
746 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
747 const IDESC * UNUSED idesc = abuf->idesc;
748 int cycles = 0;
749 {
750 int referenced = 0;
751 int UNUSED insn_referenced = abuf->written;
752 INT in_sr = -1;
753 if (insn_referenced & (1 << 4)) referenced |= 1 << 1;
754 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
755 }
756 return cycles;
757#undef FLD
758}
759
760static int
761model_m32r2_cmp (SIM_CPU *current_cpu, void *sem_arg)
762{
763#define FLD(f) abuf->fields.sfmt_st_plus.f
764 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
765 const IDESC * UNUSED idesc = abuf->idesc;
766 int cycles = 0;
767 {
768 int referenced = 0;
769 int UNUSED insn_referenced = abuf->written;
770 INT in_src1 = -1;
771 INT in_src2 = -1;
772 in_src1 = FLD (in_src1);
773 in_src2 = FLD (in_src2);
774 referenced |= 1 << 0;
775 referenced |= 1 << 1;
776 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
777 }
778 return cycles;
779#undef FLD
780}
781
782static int
783model_m32r2_cmpi (SIM_CPU *current_cpu, void *sem_arg)
784{
785#define FLD(f) abuf->fields.sfmt_st_d.f
786 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
787 const IDESC * UNUSED idesc = abuf->idesc;
788 int cycles = 0;
789 {
790 int referenced = 0;
791 int UNUSED insn_referenced = abuf->written;
792 INT in_src1 = -1;
793 INT in_src2 = -1;
794 in_src2 = FLD (in_src2);
795 referenced |= 1 << 1;
796 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
797 }
798 return cycles;
799#undef FLD
800}
801
802static int
803model_m32r2_cmpu (SIM_CPU *current_cpu, void *sem_arg)
804{
805#define FLD(f) abuf->fields.sfmt_st_plus.f
806 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
807 const IDESC * UNUSED idesc = abuf->idesc;
808 int cycles = 0;
809 {
810 int referenced = 0;
811 int UNUSED insn_referenced = abuf->written;
812 INT in_src1 = -1;
813 INT in_src2 = -1;
814 in_src1 = FLD (in_src1);
815 in_src2 = FLD (in_src2);
816 referenced |= 1 << 0;
817 referenced |= 1 << 1;
818 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
819 }
820 return cycles;
821#undef FLD
822}
823
824static int
825model_m32r2_cmpui (SIM_CPU *current_cpu, void *sem_arg)
826{
827#define FLD(f) abuf->fields.sfmt_st_d.f
828 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
829 const IDESC * UNUSED idesc = abuf->idesc;
830 int cycles = 0;
831 {
832 int referenced = 0;
833 int UNUSED insn_referenced = abuf->written;
834 INT in_src1 = -1;
835 INT in_src2 = -1;
836 in_src2 = FLD (in_src2);
837 referenced |= 1 << 1;
838 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
839 }
840 return cycles;
841#undef FLD
842}
843
844static int
845model_m32r2_cmpeq (SIM_CPU *current_cpu, void *sem_arg)
846{
847#define FLD(f) abuf->fields.sfmt_st_plus.f
848 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
849 const IDESC * UNUSED idesc = abuf->idesc;
850 int cycles = 0;
851 {
852 int referenced = 0;
853 int UNUSED insn_referenced = abuf->written;
854 INT in_src1 = -1;
855 INT in_src2 = -1;
856 in_src1 = FLD (in_src1);
857 in_src2 = FLD (in_src2);
858 referenced |= 1 << 0;
859 referenced |= 1 << 1;
860 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
861 }
862 return cycles;
863#undef FLD
864}
865
866static int
867model_m32r2_cmpz (SIM_CPU *current_cpu, void *sem_arg)
868{
869#define FLD(f) abuf->fields.sfmt_st_plus.f
870 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
871 const IDESC * UNUSED idesc = abuf->idesc;
872 int cycles = 0;
873 {
874 int referenced = 0;
875 int UNUSED insn_referenced = abuf->written;
876 INT in_src1 = -1;
877 INT in_src2 = -1;
878 in_src2 = FLD (in_src2);
879 referenced |= 1 << 1;
880 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
881 }
882 return cycles;
883#undef FLD
884}
885
886static int
887model_m32r2_div (SIM_CPU *current_cpu, void *sem_arg)
888{
889#define FLD(f) abuf->fields.sfmt_add.f
890 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
891 const IDESC * UNUSED idesc = abuf->idesc;
892 int cycles = 0;
893 {
894 int referenced = 0;
895 int UNUSED insn_referenced = abuf->written;
896 INT in_sr = -1;
897 INT in_dr = -1;
898 INT out_dr = -1;
899 in_sr = FLD (in_sr);
900 in_dr = FLD (in_dr);
901 out_dr = FLD (out_dr);
902 referenced |= 1 << 0;
903 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
904 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
905 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
906 }
907 return cycles;
908#undef FLD
909}
910
911static int
912model_m32r2_divu (SIM_CPU *current_cpu, void *sem_arg)
913{
914#define FLD(f) abuf->fields.sfmt_add.f
915 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
916 const IDESC * UNUSED idesc = abuf->idesc;
917 int cycles = 0;
918 {
919 int referenced = 0;
920 int UNUSED insn_referenced = abuf->written;
921 INT in_sr = -1;
922 INT in_dr = -1;
923 INT out_dr = -1;
924 in_sr = FLD (in_sr);
925 in_dr = FLD (in_dr);
926 out_dr = FLD (out_dr);
927 referenced |= 1 << 0;
928 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
929 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
930 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
931 }
932 return cycles;
933#undef FLD
934}
935
936static int
937model_m32r2_rem (SIM_CPU *current_cpu, void *sem_arg)
938{
939#define FLD(f) abuf->fields.sfmt_add.f
940 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
941 const IDESC * UNUSED idesc = abuf->idesc;
942 int cycles = 0;
943 {
944 int referenced = 0;
945 int UNUSED insn_referenced = abuf->written;
946 INT in_sr = -1;
947 INT in_dr = -1;
948 INT out_dr = -1;
949 in_sr = FLD (in_sr);
950 in_dr = FLD (in_dr);
951 out_dr = FLD (out_dr);
952 referenced |= 1 << 0;
953 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
954 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
955 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
956 }
957 return cycles;
958#undef FLD
959}
960
961static int
962model_m32r2_remu (SIM_CPU *current_cpu, void *sem_arg)
963{
964#define FLD(f) abuf->fields.sfmt_add.f
965 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
966 const IDESC * UNUSED idesc = abuf->idesc;
967 int cycles = 0;
968 {
969 int referenced = 0;
970 int UNUSED insn_referenced = abuf->written;
971 INT in_sr = -1;
972 INT in_dr = -1;
973 INT out_dr = -1;
974 in_sr = FLD (in_sr);
975 in_dr = FLD (in_dr);
976 out_dr = FLD (out_dr);
977 referenced |= 1 << 0;
978 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
979 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
980 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
981 }
982 return cycles;
983#undef FLD
984}
985
986static int
987model_m32r2_remh (SIM_CPU *current_cpu, void *sem_arg)
988{
989#define FLD(f) abuf->fields.sfmt_add.f
990 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
991 const IDESC * UNUSED idesc = abuf->idesc;
992 int cycles = 0;
993 {
994 int referenced = 0;
995 int UNUSED insn_referenced = abuf->written;
996 INT in_sr = -1;
997 INT in_dr = -1;
998 INT out_dr = -1;
999 in_sr = FLD (in_sr);
1000 in_dr = FLD (in_dr);
1001 out_dr = FLD (out_dr);
1002 referenced |= 1 << 0;
1003 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
1004 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1005 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1006 }
1007 return cycles;
1008#undef FLD
1009}
1010
1011static int
1012model_m32r2_remuh (SIM_CPU *current_cpu, void *sem_arg)
1013{
1014#define FLD(f) abuf->fields.sfmt_add.f
1015 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1016 const IDESC * UNUSED idesc = abuf->idesc;
1017 int cycles = 0;
1018 {
1019 int referenced = 0;
1020 int UNUSED insn_referenced = abuf->written;
1021 INT in_sr = -1;
1022 INT in_dr = -1;
1023 INT out_dr = -1;
1024 in_sr = FLD (in_sr);
1025 in_dr = FLD (in_dr);
1026 out_dr = FLD (out_dr);
1027 referenced |= 1 << 0;
1028 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
1029 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1030 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1031 }
1032 return cycles;
1033#undef FLD
1034}
1035
1036static int
1037model_m32r2_remb (SIM_CPU *current_cpu, void *sem_arg)
1038{
1039#define FLD(f) abuf->fields.sfmt_add.f
1040 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1041 const IDESC * UNUSED idesc = abuf->idesc;
1042 int cycles = 0;
1043 {
1044 int referenced = 0;
1045 int UNUSED insn_referenced = abuf->written;
1046 INT in_sr = -1;
1047 INT in_dr = -1;
1048 INT out_dr = -1;
1049 in_sr = FLD (in_sr);
1050 in_dr = FLD (in_dr);
1051 out_dr = FLD (out_dr);
1052 referenced |= 1 << 0;
1053 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
1054 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1055 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1056 }
1057 return cycles;
1058#undef FLD
1059}
1060
1061static int
1062model_m32r2_remub (SIM_CPU *current_cpu, void *sem_arg)
1063{
1064#define FLD(f) abuf->fields.sfmt_add.f
1065 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1066 const IDESC * UNUSED idesc = abuf->idesc;
1067 int cycles = 0;
1068 {
1069 int referenced = 0;
1070 int UNUSED insn_referenced = abuf->written;
1071 INT in_sr = -1;
1072 INT in_dr = -1;
1073 INT out_dr = -1;
1074 in_sr = FLD (in_sr);
1075 in_dr = FLD (in_dr);
1076 out_dr = FLD (out_dr);
1077 referenced |= 1 << 0;
1078 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
1079 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1080 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1081 }
1082 return cycles;
1083#undef FLD
1084}
1085
1086static int
1087model_m32r2_divuh (SIM_CPU *current_cpu, void *sem_arg)
1088{
1089#define FLD(f) abuf->fields.sfmt_add.f
1090 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1091 const IDESC * UNUSED idesc = abuf->idesc;
1092 int cycles = 0;
1093 {
1094 int referenced = 0;
1095 int UNUSED insn_referenced = abuf->written;
1096 INT in_sr = -1;
1097 INT in_dr = -1;
1098 INT out_dr = -1;
1099 in_sr = FLD (in_sr);
1100 in_dr = FLD (in_dr);
1101 out_dr = FLD (out_dr);
1102 referenced |= 1 << 0;
1103 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
1104 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1105 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1106 }
1107 return cycles;
1108#undef FLD
1109}
1110
1111static int
1112model_m32r2_divb (SIM_CPU *current_cpu, void *sem_arg)
1113{
1114#define FLD(f) abuf->fields.sfmt_add.f
1115 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1116 const IDESC * UNUSED idesc = abuf->idesc;
1117 int cycles = 0;
1118 {
1119 int referenced = 0;
1120 int UNUSED insn_referenced = abuf->written;
1121 INT in_sr = -1;
1122 INT in_dr = -1;
1123 INT out_dr = -1;
1124 in_sr = FLD (in_sr);
1125 in_dr = FLD (in_dr);
1126 out_dr = FLD (out_dr);
1127 referenced |= 1 << 0;
1128 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
1129 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1130 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1131 }
1132 return cycles;
1133#undef FLD
1134}
1135
1136static int
1137model_m32r2_divub (SIM_CPU *current_cpu, void *sem_arg)
1138{
1139#define FLD(f) abuf->fields.sfmt_add.f
1140 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1141 const IDESC * UNUSED idesc = abuf->idesc;
1142 int cycles = 0;
1143 {
1144 int referenced = 0;
1145 int UNUSED insn_referenced = abuf->written;
1146 INT in_sr = -1;
1147 INT in_dr = -1;
1148 INT out_dr = -1;
1149 in_sr = FLD (in_sr);
1150 in_dr = FLD (in_dr);
1151 out_dr = FLD (out_dr);
1152 referenced |= 1 << 0;
1153 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
1154 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1155 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1156 }
1157 return cycles;
1158#undef FLD
1159}
1160
1161static int
1162model_m32r2_divh (SIM_CPU *current_cpu, void *sem_arg)
1163{
1164#define FLD(f) abuf->fields.sfmt_add.f
1165 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1166 const IDESC * UNUSED idesc = abuf->idesc;
1167 int cycles = 0;
1168 {
1169 int referenced = 0;
1170 int UNUSED insn_referenced = abuf->written;
1171 INT in_sr = -1;
1172 INT in_dr = -1;
1173 INT out_dr = -1;
1174 in_sr = FLD (in_sr);
1175 in_dr = FLD (in_dr);
1176 out_dr = FLD (out_dr);
1177 referenced |= 1 << 0;
1178 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
1179 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
1180 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1181 }
1182 return cycles;
1183#undef FLD
1184}
1185
1186static int
1187model_m32r2_jc (SIM_CPU *current_cpu, void *sem_arg)
1188{
1189#define FLD(f) abuf->fields.sfmt_jl.f
1190 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1191 const IDESC * UNUSED idesc = abuf->idesc;
1192 int cycles = 0;
1193 {
1194 int referenced = 0;
1195 int UNUSED insn_referenced = abuf->written;
1196 INT in_sr = -1;
1197 in_sr = FLD (in_sr);
1198 if (insn_referenced & (1 << 1)) referenced |= 1 << 0;
1199 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
1200 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
1201 }
1202 return cycles;
1203#undef FLD
1204}
1205
1206static int
1207model_m32r2_jnc (SIM_CPU *current_cpu, void *sem_arg)
1208{
1209#define FLD(f) abuf->fields.sfmt_jl.f
1210 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1211 const IDESC * UNUSED idesc = abuf->idesc;
1212 int cycles = 0;
1213 {
1214 int referenced = 0;
1215 int UNUSED insn_referenced = abuf->written;
1216 INT in_sr = -1;
1217 in_sr = FLD (in_sr);
1218 if (insn_referenced & (1 << 1)) referenced |= 1 << 0;
1219 if (insn_referenced & (1 << 2)) referenced |= 1 << 1;
1220 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
1221 }
1222 return cycles;
1223#undef FLD
1224}
1225
1226static int
1227model_m32r2_jl (SIM_CPU *current_cpu, void *sem_arg)
1228{
1229#define FLD(f) abuf->fields.sfmt_jl.f
1230 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1231 const IDESC * UNUSED idesc = abuf->idesc;
1232 int cycles = 0;
1233 {
1234 int referenced = 0;
1235 int UNUSED insn_referenced = abuf->written;
1236 INT in_sr = -1;
1237 in_sr = FLD (in_sr);
1238 referenced |= 1 << 0;
1239 referenced |= 1 << 1;
1240 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
1241 }
1242 return cycles;
1243#undef FLD
1244}
1245
1246static int
1247model_m32r2_jmp (SIM_CPU *current_cpu, void *sem_arg)
1248{
1249#define FLD(f) abuf->fields.sfmt_jl.f
1250 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1251 const IDESC * UNUSED idesc = abuf->idesc;
1252 int cycles = 0;
1253 {
1254 int referenced = 0;
1255 int UNUSED insn_referenced = abuf->written;
1256 INT in_sr = -1;
1257 in_sr = FLD (in_sr);
1258 referenced |= 1 << 0;
1259 referenced |= 1 << 1;
1260 cycles += m32r2f_model_m32r2_u_cti (current_cpu, idesc, 0, referenced, in_sr);
1261 }
1262 return cycles;
1263#undef FLD
1264}
1265
1266static int
1267model_m32r2_ld (SIM_CPU *current_cpu, void *sem_arg)
1268{
1269#define FLD(f) abuf->fields.sfmt_ld_plus.f
1270 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1271 const IDESC * UNUSED idesc = abuf->idesc;
1272 int cycles = 0;
1273 {
1274 int referenced = 0;
1275 int UNUSED insn_referenced = abuf->written;
1276 INT in_sr = 0;
1277 INT out_dr = 0;
1278 in_sr = FLD (in_sr);
1279 out_dr = FLD (out_dr);
1280 referenced |= 1 << 0;
1281 referenced |= 1 << 1;
1282 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1283 }
1284 return cycles;
1285#undef FLD
1286}
1287
1288static int
1289model_m32r2_ld_d (SIM_CPU *current_cpu, void *sem_arg)
1290{
1291#define FLD(f) abuf->fields.sfmt_add3.f
1292 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1293 const IDESC * UNUSED idesc = abuf->idesc;
1294 int cycles = 0;
1295 {
1296 int referenced = 0;
1297 int UNUSED insn_referenced = abuf->written;
1298 INT in_sr = 0;
1299 INT out_dr = 0;
1300 in_sr = FLD (in_sr);
1301 out_dr = FLD (out_dr);
1302 referenced |= 1 << 0;
1303 referenced |= 1 << 1;
1304 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1305 }
1306 return cycles;
1307#undef FLD
1308}
1309
1310static int
1311model_m32r2_ldb (SIM_CPU *current_cpu, void *sem_arg)
1312{
1313#define FLD(f) abuf->fields.sfmt_ld_plus.f
1314 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1315 const IDESC * UNUSED idesc = abuf->idesc;
1316 int cycles = 0;
1317 {
1318 int referenced = 0;
1319 int UNUSED insn_referenced = abuf->written;
1320 INT in_sr = 0;
1321 INT out_dr = 0;
1322 in_sr = FLD (in_sr);
1323 out_dr = FLD (out_dr);
1324 referenced |= 1 << 0;
1325 referenced |= 1 << 1;
1326 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1327 }
1328 return cycles;
1329#undef FLD
1330}
1331
1332static int
1333model_m32r2_ldb_d (SIM_CPU *current_cpu, void *sem_arg)
1334{
1335#define FLD(f) abuf->fields.sfmt_add3.f
1336 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1337 const IDESC * UNUSED idesc = abuf->idesc;
1338 int cycles = 0;
1339 {
1340 int referenced = 0;
1341 int UNUSED insn_referenced = abuf->written;
1342 INT in_sr = 0;
1343 INT out_dr = 0;
1344 in_sr = FLD (in_sr);
1345 out_dr = FLD (out_dr);
1346 referenced |= 1 << 0;
1347 referenced |= 1 << 1;
1348 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1349 }
1350 return cycles;
1351#undef FLD
1352}
1353
1354static int
1355model_m32r2_ldh (SIM_CPU *current_cpu, void *sem_arg)
1356{
1357#define FLD(f) abuf->fields.sfmt_ld_plus.f
1358 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1359 const IDESC * UNUSED idesc = abuf->idesc;
1360 int cycles = 0;
1361 {
1362 int referenced = 0;
1363 int UNUSED insn_referenced = abuf->written;
1364 INT in_sr = 0;
1365 INT out_dr = 0;
1366 in_sr = FLD (in_sr);
1367 out_dr = FLD (out_dr);
1368 referenced |= 1 << 0;
1369 referenced |= 1 << 1;
1370 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1371 }
1372 return cycles;
1373#undef FLD
1374}
1375
1376static int
1377model_m32r2_ldh_d (SIM_CPU *current_cpu, void *sem_arg)
1378{
1379#define FLD(f) abuf->fields.sfmt_add3.f
1380 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1381 const IDESC * UNUSED idesc = abuf->idesc;
1382 int cycles = 0;
1383 {
1384 int referenced = 0;
1385 int UNUSED insn_referenced = abuf->written;
1386 INT in_sr = 0;
1387 INT out_dr = 0;
1388 in_sr = FLD (in_sr);
1389 out_dr = FLD (out_dr);
1390 referenced |= 1 << 0;
1391 referenced |= 1 << 1;
1392 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1393 }
1394 return cycles;
1395#undef FLD
1396}
1397
1398static int
1399model_m32r2_ldub (SIM_CPU *current_cpu, void *sem_arg)
1400{
1401#define FLD(f) abuf->fields.sfmt_ld_plus.f
1402 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1403 const IDESC * UNUSED idesc = abuf->idesc;
1404 int cycles = 0;
1405 {
1406 int referenced = 0;
1407 int UNUSED insn_referenced = abuf->written;
1408 INT in_sr = 0;
1409 INT out_dr = 0;
1410 in_sr = FLD (in_sr);
1411 out_dr = FLD (out_dr);
1412 referenced |= 1 << 0;
1413 referenced |= 1 << 1;
1414 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1415 }
1416 return cycles;
1417#undef FLD
1418}
1419
1420static int
1421model_m32r2_ldub_d (SIM_CPU *current_cpu, void *sem_arg)
1422{
1423#define FLD(f) abuf->fields.sfmt_add3.f
1424 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1425 const IDESC * UNUSED idesc = abuf->idesc;
1426 int cycles = 0;
1427 {
1428 int referenced = 0;
1429 int UNUSED insn_referenced = abuf->written;
1430 INT in_sr = 0;
1431 INT out_dr = 0;
1432 in_sr = FLD (in_sr);
1433 out_dr = FLD (out_dr);
1434 referenced |= 1 << 0;
1435 referenced |= 1 << 1;
1436 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1437 }
1438 return cycles;
1439#undef FLD
1440}
1441
1442static int
1443model_m32r2_lduh (SIM_CPU *current_cpu, void *sem_arg)
1444{
1445#define FLD(f) abuf->fields.sfmt_ld_plus.f
1446 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1447 const IDESC * UNUSED idesc = abuf->idesc;
1448 int cycles = 0;
1449 {
1450 int referenced = 0;
1451 int UNUSED insn_referenced = abuf->written;
1452 INT in_sr = 0;
1453 INT out_dr = 0;
1454 in_sr = FLD (in_sr);
1455 out_dr = FLD (out_dr);
1456 referenced |= 1 << 0;
1457 referenced |= 1 << 1;
1458 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1459 }
1460 return cycles;
1461#undef FLD
1462}
1463
1464static int
1465model_m32r2_lduh_d (SIM_CPU *current_cpu, void *sem_arg)
1466{
1467#define FLD(f) abuf->fields.sfmt_add3.f
1468 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1469 const IDESC * UNUSED idesc = abuf->idesc;
1470 int cycles = 0;
1471 {
1472 int referenced = 0;
1473 int UNUSED insn_referenced = abuf->written;
1474 INT in_sr = 0;
1475 INT out_dr = 0;
1476 in_sr = FLD (in_sr);
1477 out_dr = FLD (out_dr);
1478 referenced |= 1 << 0;
1479 referenced |= 1 << 1;
1480 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1481 }
1482 return cycles;
1483#undef FLD
1484}
1485
1486static int
1487model_m32r2_ld_plus (SIM_CPU *current_cpu, void *sem_arg)
1488{
1489#define FLD(f) abuf->fields.sfmt_ld_plus.f
1490 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1491 const IDESC * UNUSED idesc = abuf->idesc;
1492 int cycles = 0;
1493 {
1494 int referenced = 0;
1495 int UNUSED insn_referenced = abuf->written;
1496 INT in_sr = 0;
1497 INT out_dr = 0;
1498 in_sr = FLD (in_sr);
1499 out_dr = FLD (out_dr);
1500 referenced |= 1 << 0;
1501 referenced |= 1 << 1;
1502 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1503 }
1504 {
1505 int referenced = 0;
1506 int UNUSED insn_referenced = abuf->written;
1507 INT in_sr = -1;
1508 INT in_dr = -1;
1509 INT out_dr = -1;
1510 in_dr = FLD (in_sr);
1511 out_dr = FLD (out_sr);
1512 referenced |= 1 << 0;
1513 referenced |= 1 << 2;
1514 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr);
1515 }
1516 return cycles;
1517#undef FLD
1518}
1519
1520static int
1521model_m32r2_ld24 (SIM_CPU *current_cpu, void *sem_arg)
1522{
1523#define FLD(f) abuf->fields.sfmt_ld24.f
1524 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1525 const IDESC * UNUSED idesc = abuf->idesc;
1526 int cycles = 0;
1527 {
1528 int referenced = 0;
1529 int UNUSED insn_referenced = abuf->written;
1530 INT in_sr = -1;
1531 INT in_dr = -1;
1532 INT out_dr = -1;
1533 out_dr = FLD (out_dr);
1534 referenced |= 1 << 2;
1535 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1536 }
1537 return cycles;
1538#undef FLD
1539}
1540
1541static int
1542model_m32r2_ldi8 (SIM_CPU *current_cpu, void *sem_arg)
1543{
1544#define FLD(f) abuf->fields.sfmt_addi.f
1545 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1546 const IDESC * UNUSED idesc = abuf->idesc;
1547 int cycles = 0;
1548 {
1549 int referenced = 0;
1550 int UNUSED insn_referenced = abuf->written;
1551 INT in_sr = -1;
1552 INT in_dr = -1;
1553 INT out_dr = -1;
1554 out_dr = FLD (out_dr);
1555 referenced |= 1 << 2;
1556 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1557 }
1558 return cycles;
1559#undef FLD
1560}
1561
1562static int
1563model_m32r2_ldi16 (SIM_CPU *current_cpu, void *sem_arg)
1564{
1565#define FLD(f) abuf->fields.sfmt_add3.f
1566 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1567 const IDESC * UNUSED idesc = abuf->idesc;
1568 int cycles = 0;
1569 {
1570 int referenced = 0;
1571 int UNUSED insn_referenced = abuf->written;
1572 INT in_sr = -1;
1573 INT in_dr = -1;
1574 INT out_dr = -1;
1575 out_dr = FLD (out_dr);
1576 referenced |= 1 << 2;
1577 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1578 }
1579 return cycles;
1580#undef FLD
1581}
1582
1583static int
1584model_m32r2_lock (SIM_CPU *current_cpu, void *sem_arg)
1585{
1586#define FLD(f) abuf->fields.sfmt_ld_plus.f
1587 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1588 const IDESC * UNUSED idesc = abuf->idesc;
1589 int cycles = 0;
1590 {
1591 int referenced = 0;
1592 int UNUSED insn_referenced = abuf->written;
1593 INT in_sr = 0;
1594 INT out_dr = 0;
1595 in_sr = FLD (in_sr);
1596 out_dr = FLD (out_dr);
1597 referenced |= 1 << 0;
1598 referenced |= 1 << 1;
1599 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1600 }
1601 return cycles;
1602#undef FLD
1603}
1604
1605static int
1606model_m32r2_machi_a (SIM_CPU *current_cpu, void *sem_arg)
1607{
1608#define FLD(f) abuf->fields.sfmt_machi_a.f
1609 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1610 const IDESC * UNUSED idesc = abuf->idesc;
1611 int cycles = 0;
1612 {
1613 int referenced = 0;
1614 int UNUSED insn_referenced = abuf->written;
1615 INT in_src1 = -1;
1616 INT in_src2 = -1;
1617 in_src1 = FLD (in_src1);
1618 in_src2 = FLD (in_src2);
1619 referenced |= 1 << 0;
1620 referenced |= 1 << 1;
1621 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1622 }
1623 return cycles;
1624#undef FLD
1625}
1626
1627static int
1628model_m32r2_maclo_a (SIM_CPU *current_cpu, void *sem_arg)
1629{
1630#define FLD(f) abuf->fields.sfmt_machi_a.f
1631 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1632 const IDESC * UNUSED idesc = abuf->idesc;
1633 int cycles = 0;
1634 {
1635 int referenced = 0;
1636 int UNUSED insn_referenced = abuf->written;
1637 INT in_src1 = -1;
1638 INT in_src2 = -1;
1639 in_src1 = FLD (in_src1);
1640 in_src2 = FLD (in_src2);
1641 referenced |= 1 << 0;
1642 referenced |= 1 << 1;
1643 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1644 }
1645 return cycles;
1646#undef FLD
1647}
1648
1649static int
1650model_m32r2_macwhi_a (SIM_CPU *current_cpu, void *sem_arg)
1651{
1652#define FLD(f) abuf->fields.sfmt_machi_a.f
1653 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1654 const IDESC * UNUSED idesc = abuf->idesc;
1655 int cycles = 0;
1656 {
1657 int referenced = 0;
1658 int UNUSED insn_referenced = abuf->written;
1659 INT in_src1 = -1;
1660 INT in_src2 = -1;
1661 in_src1 = FLD (in_src1);
1662 in_src2 = FLD (in_src2);
1663 referenced |= 1 << 0;
1664 referenced |= 1 << 1;
1665 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1666 }
1667 return cycles;
1668#undef FLD
1669}
1670
1671static int
1672model_m32r2_macwlo_a (SIM_CPU *current_cpu, void *sem_arg)
1673{
1674#define FLD(f) abuf->fields.sfmt_machi_a.f
1675 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1676 const IDESC * UNUSED idesc = abuf->idesc;
1677 int cycles = 0;
1678 {
1679 int referenced = 0;
1680 int UNUSED insn_referenced = abuf->written;
1681 INT in_src1 = -1;
1682 INT in_src2 = -1;
1683 in_src1 = FLD (in_src1);
1684 in_src2 = FLD (in_src2);
1685 referenced |= 1 << 0;
1686 referenced |= 1 << 1;
1687 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1688 }
1689 return cycles;
1690#undef FLD
1691}
1692
1693static int
1694model_m32r2_mul (SIM_CPU *current_cpu, void *sem_arg)
1695{
1696#define FLD(f) abuf->fields.sfmt_add.f
1697 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1698 const IDESC * UNUSED idesc = abuf->idesc;
1699 int cycles = 0;
1700 {
1701 int referenced = 0;
1702 int UNUSED insn_referenced = abuf->written;
1703 INT in_sr = -1;
1704 INT in_dr = -1;
1705 INT out_dr = -1;
1706 in_sr = FLD (in_sr);
1707 in_dr = FLD (in_dr);
1708 out_dr = FLD (out_dr);
1709 referenced |= 1 << 0;
1710 referenced |= 1 << 1;
1711 referenced |= 1 << 2;
1712 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1713 }
1714 return cycles;
1715#undef FLD
1716}
1717
1718static int
1719model_m32r2_mulhi_a (SIM_CPU *current_cpu, void *sem_arg)
1720{
1721#define FLD(f) abuf->fields.sfmt_machi_a.f
1722 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1723 const IDESC * UNUSED idesc = abuf->idesc;
1724 int cycles = 0;
1725 {
1726 int referenced = 0;
1727 int UNUSED insn_referenced = abuf->written;
1728 INT in_src1 = -1;
1729 INT in_src2 = -1;
1730 in_src1 = FLD (in_src1);
1731 in_src2 = FLD (in_src2);
1732 referenced |= 1 << 0;
1733 referenced |= 1 << 1;
1734 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1735 }
1736 return cycles;
1737#undef FLD
1738}
1739
1740static int
1741model_m32r2_mullo_a (SIM_CPU *current_cpu, void *sem_arg)
1742{
1743#define FLD(f) abuf->fields.sfmt_machi_a.f
1744 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1745 const IDESC * UNUSED idesc = abuf->idesc;
1746 int cycles = 0;
1747 {
1748 int referenced = 0;
1749 int UNUSED insn_referenced = abuf->written;
1750 INT in_src1 = -1;
1751 INT in_src2 = -1;
1752 in_src1 = FLD (in_src1);
1753 in_src2 = FLD (in_src2);
1754 referenced |= 1 << 0;
1755 referenced |= 1 << 1;
1756 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1757 }
1758 return cycles;
1759#undef FLD
1760}
1761
1762static int
1763model_m32r2_mulwhi_a (SIM_CPU *current_cpu, void *sem_arg)
1764{
1765#define FLD(f) abuf->fields.sfmt_machi_a.f
1766 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1767 const IDESC * UNUSED idesc = abuf->idesc;
1768 int cycles = 0;
1769 {
1770 int referenced = 0;
1771 int UNUSED insn_referenced = abuf->written;
1772 INT in_src1 = -1;
1773 INT in_src2 = -1;
1774 in_src1 = FLD (in_src1);
1775 in_src2 = FLD (in_src2);
1776 referenced |= 1 << 0;
1777 referenced |= 1 << 1;
1778 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1779 }
1780 return cycles;
1781#undef FLD
1782}
1783
1784static int
1785model_m32r2_mulwlo_a (SIM_CPU *current_cpu, void *sem_arg)
1786{
1787#define FLD(f) abuf->fields.sfmt_machi_a.f
1788 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1789 const IDESC * UNUSED idesc = abuf->idesc;
1790 int cycles = 0;
1791 {
1792 int referenced = 0;
1793 int UNUSED insn_referenced = abuf->written;
1794 INT in_src1 = -1;
1795 INT in_src2 = -1;
1796 in_src1 = FLD (in_src1);
1797 in_src2 = FLD (in_src2);
1798 referenced |= 1 << 0;
1799 referenced |= 1 << 1;
1800 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1801 }
1802 return cycles;
1803#undef FLD
1804}
1805
1806static int
1807model_m32r2_mv (SIM_CPU *current_cpu, void *sem_arg)
1808{
1809#define FLD(f) abuf->fields.sfmt_ld_plus.f
1810 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1811 const IDESC * UNUSED idesc = abuf->idesc;
1812 int cycles = 0;
1813 {
1814 int referenced = 0;
1815 int UNUSED insn_referenced = abuf->written;
1816 INT in_sr = -1;
1817 INT in_dr = -1;
1818 INT out_dr = -1;
1819 in_sr = FLD (in_sr);
1820 out_dr = FLD (out_dr);
1821 referenced |= 1 << 0;
1822 referenced |= 1 << 2;
1823 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1824 }
1825 return cycles;
1826#undef FLD
1827}
1828
1829static int
1830model_m32r2_mvfachi_a (SIM_CPU *current_cpu, void *sem_arg)
1831{
1832#define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1833 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1834 const IDESC * UNUSED idesc = abuf->idesc;
1835 int cycles = 0;
1836 {
1837 int referenced = 0;
1838 int UNUSED insn_referenced = abuf->written;
1839 INT in_sr = -1;
1840 INT in_dr = -1;
1841 INT out_dr = -1;
1842 out_dr = FLD (out_dr);
1843 referenced |= 1 << 2;
1844 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1845 }
1846 return cycles;
1847#undef FLD
1848}
1849
1850static int
1851model_m32r2_mvfaclo_a (SIM_CPU *current_cpu, void *sem_arg)
1852{
1853#define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1854 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1855 const IDESC * UNUSED idesc = abuf->idesc;
1856 int cycles = 0;
1857 {
1858 int referenced = 0;
1859 int UNUSED insn_referenced = abuf->written;
1860 INT in_sr = -1;
1861 INT in_dr = -1;
1862 INT out_dr = -1;
1863 out_dr = FLD (out_dr);
1864 referenced |= 1 << 2;
1865 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1866 }
1867 return cycles;
1868#undef FLD
1869}
1870
1871static int
1872model_m32r2_mvfacmi_a (SIM_CPU *current_cpu, void *sem_arg)
1873{
1874#define FLD(f) abuf->fields.sfmt_mvfachi_a.f
1875 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1876 const IDESC * UNUSED idesc = abuf->idesc;
1877 int cycles = 0;
1878 {
1879 int referenced = 0;
1880 int UNUSED insn_referenced = abuf->written;
1881 INT in_sr = -1;
1882 INT in_dr = -1;
1883 INT out_dr = -1;
1884 out_dr = FLD (out_dr);
1885 referenced |= 1 << 2;
1886 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1887 }
1888 return cycles;
1889#undef FLD
1890}
1891
1892static int
1893model_m32r2_mvfc (SIM_CPU *current_cpu, void *sem_arg)
1894{
1895#define FLD(f) abuf->fields.sfmt_ld_plus.f
1896 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1897 const IDESC * UNUSED idesc = abuf->idesc;
1898 int cycles = 0;
1899 {
1900 int referenced = 0;
1901 int UNUSED insn_referenced = abuf->written;
1902 INT in_sr = -1;
1903 INT in_dr = -1;
1904 INT out_dr = -1;
1905 out_dr = FLD (out_dr);
1906 referenced |= 1 << 2;
1907 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1908 }
1909 return cycles;
1910#undef FLD
1911}
1912
1913static int
1914model_m32r2_mvtachi_a (SIM_CPU *current_cpu, void *sem_arg)
1915{
1916#define FLD(f) abuf->fields.sfmt_mvtachi_a.f
1917 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1918 const IDESC * UNUSED idesc = abuf->idesc;
1919 int cycles = 0;
1920 {
1921 int referenced = 0;
1922 int UNUSED insn_referenced = abuf->written;
1923 INT in_sr = -1;
1924 INT in_dr = -1;
1925 INT out_dr = -1;
1926 in_sr = FLD (in_src1);
1927 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1928 }
1929 return cycles;
1930#undef FLD
1931}
1932
1933static int
1934model_m32r2_mvtaclo_a (SIM_CPU *current_cpu, void *sem_arg)
1935{
1936#define FLD(f) abuf->fields.sfmt_mvtachi_a.f
1937 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1938 const IDESC * UNUSED idesc = abuf->idesc;
1939 int cycles = 0;
1940 {
1941 int referenced = 0;
1942 int UNUSED insn_referenced = abuf->written;
1943 INT in_sr = -1;
1944 INT in_dr = -1;
1945 INT out_dr = -1;
1946 in_sr = FLD (in_src1);
1947 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1948 }
1949 return cycles;
1950#undef FLD
1951}
1952
1953static int
1954model_m32r2_mvtc (SIM_CPU *current_cpu, void *sem_arg)
1955{
1956#define FLD(f) abuf->fields.sfmt_ld_plus.f
1957 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1958 const IDESC * UNUSED idesc = abuf->idesc;
1959 int cycles = 0;
1960 {
1961 int referenced = 0;
1962 int UNUSED insn_referenced = abuf->written;
1963 INT in_sr = -1;
1964 INT in_dr = -1;
1965 INT out_dr = -1;
1966 in_sr = FLD (in_sr);
1967 referenced |= 1 << 0;
1968 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1969 }
1970 return cycles;
1971#undef FLD
1972}
1973
1974static int
1975model_m32r2_neg (SIM_CPU *current_cpu, void *sem_arg)
1976{
1977#define FLD(f) abuf->fields.sfmt_ld_plus.f
1978 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1979 const IDESC * UNUSED idesc = abuf->idesc;
1980 int cycles = 0;
1981 {
1982 int referenced = 0;
1983 int UNUSED insn_referenced = abuf->written;
1984 INT in_sr = -1;
1985 INT in_dr = -1;
1986 INT out_dr = -1;
1987 in_sr = FLD (in_sr);
1988 out_dr = FLD (out_dr);
1989 referenced |= 1 << 0;
1990 referenced |= 1 << 2;
1991 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1992 }
1993 return cycles;
1994#undef FLD
1995}
1996
1997static int
1998model_m32r2_nop (SIM_CPU *current_cpu, void *sem_arg)
1999{
2310652a 2000#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2001 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2002 const IDESC * UNUSED idesc = abuf->idesc;
2003 int cycles = 0;
2004 {
2005 int referenced = 0;
2006 int UNUSED insn_referenced = abuf->written;
2007 INT in_sr = -1;
2008 INT in_dr = -1;
2009 INT out_dr = -1;
2010 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2011 }
2012 return cycles;
2013#undef FLD
2014}
2015
2016static int
2017model_m32r2_not (SIM_CPU *current_cpu, void *sem_arg)
2018{
2019#define FLD(f) abuf->fields.sfmt_ld_plus.f
2020 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2021 const IDESC * UNUSED idesc = abuf->idesc;
2022 int cycles = 0;
2023 {
2024 int referenced = 0;
2025 int UNUSED insn_referenced = abuf->written;
2026 INT in_sr = -1;
2027 INT in_dr = -1;
2028 INT out_dr = -1;
2029 in_sr = FLD (in_sr);
2030 out_dr = FLD (out_dr);
2031 referenced |= 1 << 0;
2032 referenced |= 1 << 2;
2033 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2034 }
2035 return cycles;
2036#undef FLD
2037}
2038
2039static int
2040model_m32r2_rac_dsi (SIM_CPU *current_cpu, void *sem_arg)
2041{
2042#define FLD(f) abuf->fields.sfmt_rac_dsi.f
2043 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2044 const IDESC * UNUSED idesc = abuf->idesc;
2045 int cycles = 0;
2046 {
2047 int referenced = 0;
2048 int UNUSED insn_referenced = abuf->written;
2049 INT in_src1 = -1;
2050 INT in_src2 = -1;
2051 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2052 }
2053 return cycles;
2054#undef FLD
2055}
2056
2057static int
2058model_m32r2_rach_dsi (SIM_CPU *current_cpu, void *sem_arg)
2059{
2060#define FLD(f) abuf->fields.sfmt_rac_dsi.f
2061 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2062 const IDESC * UNUSED idesc = abuf->idesc;
2063 int cycles = 0;
2064 {
2065 int referenced = 0;
2066 int UNUSED insn_referenced = abuf->written;
2067 INT in_src1 = -1;
2068 INT in_src2 = -1;
2069 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2070 }
2071 return cycles;
2072#undef FLD
2073}
2074
2075static int
2076model_m32r2_rte (SIM_CPU *current_cpu, void *sem_arg)
2077{
2310652a 2078#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2079 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2080 const IDESC * UNUSED idesc = abuf->idesc;
2081 int cycles = 0;
2082 {
2083 int referenced = 0;
2084 int UNUSED insn_referenced = abuf->written;
2085 INT in_sr = -1;
2086 INT in_dr = -1;
2087 INT out_dr = -1;
2088 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2089 }
2090 return cycles;
2091#undef FLD
2092}
2093
2094static int
2095model_m32r2_seth (SIM_CPU *current_cpu, void *sem_arg)
2096{
2097#define FLD(f) abuf->fields.sfmt_seth.f
2098 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2099 const IDESC * UNUSED idesc = abuf->idesc;
2100 int cycles = 0;
2101 {
2102 int referenced = 0;
2103 int UNUSED insn_referenced = abuf->written;
2104 INT in_sr = -1;
2105 INT in_dr = -1;
2106 INT out_dr = -1;
2107 out_dr = FLD (out_dr);
2108 referenced |= 1 << 2;
2109 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2110 }
2111 return cycles;
2112#undef FLD
2113}
2114
2115static int
2116model_m32r2_sll (SIM_CPU *current_cpu, void *sem_arg)
2117{
2118#define FLD(f) abuf->fields.sfmt_add.f
2119 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2120 const IDESC * UNUSED idesc = abuf->idesc;
2121 int cycles = 0;
2122 {
2123 int referenced = 0;
2124 int UNUSED insn_referenced = abuf->written;
2125 INT in_sr = -1;
2126 INT in_dr = -1;
2127 INT out_dr = -1;
2128 in_sr = FLD (in_sr);
2129 in_dr = FLD (in_dr);
2130 out_dr = FLD (out_dr);
2131 referenced |= 1 << 0;
2132 referenced |= 1 << 1;
2133 referenced |= 1 << 2;
2134 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2135 }
2136 return cycles;
2137#undef FLD
2138}
2139
2140static int
2141model_m32r2_sll3 (SIM_CPU *current_cpu, void *sem_arg)
2142{
2143#define FLD(f) abuf->fields.sfmt_add3.f
2144 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2145 const IDESC * UNUSED idesc = abuf->idesc;
2146 int cycles = 0;
2147 {
2148 int referenced = 0;
2149 int UNUSED insn_referenced = abuf->written;
2150 INT in_sr = -1;
2151 INT in_dr = -1;
2152 INT out_dr = -1;
2153 in_sr = FLD (in_sr);
2154 out_dr = FLD (out_dr);
2155 referenced |= 1 << 0;
2156 referenced |= 1 << 2;
2157 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2158 }
2159 return cycles;
2160#undef FLD
2161}
2162
2163static int
2164model_m32r2_slli (SIM_CPU *current_cpu, void *sem_arg)
2165{
2166#define FLD(f) abuf->fields.sfmt_slli.f
2167 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2168 const IDESC * UNUSED idesc = abuf->idesc;
2169 int cycles = 0;
2170 {
2171 int referenced = 0;
2172 int UNUSED insn_referenced = abuf->written;
2173 INT in_sr = -1;
2174 INT in_dr = -1;
2175 INT out_dr = -1;
2176 in_dr = FLD (in_dr);
2177 out_dr = FLD (out_dr);
2178 referenced |= 1 << 1;
2179 referenced |= 1 << 2;
2180 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2181 }
2182 return cycles;
2183#undef FLD
2184}
2185
2186static int
2187model_m32r2_sra (SIM_CPU *current_cpu, void *sem_arg)
2188{
2189#define FLD(f) abuf->fields.sfmt_add.f
2190 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2191 const IDESC * UNUSED idesc = abuf->idesc;
2192 int cycles = 0;
2193 {
2194 int referenced = 0;
2195 int UNUSED insn_referenced = abuf->written;
2196 INT in_sr = -1;
2197 INT in_dr = -1;
2198 INT out_dr = -1;
2199 in_sr = FLD (in_sr);
2200 in_dr = FLD (in_dr);
2201 out_dr = FLD (out_dr);
2202 referenced |= 1 << 0;
2203 referenced |= 1 << 1;
2204 referenced |= 1 << 2;
2205 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2206 }
2207 return cycles;
2208#undef FLD
2209}
2210
2211static int
2212model_m32r2_sra3 (SIM_CPU *current_cpu, void *sem_arg)
2213{
2214#define FLD(f) abuf->fields.sfmt_add3.f
2215 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2216 const IDESC * UNUSED idesc = abuf->idesc;
2217 int cycles = 0;
2218 {
2219 int referenced = 0;
2220 int UNUSED insn_referenced = abuf->written;
2221 INT in_sr = -1;
2222 INT in_dr = -1;
2223 INT out_dr = -1;
2224 in_sr = FLD (in_sr);
2225 out_dr = FLD (out_dr);
2226 referenced |= 1 << 0;
2227 referenced |= 1 << 2;
2228 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2229 }
2230 return cycles;
2231#undef FLD
2232}
2233
2234static int
2235model_m32r2_srai (SIM_CPU *current_cpu, void *sem_arg)
2236{
2237#define FLD(f) abuf->fields.sfmt_slli.f
2238 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2239 const IDESC * UNUSED idesc = abuf->idesc;
2240 int cycles = 0;
2241 {
2242 int referenced = 0;
2243 int UNUSED insn_referenced = abuf->written;
2244 INT in_sr = -1;
2245 INT in_dr = -1;
2246 INT out_dr = -1;
2247 in_dr = FLD (in_dr);
2248 out_dr = FLD (out_dr);
2249 referenced |= 1 << 1;
2250 referenced |= 1 << 2;
2251 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2252 }
2253 return cycles;
2254#undef FLD
2255}
2256
2257static int
2258model_m32r2_srl (SIM_CPU *current_cpu, void *sem_arg)
2259{
2260#define FLD(f) abuf->fields.sfmt_add.f
2261 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2262 const IDESC * UNUSED idesc = abuf->idesc;
2263 int cycles = 0;
2264 {
2265 int referenced = 0;
2266 int UNUSED insn_referenced = abuf->written;
2267 INT in_sr = -1;
2268 INT in_dr = -1;
2269 INT out_dr = -1;
2270 in_sr = FLD (in_sr);
2271 in_dr = FLD (in_dr);
2272 out_dr = FLD (out_dr);
2273 referenced |= 1 << 0;
2274 referenced |= 1 << 1;
2275 referenced |= 1 << 2;
2276 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2277 }
2278 return cycles;
2279#undef FLD
2280}
2281
2282static int
2283model_m32r2_srl3 (SIM_CPU *current_cpu, void *sem_arg)
2284{
2285#define FLD(f) abuf->fields.sfmt_add3.f
2286 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2287 const IDESC * UNUSED idesc = abuf->idesc;
2288 int cycles = 0;
2289 {
2290 int referenced = 0;
2291 int UNUSED insn_referenced = abuf->written;
2292 INT in_sr = -1;
2293 INT in_dr = -1;
2294 INT out_dr = -1;
2295 in_sr = FLD (in_sr);
2296 out_dr = FLD (out_dr);
2297 referenced |= 1 << 0;
2298 referenced |= 1 << 2;
2299 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2300 }
2301 return cycles;
2302#undef FLD
2303}
2304
2305static int
2306model_m32r2_srli (SIM_CPU *current_cpu, void *sem_arg)
2307{
2308#define FLD(f) abuf->fields.sfmt_slli.f
2309 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2310 const IDESC * UNUSED idesc = abuf->idesc;
2311 int cycles = 0;
2312 {
2313 int referenced = 0;
2314 int UNUSED insn_referenced = abuf->written;
2315 INT in_sr = -1;
2316 INT in_dr = -1;
2317 INT out_dr = -1;
2318 in_dr = FLD (in_dr);
2319 out_dr = FLD (out_dr);
2320 referenced |= 1 << 1;
2321 referenced |= 1 << 2;
2322 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2323 }
2324 return cycles;
2325#undef FLD
2326}
2327
2328static int
2329model_m32r2_st (SIM_CPU *current_cpu, void *sem_arg)
2330{
2331#define FLD(f) abuf->fields.sfmt_st_plus.f
2332 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2333 const IDESC * UNUSED idesc = abuf->idesc;
2334 int cycles = 0;
2335 {
2336 int referenced = 0;
2337 int UNUSED insn_referenced = abuf->written;
2338 INT in_src1 = 0;
2339 INT in_src2 = 0;
2340 in_src1 = FLD (in_src1);
2341 in_src2 = FLD (in_src2);
2342 referenced |= 1 << 0;
2343 referenced |= 1 << 1;
2344 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2345 }
2346 return cycles;
2347#undef FLD
2348}
2349
2350static int
2351model_m32r2_st_d (SIM_CPU *current_cpu, void *sem_arg)
2352{
2353#define FLD(f) abuf->fields.sfmt_st_d.f
2354 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2355 const IDESC * UNUSED idesc = abuf->idesc;
2356 int cycles = 0;
2357 {
2358 int referenced = 0;
2359 int UNUSED insn_referenced = abuf->written;
2360 INT in_src1 = 0;
2361 INT in_src2 = 0;
2362 in_src1 = FLD (in_src1);
2363 in_src2 = FLD (in_src2);
2364 referenced |= 1 << 0;
2365 referenced |= 1 << 1;
2366 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2367 }
2368 return cycles;
2369#undef FLD
2370}
2371
2372static int
2373model_m32r2_stb (SIM_CPU *current_cpu, void *sem_arg)
2374{
2375#define FLD(f) abuf->fields.sfmt_st_plus.f
2376 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2377 const IDESC * UNUSED idesc = abuf->idesc;
2378 int cycles = 0;
2379 {
2380 int referenced = 0;
2381 int UNUSED insn_referenced = abuf->written;
2382 INT in_src1 = 0;
2383 INT in_src2 = 0;
2384 in_src1 = FLD (in_src1);
2385 in_src2 = FLD (in_src2);
2386 referenced |= 1 << 0;
2387 referenced |= 1 << 1;
2388 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2389 }
2390 return cycles;
2391#undef FLD
2392}
2393
2394static int
2395model_m32r2_stb_d (SIM_CPU *current_cpu, void *sem_arg)
2396{
2397#define FLD(f) abuf->fields.sfmt_st_d.f
2398 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2399 const IDESC * UNUSED idesc = abuf->idesc;
2400 int cycles = 0;
2401 {
2402 int referenced = 0;
2403 int UNUSED insn_referenced = abuf->written;
2404 INT in_src1 = 0;
2405 INT in_src2 = 0;
2406 in_src1 = FLD (in_src1);
2407 in_src2 = FLD (in_src2);
2408 referenced |= 1 << 0;
2409 referenced |= 1 << 1;
2410 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2411 }
2412 return cycles;
2413#undef FLD
2414}
2415
2416static int
2417model_m32r2_sth (SIM_CPU *current_cpu, void *sem_arg)
2418{
2419#define FLD(f) abuf->fields.sfmt_st_plus.f
2420 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2421 const IDESC * UNUSED idesc = abuf->idesc;
2422 int cycles = 0;
2423 {
2424 int referenced = 0;
2425 int UNUSED insn_referenced = abuf->written;
2426 INT in_src1 = 0;
2427 INT in_src2 = 0;
2428 in_src1 = FLD (in_src1);
2429 in_src2 = FLD (in_src2);
2430 referenced |= 1 << 0;
2431 referenced |= 1 << 1;
2432 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2433 }
2434 return cycles;
2435#undef FLD
2436}
2437
2438static int
2439model_m32r2_sth_d (SIM_CPU *current_cpu, void *sem_arg)
2440{
2441#define FLD(f) abuf->fields.sfmt_st_d.f
2442 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2443 const IDESC * UNUSED idesc = abuf->idesc;
2444 int cycles = 0;
2445 {
2446 int referenced = 0;
2447 int UNUSED insn_referenced = abuf->written;
2448 INT in_src1 = 0;
2449 INT in_src2 = 0;
2450 in_src1 = FLD (in_src1);
2451 in_src2 = FLD (in_src2);
2452 referenced |= 1 << 0;
2453 referenced |= 1 << 1;
2454 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2455 }
2456 return cycles;
2457#undef FLD
2458}
2459
2460static int
2461model_m32r2_st_plus (SIM_CPU *current_cpu, void *sem_arg)
2462{
2463#define FLD(f) abuf->fields.sfmt_st_plus.f
2464 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2465 const IDESC * UNUSED idesc = abuf->idesc;
2466 int cycles = 0;
2467 {
2468 int referenced = 0;
2469 int UNUSED insn_referenced = abuf->written;
2470 INT in_src1 = 0;
2471 INT in_src2 = 0;
2472 in_src1 = FLD (in_src1);
2473 in_src2 = FLD (in_src2);
2474 referenced |= 1 << 0;
2475 referenced |= 1 << 1;
2476 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2477 }
2478 {
2479 int referenced = 0;
2480 int UNUSED insn_referenced = abuf->written;
2481 INT in_sr = -1;
2482 INT in_dr = -1;
2483 INT out_dr = -1;
2484 in_dr = FLD (in_src2);
2485 out_dr = FLD (out_src2);
2486 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr);
2487 }
2488 return cycles;
2489#undef FLD
2490}
2491
2492static int
2493model_m32r2_sth_plus (SIM_CPU *current_cpu, void *sem_arg)
2494{
2495#define FLD(f) abuf->fields.sfmt_st_plus.f
2496 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2497 const IDESC * UNUSED idesc = abuf->idesc;
2498 int cycles = 0;
2499 {
2500 int referenced = 0;
2501 int UNUSED insn_referenced = abuf->written;
2502 INT in_src1 = 0;
2503 INT in_src2 = 0;
2504 in_src1 = FLD (in_src1);
2505 in_src2 = FLD (in_src2);
2506 referenced |= 1 << 0;
2507 referenced |= 1 << 1;
2508 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2509 }
2510 {
2511 int referenced = 0;
2512 int UNUSED insn_referenced = abuf->written;
2513 INT in_sr = -1;
2514 INT in_dr = -1;
2515 INT out_dr = -1;
2516 in_dr = FLD (in_src2);
2517 out_dr = FLD (out_src2);
2518 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr);
2519 }
2520 return cycles;
2521#undef FLD
2522}
2523
2524static int
2525model_m32r2_stb_plus (SIM_CPU *current_cpu, void *sem_arg)
2526{
2527#define FLD(f) abuf->fields.sfmt_st_plus.f
2528 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2529 const IDESC * UNUSED idesc = abuf->idesc;
2530 int cycles = 0;
2531 {
2532 int referenced = 0;
2533 int UNUSED insn_referenced = abuf->written;
2534 INT in_src1 = 0;
2535 INT in_src2 = 0;
2536 in_src1 = FLD (in_src1);
2537 in_src2 = FLD (in_src2);
2538 referenced |= 1 << 0;
2539 referenced |= 1 << 1;
2540 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2541 }
2542 {
2543 int referenced = 0;
2544 int UNUSED insn_referenced = abuf->written;
2545 INT in_sr = -1;
2546 INT in_dr = -1;
2547 INT out_dr = -1;
2548 in_dr = FLD (in_src2);
2549 out_dr = FLD (out_src2);
2550 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr);
2551 }
2552 return cycles;
2553#undef FLD
2554}
2555
2556static int
2557model_m32r2_st_minus (SIM_CPU *current_cpu, void *sem_arg)
2558{
2559#define FLD(f) abuf->fields.sfmt_st_plus.f
2560 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2561 const IDESC * UNUSED idesc = abuf->idesc;
2562 int cycles = 0;
2563 {
2564 int referenced = 0;
2565 int UNUSED insn_referenced = abuf->written;
2566 INT in_src1 = 0;
2567 INT in_src2 = 0;
2568 in_src1 = FLD (in_src1);
2569 in_src2 = FLD (in_src2);
2570 referenced |= 1 << 0;
2571 referenced |= 1 << 1;
2572 cycles += m32r2f_model_m32r2_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2573 }
2574 {
2575 int referenced = 0;
2576 int UNUSED insn_referenced = abuf->written;
2577 INT in_sr = -1;
2578 INT in_dr = -1;
2579 INT out_dr = -1;
2580 in_dr = FLD (in_src2);
2581 out_dr = FLD (out_src2);
2582 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr);
2583 }
2584 return cycles;
2585#undef FLD
2586}
2587
2588static int
2589model_m32r2_sub (SIM_CPU *current_cpu, void *sem_arg)
2590{
2591#define FLD(f) abuf->fields.sfmt_add.f
2592 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2593 const IDESC * UNUSED idesc = abuf->idesc;
2594 int cycles = 0;
2595 {
2596 int referenced = 0;
2597 int UNUSED insn_referenced = abuf->written;
2598 INT in_sr = -1;
2599 INT in_dr = -1;
2600 INT out_dr = -1;
2601 in_sr = FLD (in_sr);
2602 in_dr = FLD (in_dr);
2603 out_dr = FLD (out_dr);
2604 referenced |= 1 << 0;
2605 referenced |= 1 << 1;
2606 referenced |= 1 << 2;
2607 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2608 }
2609 return cycles;
2610#undef FLD
2611}
2612
2613static int
2614model_m32r2_subv (SIM_CPU *current_cpu, void *sem_arg)
2615{
2616#define FLD(f) abuf->fields.sfmt_add.f
2617 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2618 const IDESC * UNUSED idesc = abuf->idesc;
2619 int cycles = 0;
2620 {
2621 int referenced = 0;
2622 int UNUSED insn_referenced = abuf->written;
2623 INT in_sr = -1;
2624 INT in_dr = -1;
2625 INT out_dr = -1;
2626 in_sr = FLD (in_sr);
2627 in_dr = FLD (in_dr);
2628 out_dr = FLD (out_dr);
2629 referenced |= 1 << 0;
2630 referenced |= 1 << 1;
2631 referenced |= 1 << 2;
2632 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2633 }
2634 return cycles;
2635#undef FLD
2636}
2637
2638static int
2639model_m32r2_subx (SIM_CPU *current_cpu, void *sem_arg)
2640{
2641#define FLD(f) abuf->fields.sfmt_add.f
2642 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2643 const IDESC * UNUSED idesc = abuf->idesc;
2644 int cycles = 0;
2645 {
2646 int referenced = 0;
2647 int UNUSED insn_referenced = abuf->written;
2648 INT in_sr = -1;
2649 INT in_dr = -1;
2650 INT out_dr = -1;
2651 in_sr = FLD (in_sr);
2652 in_dr = FLD (in_dr);
2653 out_dr = FLD (out_dr);
2654 referenced |= 1 << 0;
2655 referenced |= 1 << 1;
2656 referenced |= 1 << 2;
2657 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2658 }
2659 return cycles;
2660#undef FLD
2661}
2662
2663static int
2664model_m32r2_trap (SIM_CPU *current_cpu, void *sem_arg)
2665{
2666#define FLD(f) abuf->fields.sfmt_trap.f
2667 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2668 const IDESC * UNUSED idesc = abuf->idesc;
2669 int cycles = 0;
2670 {
2671 int referenced = 0;
2672 int UNUSED insn_referenced = abuf->written;
2673 INT in_sr = -1;
2674 INT in_dr = -1;
2675 INT out_dr = -1;
2676 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2677 }
2678 return cycles;
2679#undef FLD
2680}
2681
2682static int
2683model_m32r2_unlock (SIM_CPU *current_cpu, void *sem_arg)
2684{
2685#define FLD(f) abuf->fields.sfmt_st_plus.f
2686 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2687 const IDESC * UNUSED idesc = abuf->idesc;
2688 int cycles = 0;
2689 {
2690 int referenced = 0;
2691 int UNUSED insn_referenced = abuf->written;
2692 INT in_sr = 0;
2693 INT out_dr = 0;
2694 cycles += m32r2f_model_m32r2_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
2695 }
2696 return cycles;
2697#undef FLD
2698}
2699
2700static int
2701model_m32r2_satb (SIM_CPU *current_cpu, void *sem_arg)
2702{
2703#define FLD(f) abuf->fields.sfmt_ld_plus.f
2704 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2705 const IDESC * UNUSED idesc = abuf->idesc;
2706 int cycles = 0;
2707 {
2708 int referenced = 0;
2709 int UNUSED insn_referenced = abuf->written;
2710 INT in_sr = -1;
2711 INT in_dr = -1;
2712 INT out_dr = -1;
2713 in_sr = FLD (in_sr);
2714 out_dr = FLD (out_dr);
2715 referenced |= 1 << 0;
2716 referenced |= 1 << 2;
2717 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2718 }
2719 return cycles;
2720#undef FLD
2721}
2722
2723static int
2724model_m32r2_sath (SIM_CPU *current_cpu, void *sem_arg)
2725{
2726#define FLD(f) abuf->fields.sfmt_ld_plus.f
2727 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2728 const IDESC * UNUSED idesc = abuf->idesc;
2729 int cycles = 0;
2730 {
2731 int referenced = 0;
2732 int UNUSED insn_referenced = abuf->written;
2733 INT in_sr = -1;
2734 INT in_dr = -1;
2735 INT out_dr = -1;
2736 in_sr = FLD (in_sr);
2737 out_dr = FLD (out_dr);
2738 referenced |= 1 << 0;
2739 referenced |= 1 << 2;
2740 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2741 }
2742 return cycles;
2743#undef FLD
2744}
2745
2746static int
2747model_m32r2_sat (SIM_CPU *current_cpu, void *sem_arg)
2748{
2749#define FLD(f) abuf->fields.sfmt_ld_plus.f
2750 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2751 const IDESC * UNUSED idesc = abuf->idesc;
2752 int cycles = 0;
2753 {
2754 int referenced = 0;
2755 int UNUSED insn_referenced = abuf->written;
2756 INT in_sr = -1;
2757 INT in_dr = -1;
2758 INT out_dr = -1;
2759 in_sr = FLD (in_sr);
2760 out_dr = FLD (out_dr);
2761 if (insn_referenced & (1 << 1)) referenced |= 1 << 0;
2762 referenced |= 1 << 2;
2763 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2764 }
2765 return cycles;
2766#undef FLD
2767}
2768
2769static int
2770model_m32r2_pcmpbz (SIM_CPU *current_cpu, void *sem_arg)
2771{
2772#define FLD(f) abuf->fields.sfmt_st_plus.f
2773 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2774 const IDESC * UNUSED idesc = abuf->idesc;
2775 int cycles = 0;
2776 {
2777 int referenced = 0;
2778 int UNUSED insn_referenced = abuf->written;
2779 INT in_src1 = -1;
2780 INT in_src2 = -1;
2781 in_src2 = FLD (in_src2);
2782 referenced |= 1 << 1;
2783 cycles += m32r2f_model_m32r2_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2784 }
2785 return cycles;
2786#undef FLD
2787}
2788
2789static int
2790model_m32r2_sadd (SIM_CPU *current_cpu, void *sem_arg)
2791{
2310652a 2792#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2793 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2794 const IDESC * UNUSED idesc = abuf->idesc;
2795 int cycles = 0;
2796 {
2797 int referenced = 0;
2798 int UNUSED insn_referenced = abuf->written;
2799 INT in_src1 = -1;
2800 INT in_src2 = -1;
2801 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2802 }
2803 return cycles;
2804#undef FLD
2805}
2806
2807static int
2808model_m32r2_macwu1 (SIM_CPU *current_cpu, void *sem_arg)
2809{
2810#define FLD(f) abuf->fields.sfmt_st_plus.f
2811 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2812 const IDESC * UNUSED idesc = abuf->idesc;
2813 int cycles = 0;
2814 {
2815 int referenced = 0;
2816 int UNUSED insn_referenced = abuf->written;
2817 INT in_src1 = -1;
2818 INT in_src2 = -1;
2819 in_src1 = FLD (in_src1);
2820 in_src2 = FLD (in_src2);
2821 referenced |= 1 << 0;
2822 referenced |= 1 << 1;
2823 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2824 }
2825 return cycles;
2826#undef FLD
2827}
2828
2829static int
2830model_m32r2_msblo (SIM_CPU *current_cpu, void *sem_arg)
2831{
2832#define FLD(f) abuf->fields.sfmt_st_plus.f
2833 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2834 const IDESC * UNUSED idesc = abuf->idesc;
2835 int cycles = 0;
2836 {
2837 int referenced = 0;
2838 int UNUSED insn_referenced = abuf->written;
2839 INT in_src1 = -1;
2840 INT in_src2 = -1;
2841 in_src1 = FLD (in_src1);
2842 in_src2 = FLD (in_src2);
2843 referenced |= 1 << 0;
2844 referenced |= 1 << 1;
2845 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2846 }
2847 return cycles;
2848#undef FLD
2849}
2850
2851static int
2852model_m32r2_mulwu1 (SIM_CPU *current_cpu, void *sem_arg)
2853{
2854#define FLD(f) abuf->fields.sfmt_st_plus.f
2855 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2856 const IDESC * UNUSED idesc = abuf->idesc;
2857 int cycles = 0;
2858 {
2859 int referenced = 0;
2860 int UNUSED insn_referenced = abuf->written;
2861 INT in_src1 = -1;
2862 INT in_src2 = -1;
2863 in_src1 = FLD (in_src1);
2864 in_src2 = FLD (in_src2);
2865 referenced |= 1 << 0;
2866 referenced |= 1 << 1;
2867 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2868 }
2869 return cycles;
2870#undef FLD
2871}
2872
2873static int
2874model_m32r2_maclh1 (SIM_CPU *current_cpu, void *sem_arg)
2875{
2876#define FLD(f) abuf->fields.sfmt_st_plus.f
2877 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2878 const IDESC * UNUSED idesc = abuf->idesc;
2879 int cycles = 0;
2880 {
2881 int referenced = 0;
2882 int UNUSED insn_referenced = abuf->written;
2883 INT in_src1 = -1;
2884 INT in_src2 = -1;
2885 in_src1 = FLD (in_src1);
2886 in_src2 = FLD (in_src2);
2887 referenced |= 1 << 0;
2888 referenced |= 1 << 1;
2889 cycles += m32r2f_model_m32r2_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2890 }
2891 return cycles;
2892#undef FLD
2893}
2894
2895static int
2896model_m32r2_sc (SIM_CPU *current_cpu, void *sem_arg)
2897{
2310652a 2898#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2899 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2900 const IDESC * UNUSED idesc = abuf->idesc;
2901 int cycles = 0;
2902 {
2903 int referenced = 0;
2904 int UNUSED insn_referenced = abuf->written;
2905 INT in_sr = -1;
2906 INT in_dr = -1;
2907 INT out_dr = -1;
2908 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2909 }
2910 return cycles;
2911#undef FLD
2912}
2913
2914static int
2915model_m32r2_snc (SIM_CPU *current_cpu, void *sem_arg)
2916{
2310652a 2917#define FLD(f) abuf->fields.sfmt_empty.f
16b47b25
NC
2918 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2919 const IDESC * UNUSED idesc = abuf->idesc;
2920 int cycles = 0;
2921 {
2922 int referenced = 0;
2923 int UNUSED insn_referenced = abuf->written;
2924 INT in_sr = -1;
2925 INT in_dr = -1;
2926 INT out_dr = -1;
2927 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2928 }
2929 return cycles;
2930#undef FLD
2931}
2932
2933static int
2934model_m32r2_clrpsw (SIM_CPU *current_cpu, void *sem_arg)
2935{
2936#define FLD(f) abuf->fields.sfmt_clrpsw.f
2937 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2938 const IDESC * UNUSED idesc = abuf->idesc;
2939 int cycles = 0;
2940 {
2941 int referenced = 0;
2942 int UNUSED insn_referenced = abuf->written;
2943 INT in_sr = -1;
2944 INT in_dr = -1;
2945 INT out_dr = -1;
2946 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2947 }
2948 return cycles;
2949#undef FLD
2950}
2951
2952static int
2953model_m32r2_setpsw (SIM_CPU *current_cpu, void *sem_arg)
2954{
2955#define FLD(f) abuf->fields.sfmt_clrpsw.f
2956 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2957 const IDESC * UNUSED idesc = abuf->idesc;
2958 int cycles = 0;
2959 {
2960 int referenced = 0;
2961 int UNUSED insn_referenced = abuf->written;
2962 INT in_sr = -1;
2963 INT in_dr = -1;
2964 INT out_dr = -1;
2965 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2966 }
2967 return cycles;
2968#undef FLD
2969}
2970
2971static int
2972model_m32r2_bset (SIM_CPU *current_cpu, void *sem_arg)
2973{
2974#define FLD(f) abuf->fields.sfmt_bset.f
2975 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2976 const IDESC * UNUSED idesc = abuf->idesc;
2977 int cycles = 0;
2978 {
2979 int referenced = 0;
2980 int UNUSED insn_referenced = abuf->written;
2981 INT in_sr = -1;
2982 INT in_dr = -1;
2983 INT out_dr = -1;
2984 in_sr = FLD (in_sr);
2985 referenced |= 1 << 0;
2986 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2987 }
2988 return cycles;
2989#undef FLD
2990}
2991
2992static int
2993model_m32r2_bclr (SIM_CPU *current_cpu, void *sem_arg)
2994{
2995#define FLD(f) abuf->fields.sfmt_bset.f
2996 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2997 const IDESC * UNUSED idesc = abuf->idesc;
2998 int cycles = 0;
2999 {
3000 int referenced = 0;
3001 int UNUSED insn_referenced = abuf->written;
3002 INT in_sr = -1;
3003 INT in_dr = -1;
3004 INT out_dr = -1;
3005 in_sr = FLD (in_sr);
3006 referenced |= 1 << 0;
3007 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
3008 }
3009 return cycles;
3010#undef FLD
3011}
3012
3013static int
3014model_m32r2_btst (SIM_CPU *current_cpu, void *sem_arg)
3015{
3016#define FLD(f) abuf->fields.sfmt_bset.f
3017 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3018 const IDESC * UNUSED idesc = abuf->idesc;
3019 int cycles = 0;
3020 {
3021 int referenced = 0;
3022 int UNUSED insn_referenced = abuf->written;
3023 INT in_sr = -1;
3024 INT in_dr = -1;
3025 INT out_dr = -1;
3026 in_sr = FLD (in_sr);
3027 referenced |= 1 << 0;
3028 cycles += m32r2f_model_m32r2_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
3029 }
3030 return cycles;
3031#undef FLD
3032}
3033
3034/* We assume UNIT_NONE == 0 because the tables don't always terminate
3035 entries with it. */
3036
3037/* Model timing data for `m32r2'. */
3038
3039static const INSN_TIMING m32r2_timing[] = {
3040 { M32R2F_INSN_X_INVALID, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3041 { M32R2F_INSN_X_AFTER, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3042 { M32R2F_INSN_X_BEFORE, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3043 { M32R2F_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3044 { M32R2F_INSN_X_CHAIN, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3045 { M32R2F_INSN_X_BEGIN, 0, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3046 { M32R2F_INSN_ADD, model_m32r2_add, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3047 { M32R2F_INSN_ADD3, model_m32r2_add3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3048 { M32R2F_INSN_AND, model_m32r2_and, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3049 { M32R2F_INSN_AND3, model_m32r2_and3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3050 { M32R2F_INSN_OR, model_m32r2_or, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3051 { M32R2F_INSN_OR3, model_m32r2_or3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3052 { M32R2F_INSN_XOR, model_m32r2_xor, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3053 { M32R2F_INSN_XOR3, model_m32r2_xor3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3054 { M32R2F_INSN_ADDI, model_m32r2_addi, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3055 { M32R2F_INSN_ADDV, model_m32r2_addv, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3056 { M32R2F_INSN_ADDV3, model_m32r2_addv3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3057 { M32R2F_INSN_ADDX, model_m32r2_addx, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3058 { M32R2F_INSN_BC8, model_m32r2_bc8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3059 { M32R2F_INSN_BC24, model_m32r2_bc24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3060 { M32R2F_INSN_BEQ, model_m32r2_beq, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } },
3061 { M32R2F_INSN_BEQZ, model_m32r2_beqz, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } },
3062 { M32R2F_INSN_BGEZ, model_m32r2_bgez, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } },
3063 { M32R2F_INSN_BGTZ, model_m32r2_bgtz, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } },
3064 { M32R2F_INSN_BLEZ, model_m32r2_blez, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } },
3065 { M32R2F_INSN_BLTZ, model_m32r2_bltz, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } },
3066 { M32R2F_INSN_BNEZ, model_m32r2_bnez, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } },
3067 { M32R2F_INSN_BL8, model_m32r2_bl8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3068 { M32R2F_INSN_BL24, model_m32r2_bl24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3069 { M32R2F_INSN_BCL8, model_m32r2_bcl8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3070 { M32R2F_INSN_BCL24, model_m32r2_bcl24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3071 { M32R2F_INSN_BNC8, model_m32r2_bnc8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3072 { M32R2F_INSN_BNC24, model_m32r2_bnc24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3073 { M32R2F_INSN_BNE, model_m32r2_bne, { { (int) UNIT_M32R2_U_CTI, 1, 1 }, { (int) UNIT_M32R2_U_CMP, 1, 0 } } },
3074 { M32R2F_INSN_BRA8, model_m32r2_bra8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3075 { M32R2F_INSN_BRA24, model_m32r2_bra24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3076 { M32R2F_INSN_BNCL8, model_m32r2_bncl8, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3077 { M32R2F_INSN_BNCL24, model_m32r2_bncl24, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3078 { M32R2F_INSN_CMP, model_m32r2_cmp, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } },
3079 { M32R2F_INSN_CMPI, model_m32r2_cmpi, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } },
3080 { M32R2F_INSN_CMPU, model_m32r2_cmpu, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } },
3081 { M32R2F_INSN_CMPUI, model_m32r2_cmpui, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } },
3082 { M32R2F_INSN_CMPEQ, model_m32r2_cmpeq, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } },
3083 { M32R2F_INSN_CMPZ, model_m32r2_cmpz, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } },
3084 { M32R2F_INSN_DIV, model_m32r2_div, { { (int) UNIT_M32R2_U_EXEC, 1, 37 } } },
3085 { M32R2F_INSN_DIVU, model_m32r2_divu, { { (int) UNIT_M32R2_U_EXEC, 1, 37 } } },
3086 { M32R2F_INSN_REM, model_m32r2_rem, { { (int) UNIT_M32R2_U_EXEC, 1, 37 } } },
3087 { M32R2F_INSN_REMU, model_m32r2_remu, { { (int) UNIT_M32R2_U_EXEC, 1, 37 } } },
3088 { M32R2F_INSN_REMH, model_m32r2_remh, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } },
3089 { M32R2F_INSN_REMUH, model_m32r2_remuh, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } },
3090 { M32R2F_INSN_REMB, model_m32r2_remb, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } },
3091 { M32R2F_INSN_REMUB, model_m32r2_remub, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } },
3092 { M32R2F_INSN_DIVUH, model_m32r2_divuh, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } },
3093 { M32R2F_INSN_DIVB, model_m32r2_divb, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } },
3094 { M32R2F_INSN_DIVUB, model_m32r2_divub, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } },
3095 { M32R2F_INSN_DIVH, model_m32r2_divh, { { (int) UNIT_M32R2_U_EXEC, 1, 21 } } },
3096 { M32R2F_INSN_JC, model_m32r2_jc, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3097 { M32R2F_INSN_JNC, model_m32r2_jnc, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3098 { M32R2F_INSN_JL, model_m32r2_jl, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3099 { M32R2F_INSN_JMP, model_m32r2_jmp, { { (int) UNIT_M32R2_U_CTI, 1, 1 } } },
3100 { M32R2F_INSN_LD, model_m32r2_ld, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } },
3101 { M32R2F_INSN_LD_D, model_m32r2_ld_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } },
3102 { M32R2F_INSN_LDB, model_m32r2_ldb, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } },
3103 { M32R2F_INSN_LDB_D, model_m32r2_ldb_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } },
3104 { M32R2F_INSN_LDH, model_m32r2_ldh, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } },
3105 { M32R2F_INSN_LDH_D, model_m32r2_ldh_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } },
3106 { M32R2F_INSN_LDUB, model_m32r2_ldub, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } },
3107 { M32R2F_INSN_LDUB_D, model_m32r2_ldub_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } },
3108 { M32R2F_INSN_LDUH, model_m32r2_lduh, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } },
3109 { M32R2F_INSN_LDUH_D, model_m32r2_lduh_d, { { (int) UNIT_M32R2_U_LOAD, 1, 2 } } },
3110 { M32R2F_INSN_LD_PLUS, model_m32r2_ld_plus, { { (int) UNIT_M32R2_U_LOAD, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } },
3111 { M32R2F_INSN_LD24, model_m32r2_ld24, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3112 { M32R2F_INSN_LDI8, model_m32r2_ldi8, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3113 { M32R2F_INSN_LDI16, model_m32r2_ldi16, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3114 { M32R2F_INSN_LOCK, model_m32r2_lock, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } },
3115 { M32R2F_INSN_MACHI_A, model_m32r2_machi_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3116 { M32R2F_INSN_MACLO_A, model_m32r2_maclo_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3117 { M32R2F_INSN_MACWHI_A, model_m32r2_macwhi_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3118 { M32R2F_INSN_MACWLO_A, model_m32r2_macwlo_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3119 { M32R2F_INSN_MUL, model_m32r2_mul, { { (int) UNIT_M32R2_U_EXEC, 1, 4 } } },
3120 { M32R2F_INSN_MULHI_A, model_m32r2_mulhi_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3121 { M32R2F_INSN_MULLO_A, model_m32r2_mullo_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3122 { M32R2F_INSN_MULWHI_A, model_m32r2_mulwhi_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3123 { M32R2F_INSN_MULWLO_A, model_m32r2_mulwlo_a, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3124 { M32R2F_INSN_MV, model_m32r2_mv, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3125 { M32R2F_INSN_MVFACHI_A, model_m32r2_mvfachi_a, { { (int) UNIT_M32R2_U_EXEC, 1, 2 } } },
3126 { M32R2F_INSN_MVFACLO_A, model_m32r2_mvfaclo_a, { { (int) UNIT_M32R2_U_EXEC, 1, 2 } } },
3127 { M32R2F_INSN_MVFACMI_A, model_m32r2_mvfacmi_a, { { (int) UNIT_M32R2_U_EXEC, 1, 2 } } },
3128 { M32R2F_INSN_MVFC, model_m32r2_mvfc, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3129 { M32R2F_INSN_MVTACHI_A, model_m32r2_mvtachi_a, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3130 { M32R2F_INSN_MVTACLO_A, model_m32r2_mvtaclo_a, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3131 { M32R2F_INSN_MVTC, model_m32r2_mvtc, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3132 { M32R2F_INSN_NEG, model_m32r2_neg, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3133 { M32R2F_INSN_NOP, model_m32r2_nop, { { (int) UNIT_M32R2_U_EXEC, 1, 0 } } },
3134 { M32R2F_INSN_NOT, model_m32r2_not, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3135 { M32R2F_INSN_RAC_DSI, model_m32r2_rac_dsi, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3136 { M32R2F_INSN_RACH_DSI, model_m32r2_rach_dsi, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3137 { M32R2F_INSN_RTE, model_m32r2_rte, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3138 { M32R2F_INSN_SETH, model_m32r2_seth, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3139 { M32R2F_INSN_SLL, model_m32r2_sll, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3140 { M32R2F_INSN_SLL3, model_m32r2_sll3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3141 { M32R2F_INSN_SLLI, model_m32r2_slli, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3142 { M32R2F_INSN_SRA, model_m32r2_sra, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3143 { M32R2F_INSN_SRA3, model_m32r2_sra3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3144 { M32R2F_INSN_SRAI, model_m32r2_srai, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3145 { M32R2F_INSN_SRL, model_m32r2_srl, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3146 { M32R2F_INSN_SRL3, model_m32r2_srl3, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3147 { M32R2F_INSN_SRLI, model_m32r2_srli, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3148 { M32R2F_INSN_ST, model_m32r2_st, { { (int) UNIT_M32R2_U_STORE, 1, 1 } } },
3149 { M32R2F_INSN_ST_D, model_m32r2_st_d, { { (int) UNIT_M32R2_U_STORE, 1, 2 } } },
3150 { M32R2F_INSN_STB, model_m32r2_stb, { { (int) UNIT_M32R2_U_STORE, 1, 1 } } },
3151 { M32R2F_INSN_STB_D, model_m32r2_stb_d, { { (int) UNIT_M32R2_U_STORE, 1, 2 } } },
3152 { M32R2F_INSN_STH, model_m32r2_sth, { { (int) UNIT_M32R2_U_STORE, 1, 1 } } },
3153 { M32R2F_INSN_STH_D, model_m32r2_sth_d, { { (int) UNIT_M32R2_U_STORE, 1, 2 } } },
3154 { M32R2F_INSN_ST_PLUS, model_m32r2_st_plus, { { (int) UNIT_M32R2_U_STORE, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } },
3155 { M32R2F_INSN_STH_PLUS, model_m32r2_sth_plus, { { (int) UNIT_M32R2_U_STORE, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } },
3156 { M32R2F_INSN_STB_PLUS, model_m32r2_stb_plus, { { (int) UNIT_M32R2_U_STORE, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } },
3157 { M32R2F_INSN_ST_MINUS, model_m32r2_st_minus, { { (int) UNIT_M32R2_U_STORE, 1, 1 }, { (int) UNIT_M32R2_U_EXEC, 1, 0 } } },
3158 { M32R2F_INSN_SUB, model_m32r2_sub, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3159 { M32R2F_INSN_SUBV, model_m32r2_subv, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3160 { M32R2F_INSN_SUBX, model_m32r2_subx, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3161 { M32R2F_INSN_TRAP, model_m32r2_trap, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3162 { M32R2F_INSN_UNLOCK, model_m32r2_unlock, { { (int) UNIT_M32R2_U_LOAD, 1, 1 } } },
3163 { M32R2F_INSN_SATB, model_m32r2_satb, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3164 { M32R2F_INSN_SATH, model_m32r2_sath, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3165 { M32R2F_INSN_SAT, model_m32r2_sat, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3166 { M32R2F_INSN_PCMPBZ, model_m32r2_pcmpbz, { { (int) UNIT_M32R2_U_CMP, 1, 1 } } },
3167 { M32R2F_INSN_SADD, model_m32r2_sadd, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3168 { M32R2F_INSN_MACWU1, model_m32r2_macwu1, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3169 { M32R2F_INSN_MSBLO, model_m32r2_msblo, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3170 { M32R2F_INSN_MULWU1, model_m32r2_mulwu1, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3171 { M32R2F_INSN_MACLH1, model_m32r2_maclh1, { { (int) UNIT_M32R2_U_MAC, 1, 1 } } },
3172 { M32R2F_INSN_SC, model_m32r2_sc, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3173 { M32R2F_INSN_SNC, model_m32r2_snc, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3174 { M32R2F_INSN_CLRPSW, model_m32r2_clrpsw, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3175 { M32R2F_INSN_SETPSW, model_m32r2_setpsw, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3176 { M32R2F_INSN_BSET, model_m32r2_bset, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3177 { M32R2F_INSN_BCLR, model_m32r2_bclr, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3178 { M32R2F_INSN_BTST, model_m32r2_btst, { { (int) UNIT_M32R2_U_EXEC, 1, 1 } } },
3179};
3180
3181#endif /* WITH_PROFILE_MODEL_P */
3182
3183static void
3184m32r2_model_init (SIM_CPU *cpu)
3185{
3186 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_M32R2_DATA));
3187}
3188
3189#if WITH_PROFILE_MODEL_P
3190#define TIMING_DATA(td) td
3191#else
3192#define TIMING_DATA(td) 0
3193#endif
3194
3195static const MODEL m32r2_models[] =
3196{
3197 { "m32r2", & m32r2_mach, MODEL_M32R2, TIMING_DATA (& m32r2_timing[0]), m32r2_model_init },
3198 { 0 }
3199};
3200
3201/* The properties of this cpu's implementation. */
3202
3203static const MACH_IMP_PROPERTIES m32r2f_imp_properties =
3204{
3205 sizeof (SIM_CPU),
3206#if WITH_SCACHE
3207 sizeof (SCACHE)
3208#else
3209 0
3210#endif
3211};
3212
3213
3214static void
3215m32r2f_prepare_run (SIM_CPU *cpu)
3216{
3217 if (CPU_IDESC (cpu) == NULL)
3218 m32r2f_init_idesc_table (cpu);
3219}
3220
3221static const CGEN_INSN *
3222m32r2f_get_idata (SIM_CPU *cpu, int inum)
3223{
3224 return CPU_IDESC (cpu) [inum].idata;
3225}
3226
3227static void
3228m32r2_init_cpu (SIM_CPU *cpu)
3229{
3230 CPU_REG_FETCH (cpu) = m32r2f_fetch_register;
3231 CPU_REG_STORE (cpu) = m32r2f_store_register;
3232 CPU_PC_FETCH (cpu) = m32r2f_h_pc_get;
3233 CPU_PC_STORE (cpu) = m32r2f_h_pc_set;
3234 CPU_GET_IDATA (cpu) = m32r2f_get_idata;
3235 CPU_MAX_INSNS (cpu) = M32R2F_INSN__MAX;
3236 CPU_INSN_NAME (cpu) = cgen_insn_name;
3237 CPU_FULL_ENGINE_FN (cpu) = m32r2f_engine_run_full;
3238#if WITH_FAST
3239 CPU_FAST_ENGINE_FN (cpu) = m32r2f_engine_run_fast;
3240#else
3241 CPU_FAST_ENGINE_FN (cpu) = m32r2f_engine_run_full;
3242#endif
3243}
3244
3245const MACH m32r2_mach =
3246{
3247 "m32r2", "m32r2", MACH_M32R2,
3248 32, 32, & m32r2_models[0], & m32r2f_imp_properties,
3249 m32r2_init_cpu,
3250 m32r2f_prepare_run
3251};
3252