]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/m32r/model.c
Update years in copyright notice for the GDB files.
[thirdparty/binutils-gdb.git] / sim / m32r / model.c
1 /* Simulator model support for m32rbf.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright 1996-2013 Free Software Foundation, Inc.
6
7 This file is part of the GNU simulators.
8
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.
13
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.
18
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, see <http://www.gnu.org/licenses/>.
21
22 */
23
24 #define WANT_CPU m32rbf
25 #define WANT_CPU_M32RBF
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
36 static int
37 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
56 }
57 return cycles;
58 #undef FLD
59 }
60
61 static int
62 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
79 }
80 return cycles;
81 #undef FLD
82 }
83
84 static int
85 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
104 }
105 return cycles;
106 #undef FLD
107 }
108
109 static int
110 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
127 }
128 return cycles;
129 #undef FLD
130 }
131
132 static int
133 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
152 }
153 return cycles;
154 #undef FLD
155 }
156
157 static int
158 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
175 }
176 return cycles;
177 #undef FLD
178 }
179
180 static int
181 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
200 }
201 return cycles;
202 #undef FLD
203 }
204
205 static int
206 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
223 }
224 return cycles;
225 #undef FLD
226 }
227
228 static int
229 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
246 }
247 return cycles;
248 #undef FLD
249 }
250
251 static int
252 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
271 }
272 return cycles;
273 #undef FLD
274 }
275
276 static int
277 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
294 }
295 return cycles;
296 #undef FLD
297 }
298
299 static int
300 model_m32r_d_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 += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
319 }
320 return cycles;
321 #undef FLD
322 }
323
324 static int
325 model_m32r_d_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 += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
337 }
338 return cycles;
339 #undef FLD
340 }
341
342 static int
343 model_m32r_d_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 += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
355 }
356 return cycles;
357 #undef FLD
358 }
359
360 static int
361 model_m32r_d_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 += m32rbf_model_m32r_d_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 += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
384 }
385 return cycles;
386 #undef FLD
387 }
388
389 static int
390 model_m32r_d_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 += m32rbf_model_m32r_d_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 += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
411 }
412 return cycles;
413 #undef FLD
414 }
415
416 static int
417 model_m32r_d_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 += m32rbf_model_m32r_d_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 += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
438 }
439 return cycles;
440 #undef FLD
441 }
442
443 static int
444 model_m32r_d_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 += m32rbf_model_m32r_d_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 += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
465 }
466 return cycles;
467 #undef FLD
468 }
469
470 static int
471 model_m32r_d_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 += m32rbf_model_m32r_d_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 += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
492 }
493 return cycles;
494 #undef FLD
495 }
496
497 static int
498 model_m32r_d_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 += m32rbf_model_m32r_d_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 += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
519 }
520 return cycles;
521 #undef FLD
522 }
523
524 static int
525 model_m32r_d_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 += m32rbf_model_m32r_d_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 += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
546 }
547 return cycles;
548 #undef FLD
549 }
550
551 static int
552 model_m32r_d_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 += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
564 }
565 return cycles;
566 #undef FLD
567 }
568
569 static int
570 model_m32r_d_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 += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
582 }
583 return cycles;
584 #undef FLD
585 }
586
587 static int
588 model_m32r_d_bnc8 (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 << 2)) referenced |= 1 << 1;
599 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
600 }
601 return cycles;
602 #undef FLD
603 }
604
605 static int
606 model_m32r_d_bnc24 (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 << 2)) referenced |= 1 << 1;
617 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
618 }
619 return cycles;
620 #undef FLD
621 }
622
623 static int
624 model_m32r_d_bne (SIM_CPU *current_cpu, void *sem_arg)
625 {
626 #define FLD(f) abuf->fields.sfmt_beq.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 << 3)) referenced |= 1 << 1;
635 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
636 }
637 {
638 int referenced = 0;
639 int UNUSED insn_referenced = abuf->written;
640 INT in_src1 = -1;
641 INT in_src2 = -1;
642 in_src1 = FLD (in_src1);
643 in_src2 = FLD (in_src2);
644 referenced |= 1 << 0;
645 referenced |= 1 << 1;
646 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2);
647 }
648 return cycles;
649 #undef FLD
650 }
651
652 static int
653 model_m32r_d_bra8 (SIM_CPU *current_cpu, void *sem_arg)
654 {
655 #define FLD(f) abuf->fields.sfmt_bl8.f
656 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
657 const IDESC * UNUSED idesc = abuf->idesc;
658 int cycles = 0;
659 {
660 int referenced = 0;
661 int UNUSED insn_referenced = abuf->written;
662 INT in_sr = -1;
663 referenced |= 1 << 1;
664 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
665 }
666 return cycles;
667 #undef FLD
668 }
669
670 static int
671 model_m32r_d_bra24 (SIM_CPU *current_cpu, void *sem_arg)
672 {
673 #define FLD(f) abuf->fields.sfmt_bl24.f
674 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
675 const IDESC * UNUSED idesc = abuf->idesc;
676 int cycles = 0;
677 {
678 int referenced = 0;
679 int UNUSED insn_referenced = abuf->written;
680 INT in_sr = -1;
681 referenced |= 1 << 1;
682 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
683 }
684 return cycles;
685 #undef FLD
686 }
687
688 static int
689 model_m32r_d_cmp (SIM_CPU *current_cpu, void *sem_arg)
690 {
691 #define FLD(f) abuf->fields.sfmt_st_plus.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_src1 = -1;
699 INT in_src2 = -1;
700 in_src1 = FLD (in_src1);
701 in_src2 = FLD (in_src2);
702 referenced |= 1 << 0;
703 referenced |= 1 << 1;
704 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
705 }
706 return cycles;
707 #undef FLD
708 }
709
710 static int
711 model_m32r_d_cmpi (SIM_CPU *current_cpu, void *sem_arg)
712 {
713 #define FLD(f) abuf->fields.sfmt_st_d.f
714 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
715 const IDESC * UNUSED idesc = abuf->idesc;
716 int cycles = 0;
717 {
718 int referenced = 0;
719 int UNUSED insn_referenced = abuf->written;
720 INT in_src1 = -1;
721 INT in_src2 = -1;
722 in_src2 = FLD (in_src2);
723 referenced |= 1 << 1;
724 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
725 }
726 return cycles;
727 #undef FLD
728 }
729
730 static int
731 model_m32r_d_cmpu (SIM_CPU *current_cpu, void *sem_arg)
732 {
733 #define FLD(f) abuf->fields.sfmt_st_plus.f
734 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
735 const IDESC * UNUSED idesc = abuf->idesc;
736 int cycles = 0;
737 {
738 int referenced = 0;
739 int UNUSED insn_referenced = abuf->written;
740 INT in_src1 = -1;
741 INT in_src2 = -1;
742 in_src1 = FLD (in_src1);
743 in_src2 = FLD (in_src2);
744 referenced |= 1 << 0;
745 referenced |= 1 << 1;
746 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
747 }
748 return cycles;
749 #undef FLD
750 }
751
752 static int
753 model_m32r_d_cmpui (SIM_CPU *current_cpu, void *sem_arg)
754 {
755 #define FLD(f) abuf->fields.sfmt_st_d.f
756 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
757 const IDESC * UNUSED idesc = abuf->idesc;
758 int cycles = 0;
759 {
760 int referenced = 0;
761 int UNUSED insn_referenced = abuf->written;
762 INT in_src1 = -1;
763 INT in_src2 = -1;
764 in_src2 = FLD (in_src2);
765 referenced |= 1 << 1;
766 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2);
767 }
768 return cycles;
769 #undef FLD
770 }
771
772 static int
773 model_m32r_d_div (SIM_CPU *current_cpu, void *sem_arg)
774 {
775 #define FLD(f) abuf->fields.sfmt_add.f
776 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
777 const IDESC * UNUSED idesc = abuf->idesc;
778 int cycles = 0;
779 {
780 int referenced = 0;
781 int UNUSED insn_referenced = abuf->written;
782 INT in_sr = -1;
783 INT in_dr = -1;
784 INT out_dr = -1;
785 in_sr = FLD (in_sr);
786 in_dr = FLD (in_dr);
787 out_dr = FLD (out_dr);
788 referenced |= 1 << 0;
789 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
790 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
791 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
792 }
793 return cycles;
794 #undef FLD
795 }
796
797 static int
798 model_m32r_d_divu (SIM_CPU *current_cpu, void *sem_arg)
799 {
800 #define FLD(f) abuf->fields.sfmt_add.f
801 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
802 const IDESC * UNUSED idesc = abuf->idesc;
803 int cycles = 0;
804 {
805 int referenced = 0;
806 int UNUSED insn_referenced = abuf->written;
807 INT in_sr = -1;
808 INT in_dr = -1;
809 INT out_dr = -1;
810 in_sr = FLD (in_sr);
811 in_dr = FLD (in_dr);
812 out_dr = FLD (out_dr);
813 referenced |= 1 << 0;
814 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
815 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
816 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
817 }
818 return cycles;
819 #undef FLD
820 }
821
822 static int
823 model_m32r_d_rem (SIM_CPU *current_cpu, void *sem_arg)
824 {
825 #define FLD(f) abuf->fields.sfmt_add.f
826 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
827 const IDESC * UNUSED idesc = abuf->idesc;
828 int cycles = 0;
829 {
830 int referenced = 0;
831 int UNUSED insn_referenced = abuf->written;
832 INT in_sr = -1;
833 INT in_dr = -1;
834 INT out_dr = -1;
835 in_sr = FLD (in_sr);
836 in_dr = FLD (in_dr);
837 out_dr = FLD (out_dr);
838 referenced |= 1 << 0;
839 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
840 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
841 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
842 }
843 return cycles;
844 #undef FLD
845 }
846
847 static int
848 model_m32r_d_remu (SIM_CPU *current_cpu, void *sem_arg)
849 {
850 #define FLD(f) abuf->fields.sfmt_add.f
851 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
852 const IDESC * UNUSED idesc = abuf->idesc;
853 int cycles = 0;
854 {
855 int referenced = 0;
856 int UNUSED insn_referenced = abuf->written;
857 INT in_sr = -1;
858 INT in_dr = -1;
859 INT out_dr = -1;
860 in_sr = FLD (in_sr);
861 in_dr = FLD (in_dr);
862 out_dr = FLD (out_dr);
863 referenced |= 1 << 0;
864 if (insn_referenced & (1 << 0)) referenced |= 1 << 1;
865 if (insn_referenced & (1 << 2)) referenced |= 1 << 2;
866 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
867 }
868 return cycles;
869 #undef FLD
870 }
871
872 static int
873 model_m32r_d_jl (SIM_CPU *current_cpu, void *sem_arg)
874 {
875 #define FLD(f) abuf->fields.sfmt_jl.f
876 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
877 const IDESC * UNUSED idesc = abuf->idesc;
878 int cycles = 0;
879 {
880 int referenced = 0;
881 int UNUSED insn_referenced = abuf->written;
882 INT in_sr = -1;
883 in_sr = FLD (in_sr);
884 referenced |= 1 << 0;
885 referenced |= 1 << 1;
886 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
887 }
888 return cycles;
889 #undef FLD
890 }
891
892 static int
893 model_m32r_d_jmp (SIM_CPU *current_cpu, void *sem_arg)
894 {
895 #define FLD(f) abuf->fields.sfmt_jl.f
896 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
897 const IDESC * UNUSED idesc = abuf->idesc;
898 int cycles = 0;
899 {
900 int referenced = 0;
901 int UNUSED insn_referenced = abuf->written;
902 INT in_sr = -1;
903 in_sr = FLD (in_sr);
904 referenced |= 1 << 0;
905 referenced |= 1 << 1;
906 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr);
907 }
908 return cycles;
909 #undef FLD
910 }
911
912 static int
913 model_m32r_d_ld (SIM_CPU *current_cpu, void *sem_arg)
914 {
915 #define FLD(f) abuf->fields.sfmt_ld_plus.f
916 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
917 const IDESC * UNUSED idesc = abuf->idesc;
918 int cycles = 0;
919 {
920 int referenced = 0;
921 int UNUSED insn_referenced = abuf->written;
922 INT in_sr = 0;
923 INT out_dr = 0;
924 in_sr = FLD (in_sr);
925 out_dr = FLD (out_dr);
926 referenced |= 1 << 0;
927 referenced |= 1 << 1;
928 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
929 }
930 return cycles;
931 #undef FLD
932 }
933
934 static int
935 model_m32r_d_ld_d (SIM_CPU *current_cpu, void *sem_arg)
936 {
937 #define FLD(f) abuf->fields.sfmt_add3.f
938 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
939 const IDESC * UNUSED idesc = abuf->idesc;
940 int cycles = 0;
941 {
942 int referenced = 0;
943 int UNUSED insn_referenced = abuf->written;
944 INT in_sr = 0;
945 INT out_dr = 0;
946 in_sr = FLD (in_sr);
947 out_dr = FLD (out_dr);
948 referenced |= 1 << 0;
949 referenced |= 1 << 1;
950 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
951 }
952 return cycles;
953 #undef FLD
954 }
955
956 static int
957 model_m32r_d_ldb (SIM_CPU *current_cpu, void *sem_arg)
958 {
959 #define FLD(f) abuf->fields.sfmt_ld_plus.f
960 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
961 const IDESC * UNUSED idesc = abuf->idesc;
962 int cycles = 0;
963 {
964 int referenced = 0;
965 int UNUSED insn_referenced = abuf->written;
966 INT in_sr = 0;
967 INT out_dr = 0;
968 in_sr = FLD (in_sr);
969 out_dr = FLD (out_dr);
970 referenced |= 1 << 0;
971 referenced |= 1 << 1;
972 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
973 }
974 return cycles;
975 #undef FLD
976 }
977
978 static int
979 model_m32r_d_ldb_d (SIM_CPU *current_cpu, void *sem_arg)
980 {
981 #define FLD(f) abuf->fields.sfmt_add3.f
982 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
983 const IDESC * UNUSED idesc = abuf->idesc;
984 int cycles = 0;
985 {
986 int referenced = 0;
987 int UNUSED insn_referenced = abuf->written;
988 INT in_sr = 0;
989 INT out_dr = 0;
990 in_sr = FLD (in_sr);
991 out_dr = FLD (out_dr);
992 referenced |= 1 << 0;
993 referenced |= 1 << 1;
994 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
995 }
996 return cycles;
997 #undef FLD
998 }
999
1000 static int
1001 model_m32r_d_ldh (SIM_CPU *current_cpu, void *sem_arg)
1002 {
1003 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1004 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1005 const IDESC * UNUSED idesc = abuf->idesc;
1006 int cycles = 0;
1007 {
1008 int referenced = 0;
1009 int UNUSED insn_referenced = abuf->written;
1010 INT in_sr = 0;
1011 INT out_dr = 0;
1012 in_sr = FLD (in_sr);
1013 out_dr = FLD (out_dr);
1014 referenced |= 1 << 0;
1015 referenced |= 1 << 1;
1016 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1017 }
1018 return cycles;
1019 #undef FLD
1020 }
1021
1022 static int
1023 model_m32r_d_ldh_d (SIM_CPU *current_cpu, void *sem_arg)
1024 {
1025 #define FLD(f) abuf->fields.sfmt_add3.f
1026 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1027 const IDESC * UNUSED idesc = abuf->idesc;
1028 int cycles = 0;
1029 {
1030 int referenced = 0;
1031 int UNUSED insn_referenced = abuf->written;
1032 INT in_sr = 0;
1033 INT out_dr = 0;
1034 in_sr = FLD (in_sr);
1035 out_dr = FLD (out_dr);
1036 referenced |= 1 << 0;
1037 referenced |= 1 << 1;
1038 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1039 }
1040 return cycles;
1041 #undef FLD
1042 }
1043
1044 static int
1045 model_m32r_d_ldub (SIM_CPU *current_cpu, void *sem_arg)
1046 {
1047 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1048 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1049 const IDESC * UNUSED idesc = abuf->idesc;
1050 int cycles = 0;
1051 {
1052 int referenced = 0;
1053 int UNUSED insn_referenced = abuf->written;
1054 INT in_sr = 0;
1055 INT out_dr = 0;
1056 in_sr = FLD (in_sr);
1057 out_dr = FLD (out_dr);
1058 referenced |= 1 << 0;
1059 referenced |= 1 << 1;
1060 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1061 }
1062 return cycles;
1063 #undef FLD
1064 }
1065
1066 static int
1067 model_m32r_d_ldub_d (SIM_CPU *current_cpu, void *sem_arg)
1068 {
1069 #define FLD(f) abuf->fields.sfmt_add3.f
1070 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1071 const IDESC * UNUSED idesc = abuf->idesc;
1072 int cycles = 0;
1073 {
1074 int referenced = 0;
1075 int UNUSED insn_referenced = abuf->written;
1076 INT in_sr = 0;
1077 INT out_dr = 0;
1078 in_sr = FLD (in_sr);
1079 out_dr = FLD (out_dr);
1080 referenced |= 1 << 0;
1081 referenced |= 1 << 1;
1082 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1083 }
1084 return cycles;
1085 #undef FLD
1086 }
1087
1088 static int
1089 model_m32r_d_lduh (SIM_CPU *current_cpu, void *sem_arg)
1090 {
1091 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1092 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1093 const IDESC * UNUSED idesc = abuf->idesc;
1094 int cycles = 0;
1095 {
1096 int referenced = 0;
1097 int UNUSED insn_referenced = abuf->written;
1098 INT in_sr = 0;
1099 INT out_dr = 0;
1100 in_sr = FLD (in_sr);
1101 out_dr = FLD (out_dr);
1102 referenced |= 1 << 0;
1103 referenced |= 1 << 1;
1104 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1105 }
1106 return cycles;
1107 #undef FLD
1108 }
1109
1110 static int
1111 model_m32r_d_lduh_d (SIM_CPU *current_cpu, void *sem_arg)
1112 {
1113 #define FLD(f) abuf->fields.sfmt_add3.f
1114 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1115 const IDESC * UNUSED idesc = abuf->idesc;
1116 int cycles = 0;
1117 {
1118 int referenced = 0;
1119 int UNUSED insn_referenced = abuf->written;
1120 INT in_sr = 0;
1121 INT out_dr = 0;
1122 in_sr = FLD (in_sr);
1123 out_dr = FLD (out_dr);
1124 referenced |= 1 << 0;
1125 referenced |= 1 << 1;
1126 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1127 }
1128 return cycles;
1129 #undef FLD
1130 }
1131
1132 static int
1133 model_m32r_d_ld_plus (SIM_CPU *current_cpu, void *sem_arg)
1134 {
1135 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1136 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1137 const IDESC * UNUSED idesc = abuf->idesc;
1138 int cycles = 0;
1139 {
1140 int referenced = 0;
1141 int UNUSED insn_referenced = abuf->written;
1142 INT in_sr = 0;
1143 INT out_dr = 0;
1144 in_sr = FLD (in_sr);
1145 out_dr = FLD (out_dr);
1146 referenced |= 1 << 0;
1147 referenced |= 1 << 1;
1148 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1149 }
1150 {
1151 int referenced = 0;
1152 int UNUSED insn_referenced = abuf->written;
1153 INT in_sr = -1;
1154 INT in_dr = -1;
1155 INT out_dr = -1;
1156 in_dr = FLD (in_sr);
1157 out_dr = FLD (out_sr);
1158 referenced |= 1 << 0;
1159 referenced |= 1 << 2;
1160 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr);
1161 }
1162 return cycles;
1163 #undef FLD
1164 }
1165
1166 static int
1167 model_m32r_d_ld24 (SIM_CPU *current_cpu, void *sem_arg)
1168 {
1169 #define FLD(f) abuf->fields.sfmt_ld24.f
1170 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1171 const IDESC * UNUSED idesc = abuf->idesc;
1172 int cycles = 0;
1173 {
1174 int referenced = 0;
1175 int UNUSED insn_referenced = abuf->written;
1176 INT in_sr = -1;
1177 INT in_dr = -1;
1178 INT out_dr = -1;
1179 out_dr = FLD (out_dr);
1180 referenced |= 1 << 2;
1181 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1182 }
1183 return cycles;
1184 #undef FLD
1185 }
1186
1187 static int
1188 model_m32r_d_ldi8 (SIM_CPU *current_cpu, void *sem_arg)
1189 {
1190 #define FLD(f) abuf->fields.sfmt_addi.f
1191 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1192 const IDESC * UNUSED idesc = abuf->idesc;
1193 int cycles = 0;
1194 {
1195 int referenced = 0;
1196 int UNUSED insn_referenced = abuf->written;
1197 INT in_sr = -1;
1198 INT in_dr = -1;
1199 INT out_dr = -1;
1200 out_dr = FLD (out_dr);
1201 referenced |= 1 << 2;
1202 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1203 }
1204 return cycles;
1205 #undef FLD
1206 }
1207
1208 static int
1209 model_m32r_d_ldi16 (SIM_CPU *current_cpu, void *sem_arg)
1210 {
1211 #define FLD(f) abuf->fields.sfmt_add3.f
1212 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1213 const IDESC * UNUSED idesc = abuf->idesc;
1214 int cycles = 0;
1215 {
1216 int referenced = 0;
1217 int UNUSED insn_referenced = abuf->written;
1218 INT in_sr = -1;
1219 INT in_dr = -1;
1220 INT out_dr = -1;
1221 out_dr = FLD (out_dr);
1222 referenced |= 1 << 2;
1223 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1224 }
1225 return cycles;
1226 #undef FLD
1227 }
1228
1229 static int
1230 model_m32r_d_lock (SIM_CPU *current_cpu, void *sem_arg)
1231 {
1232 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1233 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1234 const IDESC * UNUSED idesc = abuf->idesc;
1235 int cycles = 0;
1236 {
1237 int referenced = 0;
1238 int UNUSED insn_referenced = abuf->written;
1239 INT in_sr = 0;
1240 INT out_dr = 0;
1241 in_sr = FLD (in_sr);
1242 out_dr = FLD (out_dr);
1243 referenced |= 1 << 0;
1244 referenced |= 1 << 1;
1245 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
1246 }
1247 return cycles;
1248 #undef FLD
1249 }
1250
1251 static int
1252 model_m32r_d_machi (SIM_CPU *current_cpu, void *sem_arg)
1253 {
1254 #define FLD(f) abuf->fields.sfmt_st_plus.f
1255 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1256 const IDESC * UNUSED idesc = abuf->idesc;
1257 int cycles = 0;
1258 {
1259 int referenced = 0;
1260 int UNUSED insn_referenced = abuf->written;
1261 INT in_src1 = -1;
1262 INT in_src2 = -1;
1263 in_src1 = FLD (in_src1);
1264 in_src2 = FLD (in_src2);
1265 referenced |= 1 << 0;
1266 referenced |= 1 << 1;
1267 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1268 }
1269 return cycles;
1270 #undef FLD
1271 }
1272
1273 static int
1274 model_m32r_d_maclo (SIM_CPU *current_cpu, void *sem_arg)
1275 {
1276 #define FLD(f) abuf->fields.sfmt_st_plus.f
1277 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1278 const IDESC * UNUSED idesc = abuf->idesc;
1279 int cycles = 0;
1280 {
1281 int referenced = 0;
1282 int UNUSED insn_referenced = abuf->written;
1283 INT in_src1 = -1;
1284 INT in_src2 = -1;
1285 in_src1 = FLD (in_src1);
1286 in_src2 = FLD (in_src2);
1287 referenced |= 1 << 0;
1288 referenced |= 1 << 1;
1289 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1290 }
1291 return cycles;
1292 #undef FLD
1293 }
1294
1295 static int
1296 model_m32r_d_macwhi (SIM_CPU *current_cpu, void *sem_arg)
1297 {
1298 #define FLD(f) abuf->fields.sfmt_st_plus.f
1299 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1300 const IDESC * UNUSED idesc = abuf->idesc;
1301 int cycles = 0;
1302 {
1303 int referenced = 0;
1304 int UNUSED insn_referenced = abuf->written;
1305 INT in_src1 = -1;
1306 INT in_src2 = -1;
1307 in_src1 = FLD (in_src1);
1308 in_src2 = FLD (in_src2);
1309 referenced |= 1 << 0;
1310 referenced |= 1 << 1;
1311 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1312 }
1313 return cycles;
1314 #undef FLD
1315 }
1316
1317 static int
1318 model_m32r_d_macwlo (SIM_CPU *current_cpu, void *sem_arg)
1319 {
1320 #define FLD(f) abuf->fields.sfmt_st_plus.f
1321 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1322 const IDESC * UNUSED idesc = abuf->idesc;
1323 int cycles = 0;
1324 {
1325 int referenced = 0;
1326 int UNUSED insn_referenced = abuf->written;
1327 INT in_src1 = -1;
1328 INT in_src2 = -1;
1329 in_src1 = FLD (in_src1);
1330 in_src2 = FLD (in_src2);
1331 referenced |= 1 << 0;
1332 referenced |= 1 << 1;
1333 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1334 }
1335 return cycles;
1336 #undef FLD
1337 }
1338
1339 static int
1340 model_m32r_d_mul (SIM_CPU *current_cpu, void *sem_arg)
1341 {
1342 #define FLD(f) abuf->fields.sfmt_add.f
1343 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1344 const IDESC * UNUSED idesc = abuf->idesc;
1345 int cycles = 0;
1346 {
1347 int referenced = 0;
1348 int UNUSED insn_referenced = abuf->written;
1349 INT in_sr = -1;
1350 INT in_dr = -1;
1351 INT out_dr = -1;
1352 in_sr = FLD (in_sr);
1353 in_dr = FLD (in_dr);
1354 out_dr = FLD (out_dr);
1355 referenced |= 1 << 0;
1356 referenced |= 1 << 1;
1357 referenced |= 1 << 2;
1358 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1359 }
1360 return cycles;
1361 #undef FLD
1362 }
1363
1364 static int
1365 model_m32r_d_mulhi (SIM_CPU *current_cpu, void *sem_arg)
1366 {
1367 #define FLD(f) abuf->fields.sfmt_st_plus.f
1368 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1369 const IDESC * UNUSED idesc = abuf->idesc;
1370 int cycles = 0;
1371 {
1372 int referenced = 0;
1373 int UNUSED insn_referenced = abuf->written;
1374 INT in_src1 = -1;
1375 INT in_src2 = -1;
1376 in_src1 = FLD (in_src1);
1377 in_src2 = FLD (in_src2);
1378 referenced |= 1 << 0;
1379 referenced |= 1 << 1;
1380 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1381 }
1382 return cycles;
1383 #undef FLD
1384 }
1385
1386 static int
1387 model_m32r_d_mullo (SIM_CPU *current_cpu, void *sem_arg)
1388 {
1389 #define FLD(f) abuf->fields.sfmt_st_plus.f
1390 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1391 const IDESC * UNUSED idesc = abuf->idesc;
1392 int cycles = 0;
1393 {
1394 int referenced = 0;
1395 int UNUSED insn_referenced = abuf->written;
1396 INT in_src1 = -1;
1397 INT in_src2 = -1;
1398 in_src1 = FLD (in_src1);
1399 in_src2 = FLD (in_src2);
1400 referenced |= 1 << 0;
1401 referenced |= 1 << 1;
1402 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1403 }
1404 return cycles;
1405 #undef FLD
1406 }
1407
1408 static int
1409 model_m32r_d_mulwhi (SIM_CPU *current_cpu, void *sem_arg)
1410 {
1411 #define FLD(f) abuf->fields.sfmt_st_plus.f
1412 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1413 const IDESC * UNUSED idesc = abuf->idesc;
1414 int cycles = 0;
1415 {
1416 int referenced = 0;
1417 int UNUSED insn_referenced = abuf->written;
1418 INT in_src1 = -1;
1419 INT in_src2 = -1;
1420 in_src1 = FLD (in_src1);
1421 in_src2 = FLD (in_src2);
1422 referenced |= 1 << 0;
1423 referenced |= 1 << 1;
1424 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1425 }
1426 return cycles;
1427 #undef FLD
1428 }
1429
1430 static int
1431 model_m32r_d_mulwlo (SIM_CPU *current_cpu, void *sem_arg)
1432 {
1433 #define FLD(f) abuf->fields.sfmt_st_plus.f
1434 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1435 const IDESC * UNUSED idesc = abuf->idesc;
1436 int cycles = 0;
1437 {
1438 int referenced = 0;
1439 int UNUSED insn_referenced = abuf->written;
1440 INT in_src1 = -1;
1441 INT in_src2 = -1;
1442 in_src1 = FLD (in_src1);
1443 in_src2 = FLD (in_src2);
1444 referenced |= 1 << 0;
1445 referenced |= 1 << 1;
1446 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1447 }
1448 return cycles;
1449 #undef FLD
1450 }
1451
1452 static int
1453 model_m32r_d_mv (SIM_CPU *current_cpu, void *sem_arg)
1454 {
1455 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1456 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1457 const IDESC * UNUSED idesc = abuf->idesc;
1458 int cycles = 0;
1459 {
1460 int referenced = 0;
1461 int UNUSED insn_referenced = abuf->written;
1462 INT in_sr = -1;
1463 INT in_dr = -1;
1464 INT out_dr = -1;
1465 in_sr = FLD (in_sr);
1466 out_dr = FLD (out_dr);
1467 referenced |= 1 << 0;
1468 referenced |= 1 << 2;
1469 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1470 }
1471 return cycles;
1472 #undef FLD
1473 }
1474
1475 static int
1476 model_m32r_d_mvfachi (SIM_CPU *current_cpu, void *sem_arg)
1477 {
1478 #define FLD(f) abuf->fields.sfmt_seth.f
1479 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1480 const IDESC * UNUSED idesc = abuf->idesc;
1481 int cycles = 0;
1482 {
1483 int referenced = 0;
1484 int UNUSED insn_referenced = abuf->written;
1485 INT in_sr = -1;
1486 INT in_dr = -1;
1487 INT out_dr = -1;
1488 out_dr = FLD (out_dr);
1489 referenced |= 1 << 2;
1490 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1491 }
1492 return cycles;
1493 #undef FLD
1494 }
1495
1496 static int
1497 model_m32r_d_mvfaclo (SIM_CPU *current_cpu, void *sem_arg)
1498 {
1499 #define FLD(f) abuf->fields.sfmt_seth.f
1500 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1501 const IDESC * UNUSED idesc = abuf->idesc;
1502 int cycles = 0;
1503 {
1504 int referenced = 0;
1505 int UNUSED insn_referenced = abuf->written;
1506 INT in_sr = -1;
1507 INT in_dr = -1;
1508 INT out_dr = -1;
1509 out_dr = FLD (out_dr);
1510 referenced |= 1 << 2;
1511 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1512 }
1513 return cycles;
1514 #undef FLD
1515 }
1516
1517 static int
1518 model_m32r_d_mvfacmi (SIM_CPU *current_cpu, void *sem_arg)
1519 {
1520 #define FLD(f) abuf->fields.sfmt_seth.f
1521 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1522 const IDESC * UNUSED idesc = abuf->idesc;
1523 int cycles = 0;
1524 {
1525 int referenced = 0;
1526 int UNUSED insn_referenced = abuf->written;
1527 INT in_sr = -1;
1528 INT in_dr = -1;
1529 INT out_dr = -1;
1530 out_dr = FLD (out_dr);
1531 referenced |= 1 << 2;
1532 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1533 }
1534 return cycles;
1535 #undef FLD
1536 }
1537
1538 static int
1539 model_m32r_d_mvfc (SIM_CPU *current_cpu, void *sem_arg)
1540 {
1541 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1542 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1543 const IDESC * UNUSED idesc = abuf->idesc;
1544 int cycles = 0;
1545 {
1546 int referenced = 0;
1547 int UNUSED insn_referenced = abuf->written;
1548 INT in_sr = -1;
1549 INT in_dr = -1;
1550 INT out_dr = -1;
1551 out_dr = FLD (out_dr);
1552 referenced |= 1 << 2;
1553 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1554 }
1555 return cycles;
1556 #undef FLD
1557 }
1558
1559 static int
1560 model_m32r_d_mvtachi (SIM_CPU *current_cpu, void *sem_arg)
1561 {
1562 #define FLD(f) abuf->fields.sfmt_st_plus.f
1563 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1564 const IDESC * UNUSED idesc = abuf->idesc;
1565 int cycles = 0;
1566 {
1567 int referenced = 0;
1568 int UNUSED insn_referenced = abuf->written;
1569 INT in_sr = -1;
1570 INT in_dr = -1;
1571 INT out_dr = -1;
1572 in_sr = FLD (in_src1);
1573 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1574 }
1575 return cycles;
1576 #undef FLD
1577 }
1578
1579 static int
1580 model_m32r_d_mvtaclo (SIM_CPU *current_cpu, void *sem_arg)
1581 {
1582 #define FLD(f) abuf->fields.sfmt_st_plus.f
1583 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1584 const IDESC * UNUSED idesc = abuf->idesc;
1585 int cycles = 0;
1586 {
1587 int referenced = 0;
1588 int UNUSED insn_referenced = abuf->written;
1589 INT in_sr = -1;
1590 INT in_dr = -1;
1591 INT out_dr = -1;
1592 in_sr = FLD (in_src1);
1593 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1594 }
1595 return cycles;
1596 #undef FLD
1597 }
1598
1599 static int
1600 model_m32r_d_mvtc (SIM_CPU *current_cpu, void *sem_arg)
1601 {
1602 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1603 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1604 const IDESC * UNUSED idesc = abuf->idesc;
1605 int cycles = 0;
1606 {
1607 int referenced = 0;
1608 int UNUSED insn_referenced = abuf->written;
1609 INT in_sr = -1;
1610 INT in_dr = -1;
1611 INT out_dr = -1;
1612 in_sr = FLD (in_sr);
1613 referenced |= 1 << 0;
1614 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1615 }
1616 return cycles;
1617 #undef FLD
1618 }
1619
1620 static int
1621 model_m32r_d_neg (SIM_CPU *current_cpu, void *sem_arg)
1622 {
1623 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1624 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1625 const IDESC * UNUSED idesc = abuf->idesc;
1626 int cycles = 0;
1627 {
1628 int referenced = 0;
1629 int UNUSED insn_referenced = abuf->written;
1630 INT in_sr = -1;
1631 INT in_dr = -1;
1632 INT out_dr = -1;
1633 in_sr = FLD (in_sr);
1634 out_dr = FLD (out_dr);
1635 referenced |= 1 << 0;
1636 referenced |= 1 << 2;
1637 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1638 }
1639 return cycles;
1640 #undef FLD
1641 }
1642
1643 static int
1644 model_m32r_d_nop (SIM_CPU *current_cpu, void *sem_arg)
1645 {
1646 #define FLD(f) abuf->fields.sfmt_empty.f
1647 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1648 const IDESC * UNUSED idesc = abuf->idesc;
1649 int cycles = 0;
1650 {
1651 int referenced = 0;
1652 int UNUSED insn_referenced = abuf->written;
1653 INT in_sr = -1;
1654 INT in_dr = -1;
1655 INT out_dr = -1;
1656 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1657 }
1658 return cycles;
1659 #undef FLD
1660 }
1661
1662 static int
1663 model_m32r_d_not (SIM_CPU *current_cpu, void *sem_arg)
1664 {
1665 #define FLD(f) abuf->fields.sfmt_ld_plus.f
1666 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1667 const IDESC * UNUSED idesc = abuf->idesc;
1668 int cycles = 0;
1669 {
1670 int referenced = 0;
1671 int UNUSED insn_referenced = abuf->written;
1672 INT in_sr = -1;
1673 INT in_dr = -1;
1674 INT out_dr = -1;
1675 in_sr = FLD (in_sr);
1676 out_dr = FLD (out_dr);
1677 referenced |= 1 << 0;
1678 referenced |= 1 << 2;
1679 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1680 }
1681 return cycles;
1682 #undef FLD
1683 }
1684
1685 static int
1686 model_m32r_d_rac (SIM_CPU *current_cpu, void *sem_arg)
1687 {
1688 #define FLD(f) abuf->fields.sfmt_empty.f
1689 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1690 const IDESC * UNUSED idesc = abuf->idesc;
1691 int cycles = 0;
1692 {
1693 int referenced = 0;
1694 int UNUSED insn_referenced = abuf->written;
1695 INT in_src1 = -1;
1696 INT in_src2 = -1;
1697 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1698 }
1699 return cycles;
1700 #undef FLD
1701 }
1702
1703 static int
1704 model_m32r_d_rach (SIM_CPU *current_cpu, void *sem_arg)
1705 {
1706 #define FLD(f) abuf->fields.sfmt_empty.f
1707 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1708 const IDESC * UNUSED idesc = abuf->idesc;
1709 int cycles = 0;
1710 {
1711 int referenced = 0;
1712 int UNUSED insn_referenced = abuf->written;
1713 INT in_src1 = -1;
1714 INT in_src2 = -1;
1715 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1716 }
1717 return cycles;
1718 #undef FLD
1719 }
1720
1721 static int
1722 model_m32r_d_rte (SIM_CPU *current_cpu, void *sem_arg)
1723 {
1724 #define FLD(f) abuf->fields.sfmt_empty.f
1725 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1726 const IDESC * UNUSED idesc = abuf->idesc;
1727 int cycles = 0;
1728 {
1729 int referenced = 0;
1730 int UNUSED insn_referenced = abuf->written;
1731 INT in_sr = -1;
1732 INT in_dr = -1;
1733 INT out_dr = -1;
1734 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1735 }
1736 return cycles;
1737 #undef FLD
1738 }
1739
1740 static int
1741 model_m32r_d_seth (SIM_CPU *current_cpu, void *sem_arg)
1742 {
1743 #define FLD(f) abuf->fields.sfmt_seth.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_sr = -1;
1751 INT in_dr = -1;
1752 INT out_dr = -1;
1753 out_dr = FLD (out_dr);
1754 referenced |= 1 << 2;
1755 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1756 }
1757 return cycles;
1758 #undef FLD
1759 }
1760
1761 static int
1762 model_m32r_d_sll (SIM_CPU *current_cpu, void *sem_arg)
1763 {
1764 #define FLD(f) abuf->fields.sfmt_add.f
1765 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1766 const IDESC * UNUSED idesc = abuf->idesc;
1767 int cycles = 0;
1768 {
1769 int referenced = 0;
1770 int UNUSED insn_referenced = abuf->written;
1771 INT in_sr = -1;
1772 INT in_dr = -1;
1773 INT out_dr = -1;
1774 in_sr = FLD (in_sr);
1775 in_dr = FLD (in_dr);
1776 out_dr = FLD (out_dr);
1777 referenced |= 1 << 0;
1778 referenced |= 1 << 1;
1779 referenced |= 1 << 2;
1780 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1781 }
1782 return cycles;
1783 #undef FLD
1784 }
1785
1786 static int
1787 model_m32r_d_sll3 (SIM_CPU *current_cpu, void *sem_arg)
1788 {
1789 #define FLD(f) abuf->fields.sfmt_add3.f
1790 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1791 const IDESC * UNUSED idesc = abuf->idesc;
1792 int cycles = 0;
1793 {
1794 int referenced = 0;
1795 int UNUSED insn_referenced = abuf->written;
1796 INT in_sr = -1;
1797 INT in_dr = -1;
1798 INT out_dr = -1;
1799 in_sr = FLD (in_sr);
1800 out_dr = FLD (out_dr);
1801 referenced |= 1 << 0;
1802 referenced |= 1 << 2;
1803 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1804 }
1805 return cycles;
1806 #undef FLD
1807 }
1808
1809 static int
1810 model_m32r_d_slli (SIM_CPU *current_cpu, void *sem_arg)
1811 {
1812 #define FLD(f) abuf->fields.sfmt_slli.f
1813 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1814 const IDESC * UNUSED idesc = abuf->idesc;
1815 int cycles = 0;
1816 {
1817 int referenced = 0;
1818 int UNUSED insn_referenced = abuf->written;
1819 INT in_sr = -1;
1820 INT in_dr = -1;
1821 INT out_dr = -1;
1822 in_dr = FLD (in_dr);
1823 out_dr = FLD (out_dr);
1824 referenced |= 1 << 1;
1825 referenced |= 1 << 2;
1826 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1827 }
1828 return cycles;
1829 #undef FLD
1830 }
1831
1832 static int
1833 model_m32r_d_sra (SIM_CPU *current_cpu, void *sem_arg)
1834 {
1835 #define FLD(f) abuf->fields.sfmt_add.f
1836 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1837 const IDESC * UNUSED idesc = abuf->idesc;
1838 int cycles = 0;
1839 {
1840 int referenced = 0;
1841 int UNUSED insn_referenced = abuf->written;
1842 INT in_sr = -1;
1843 INT in_dr = -1;
1844 INT out_dr = -1;
1845 in_sr = FLD (in_sr);
1846 in_dr = FLD (in_dr);
1847 out_dr = FLD (out_dr);
1848 referenced |= 1 << 0;
1849 referenced |= 1 << 1;
1850 referenced |= 1 << 2;
1851 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1852 }
1853 return cycles;
1854 #undef FLD
1855 }
1856
1857 static int
1858 model_m32r_d_sra3 (SIM_CPU *current_cpu, void *sem_arg)
1859 {
1860 #define FLD(f) abuf->fields.sfmt_add3.f
1861 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1862 const IDESC * UNUSED idesc = abuf->idesc;
1863 int cycles = 0;
1864 {
1865 int referenced = 0;
1866 int UNUSED insn_referenced = abuf->written;
1867 INT in_sr = -1;
1868 INT in_dr = -1;
1869 INT out_dr = -1;
1870 in_sr = FLD (in_sr);
1871 out_dr = FLD (out_dr);
1872 referenced |= 1 << 0;
1873 referenced |= 1 << 2;
1874 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1875 }
1876 return cycles;
1877 #undef FLD
1878 }
1879
1880 static int
1881 model_m32r_d_srai (SIM_CPU *current_cpu, void *sem_arg)
1882 {
1883 #define FLD(f) abuf->fields.sfmt_slli.f
1884 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1885 const IDESC * UNUSED idesc = abuf->idesc;
1886 int cycles = 0;
1887 {
1888 int referenced = 0;
1889 int UNUSED insn_referenced = abuf->written;
1890 INT in_sr = -1;
1891 INT in_dr = -1;
1892 INT out_dr = -1;
1893 in_dr = FLD (in_dr);
1894 out_dr = FLD (out_dr);
1895 referenced |= 1 << 1;
1896 referenced |= 1 << 2;
1897 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1898 }
1899 return cycles;
1900 #undef FLD
1901 }
1902
1903 static int
1904 model_m32r_d_srl (SIM_CPU *current_cpu, void *sem_arg)
1905 {
1906 #define FLD(f) abuf->fields.sfmt_add.f
1907 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1908 const IDESC * UNUSED idesc = abuf->idesc;
1909 int cycles = 0;
1910 {
1911 int referenced = 0;
1912 int UNUSED insn_referenced = abuf->written;
1913 INT in_sr = -1;
1914 INT in_dr = -1;
1915 INT out_dr = -1;
1916 in_sr = FLD (in_sr);
1917 in_dr = FLD (in_dr);
1918 out_dr = FLD (out_dr);
1919 referenced |= 1 << 0;
1920 referenced |= 1 << 1;
1921 referenced |= 1 << 2;
1922 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1923 }
1924 return cycles;
1925 #undef FLD
1926 }
1927
1928 static int
1929 model_m32r_d_srl3 (SIM_CPU *current_cpu, void *sem_arg)
1930 {
1931 #define FLD(f) abuf->fields.sfmt_add3.f
1932 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1933 const IDESC * UNUSED idesc = abuf->idesc;
1934 int cycles = 0;
1935 {
1936 int referenced = 0;
1937 int UNUSED insn_referenced = abuf->written;
1938 INT in_sr = -1;
1939 INT in_dr = -1;
1940 INT out_dr = -1;
1941 in_sr = FLD (in_sr);
1942 out_dr = FLD (out_dr);
1943 referenced |= 1 << 0;
1944 referenced |= 1 << 2;
1945 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1946 }
1947 return cycles;
1948 #undef FLD
1949 }
1950
1951 static int
1952 model_m32r_d_srli (SIM_CPU *current_cpu, void *sem_arg)
1953 {
1954 #define FLD(f) abuf->fields.sfmt_slli.f
1955 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
1956 const IDESC * UNUSED idesc = abuf->idesc;
1957 int cycles = 0;
1958 {
1959 int referenced = 0;
1960 int UNUSED insn_referenced = abuf->written;
1961 INT in_sr = -1;
1962 INT in_dr = -1;
1963 INT out_dr = -1;
1964 in_dr = FLD (in_dr);
1965 out_dr = FLD (out_dr);
1966 referenced |= 1 << 1;
1967 referenced |= 1 << 2;
1968 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
1969 }
1970 return cycles;
1971 #undef FLD
1972 }
1973
1974 static int
1975 model_m32r_d_st (SIM_CPU *current_cpu, void *sem_arg)
1976 {
1977 #define FLD(f) abuf->fields.sfmt_st_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_src1 = 0;
1985 INT in_src2 = 0;
1986 in_src1 = FLD (in_src1);
1987 in_src2 = FLD (in_src2);
1988 referenced |= 1 << 0;
1989 referenced |= 1 << 1;
1990 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
1991 }
1992 return cycles;
1993 #undef FLD
1994 }
1995
1996 static int
1997 model_m32r_d_st_d (SIM_CPU *current_cpu, void *sem_arg)
1998 {
1999 #define FLD(f) abuf->fields.sfmt_st_d.f
2000 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2001 const IDESC * UNUSED idesc = abuf->idesc;
2002 int cycles = 0;
2003 {
2004 int referenced = 0;
2005 int UNUSED insn_referenced = abuf->written;
2006 INT in_src1 = 0;
2007 INT in_src2 = 0;
2008 in_src1 = FLD (in_src1);
2009 in_src2 = FLD (in_src2);
2010 referenced |= 1 << 0;
2011 referenced |= 1 << 1;
2012 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2013 }
2014 return cycles;
2015 #undef FLD
2016 }
2017
2018 static int
2019 model_m32r_d_stb (SIM_CPU *current_cpu, void *sem_arg)
2020 {
2021 #define FLD(f) abuf->fields.sfmt_st_plus.f
2022 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2023 const IDESC * UNUSED idesc = abuf->idesc;
2024 int cycles = 0;
2025 {
2026 int referenced = 0;
2027 int UNUSED insn_referenced = abuf->written;
2028 INT in_src1 = 0;
2029 INT in_src2 = 0;
2030 in_src1 = FLD (in_src1);
2031 in_src2 = FLD (in_src2);
2032 referenced |= 1 << 0;
2033 referenced |= 1 << 1;
2034 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2035 }
2036 return cycles;
2037 #undef FLD
2038 }
2039
2040 static int
2041 model_m32r_d_stb_d (SIM_CPU *current_cpu, void *sem_arg)
2042 {
2043 #define FLD(f) abuf->fields.sfmt_st_d.f
2044 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2045 const IDESC * UNUSED idesc = abuf->idesc;
2046 int cycles = 0;
2047 {
2048 int referenced = 0;
2049 int UNUSED insn_referenced = abuf->written;
2050 INT in_src1 = 0;
2051 INT in_src2 = 0;
2052 in_src1 = FLD (in_src1);
2053 in_src2 = FLD (in_src2);
2054 referenced |= 1 << 0;
2055 referenced |= 1 << 1;
2056 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2057 }
2058 return cycles;
2059 #undef FLD
2060 }
2061
2062 static int
2063 model_m32r_d_sth (SIM_CPU *current_cpu, void *sem_arg)
2064 {
2065 #define FLD(f) abuf->fields.sfmt_st_plus.f
2066 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2067 const IDESC * UNUSED idesc = abuf->idesc;
2068 int cycles = 0;
2069 {
2070 int referenced = 0;
2071 int UNUSED insn_referenced = abuf->written;
2072 INT in_src1 = 0;
2073 INT in_src2 = 0;
2074 in_src1 = FLD (in_src1);
2075 in_src2 = FLD (in_src2);
2076 referenced |= 1 << 0;
2077 referenced |= 1 << 1;
2078 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2079 }
2080 return cycles;
2081 #undef FLD
2082 }
2083
2084 static int
2085 model_m32r_d_sth_d (SIM_CPU *current_cpu, void *sem_arg)
2086 {
2087 #define FLD(f) abuf->fields.sfmt_st_d.f
2088 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2089 const IDESC * UNUSED idesc = abuf->idesc;
2090 int cycles = 0;
2091 {
2092 int referenced = 0;
2093 int UNUSED insn_referenced = abuf->written;
2094 INT in_src1 = 0;
2095 INT in_src2 = 0;
2096 in_src1 = FLD (in_src1);
2097 in_src2 = FLD (in_src2);
2098 referenced |= 1 << 0;
2099 referenced |= 1 << 1;
2100 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2101 }
2102 return cycles;
2103 #undef FLD
2104 }
2105
2106 static int
2107 model_m32r_d_st_plus (SIM_CPU *current_cpu, void *sem_arg)
2108 {
2109 #define FLD(f) abuf->fields.sfmt_st_plus.f
2110 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2111 const IDESC * UNUSED idesc = abuf->idesc;
2112 int cycles = 0;
2113 {
2114 int referenced = 0;
2115 int UNUSED insn_referenced = abuf->written;
2116 INT in_src1 = 0;
2117 INT in_src2 = 0;
2118 in_src1 = FLD (in_src1);
2119 in_src2 = FLD (in_src2);
2120 referenced |= 1 << 0;
2121 referenced |= 1 << 1;
2122 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2123 }
2124 {
2125 int referenced = 0;
2126 int UNUSED insn_referenced = abuf->written;
2127 INT in_sr = -1;
2128 INT in_dr = -1;
2129 INT out_dr = -1;
2130 in_dr = FLD (in_src2);
2131 out_dr = FLD (out_src2);
2132 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr);
2133 }
2134 return cycles;
2135 #undef FLD
2136 }
2137
2138 static int
2139 model_m32r_d_st_minus (SIM_CPU *current_cpu, void *sem_arg)
2140 {
2141 #define FLD(f) abuf->fields.sfmt_st_plus.f
2142 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2143 const IDESC * UNUSED idesc = abuf->idesc;
2144 int cycles = 0;
2145 {
2146 int referenced = 0;
2147 int UNUSED insn_referenced = abuf->written;
2148 INT in_src1 = 0;
2149 INT in_src2 = 0;
2150 in_src1 = FLD (in_src1);
2151 in_src2 = FLD (in_src2);
2152 referenced |= 1 << 0;
2153 referenced |= 1 << 1;
2154 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2);
2155 }
2156 {
2157 int referenced = 0;
2158 int UNUSED insn_referenced = abuf->written;
2159 INT in_sr = -1;
2160 INT in_dr = -1;
2161 INT out_dr = -1;
2162 in_dr = FLD (in_src2);
2163 out_dr = FLD (out_src2);
2164 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr);
2165 }
2166 return cycles;
2167 #undef FLD
2168 }
2169
2170 static int
2171 model_m32r_d_sub (SIM_CPU *current_cpu, void *sem_arg)
2172 {
2173 #define FLD(f) abuf->fields.sfmt_add.f
2174 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2175 const IDESC * UNUSED idesc = abuf->idesc;
2176 int cycles = 0;
2177 {
2178 int referenced = 0;
2179 int UNUSED insn_referenced = abuf->written;
2180 INT in_sr = -1;
2181 INT in_dr = -1;
2182 INT out_dr = -1;
2183 in_sr = FLD (in_sr);
2184 in_dr = FLD (in_dr);
2185 out_dr = FLD (out_dr);
2186 referenced |= 1 << 0;
2187 referenced |= 1 << 1;
2188 referenced |= 1 << 2;
2189 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2190 }
2191 return cycles;
2192 #undef FLD
2193 }
2194
2195 static int
2196 model_m32r_d_subv (SIM_CPU *current_cpu, void *sem_arg)
2197 {
2198 #define FLD(f) abuf->fields.sfmt_add.f
2199 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2200 const IDESC * UNUSED idesc = abuf->idesc;
2201 int cycles = 0;
2202 {
2203 int referenced = 0;
2204 int UNUSED insn_referenced = abuf->written;
2205 INT in_sr = -1;
2206 INT in_dr = -1;
2207 INT out_dr = -1;
2208 in_sr = FLD (in_sr);
2209 in_dr = FLD (in_dr);
2210 out_dr = FLD (out_dr);
2211 referenced |= 1 << 0;
2212 referenced |= 1 << 1;
2213 referenced |= 1 << 2;
2214 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2215 }
2216 return cycles;
2217 #undef FLD
2218 }
2219
2220 static int
2221 model_m32r_d_subx (SIM_CPU *current_cpu, void *sem_arg)
2222 {
2223 #define FLD(f) abuf->fields.sfmt_add.f
2224 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2225 const IDESC * UNUSED idesc = abuf->idesc;
2226 int cycles = 0;
2227 {
2228 int referenced = 0;
2229 int UNUSED insn_referenced = abuf->written;
2230 INT in_sr = -1;
2231 INT in_dr = -1;
2232 INT out_dr = -1;
2233 in_sr = FLD (in_sr);
2234 in_dr = FLD (in_dr);
2235 out_dr = FLD (out_dr);
2236 referenced |= 1 << 0;
2237 referenced |= 1 << 1;
2238 referenced |= 1 << 2;
2239 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2240 }
2241 return cycles;
2242 #undef FLD
2243 }
2244
2245 static int
2246 model_m32r_d_trap (SIM_CPU *current_cpu, void *sem_arg)
2247 {
2248 #define FLD(f) abuf->fields.sfmt_trap.f
2249 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2250 const IDESC * UNUSED idesc = abuf->idesc;
2251 int cycles = 0;
2252 {
2253 int referenced = 0;
2254 int UNUSED insn_referenced = abuf->written;
2255 INT in_sr = -1;
2256 INT in_dr = -1;
2257 INT out_dr = -1;
2258 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2259 }
2260 return cycles;
2261 #undef FLD
2262 }
2263
2264 static int
2265 model_m32r_d_unlock (SIM_CPU *current_cpu, void *sem_arg)
2266 {
2267 #define FLD(f) abuf->fields.sfmt_st_plus.f
2268 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2269 const IDESC * UNUSED idesc = abuf->idesc;
2270 int cycles = 0;
2271 {
2272 int referenced = 0;
2273 int UNUSED insn_referenced = abuf->written;
2274 INT in_sr = 0;
2275 INT out_dr = 0;
2276 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr);
2277 }
2278 return cycles;
2279 #undef FLD
2280 }
2281
2282 static int
2283 model_m32r_d_clrpsw (SIM_CPU *current_cpu, void *sem_arg)
2284 {
2285 #define FLD(f) abuf->fields.sfmt_clrpsw.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 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2296 }
2297 return cycles;
2298 #undef FLD
2299 }
2300
2301 static int
2302 model_m32r_d_setpsw (SIM_CPU *current_cpu, void *sem_arg)
2303 {
2304 #define FLD(f) abuf->fields.sfmt_clrpsw.f
2305 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2306 const IDESC * UNUSED idesc = abuf->idesc;
2307 int cycles = 0;
2308 {
2309 int referenced = 0;
2310 int UNUSED insn_referenced = abuf->written;
2311 INT in_sr = -1;
2312 INT in_dr = -1;
2313 INT out_dr = -1;
2314 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2315 }
2316 return cycles;
2317 #undef FLD
2318 }
2319
2320 static int
2321 model_m32r_d_bset (SIM_CPU *current_cpu, void *sem_arg)
2322 {
2323 #define FLD(f) abuf->fields.sfmt_bset.f
2324 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2325 const IDESC * UNUSED idesc = abuf->idesc;
2326 int cycles = 0;
2327 {
2328 int referenced = 0;
2329 int UNUSED insn_referenced = abuf->written;
2330 INT in_sr = -1;
2331 INT in_dr = -1;
2332 INT out_dr = -1;
2333 in_sr = FLD (in_sr);
2334 referenced |= 1 << 0;
2335 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2336 }
2337 return cycles;
2338 #undef FLD
2339 }
2340
2341 static int
2342 model_m32r_d_bclr (SIM_CPU *current_cpu, void *sem_arg)
2343 {
2344 #define FLD(f) abuf->fields.sfmt_bset.f
2345 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2346 const IDESC * UNUSED idesc = abuf->idesc;
2347 int cycles = 0;
2348 {
2349 int referenced = 0;
2350 int UNUSED insn_referenced = abuf->written;
2351 INT in_sr = -1;
2352 INT in_dr = -1;
2353 INT out_dr = -1;
2354 in_sr = FLD (in_sr);
2355 referenced |= 1 << 0;
2356 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2357 }
2358 return cycles;
2359 #undef FLD
2360 }
2361
2362 static int
2363 model_m32r_d_btst (SIM_CPU *current_cpu, void *sem_arg)
2364 {
2365 #define FLD(f) abuf->fields.sfmt_bset.f
2366 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2367 const IDESC * UNUSED idesc = abuf->idesc;
2368 int cycles = 0;
2369 {
2370 int referenced = 0;
2371 int UNUSED insn_referenced = abuf->written;
2372 INT in_sr = -1;
2373 INT in_dr = -1;
2374 INT out_dr = -1;
2375 in_sr = FLD (in_sr);
2376 referenced |= 1 << 0;
2377 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr);
2378 }
2379 return cycles;
2380 #undef FLD
2381 }
2382
2383 static int
2384 model_test_add (SIM_CPU *current_cpu, void *sem_arg)
2385 {
2386 #define FLD(f) abuf->fields.sfmt_add.f
2387 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2388 const IDESC * UNUSED idesc = abuf->idesc;
2389 int cycles = 0;
2390 {
2391 int referenced = 0;
2392 int UNUSED insn_referenced = abuf->written;
2393 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2394 }
2395 return cycles;
2396 #undef FLD
2397 }
2398
2399 static int
2400 model_test_add3 (SIM_CPU *current_cpu, void *sem_arg)
2401 {
2402 #define FLD(f) abuf->fields.sfmt_add3.f
2403 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2404 const IDESC * UNUSED idesc = abuf->idesc;
2405 int cycles = 0;
2406 {
2407 int referenced = 0;
2408 int UNUSED insn_referenced = abuf->written;
2409 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2410 }
2411 return cycles;
2412 #undef FLD
2413 }
2414
2415 static int
2416 model_test_and (SIM_CPU *current_cpu, void *sem_arg)
2417 {
2418 #define FLD(f) abuf->fields.sfmt_add.f
2419 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2420 const IDESC * UNUSED idesc = abuf->idesc;
2421 int cycles = 0;
2422 {
2423 int referenced = 0;
2424 int UNUSED insn_referenced = abuf->written;
2425 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2426 }
2427 return cycles;
2428 #undef FLD
2429 }
2430
2431 static int
2432 model_test_and3 (SIM_CPU *current_cpu, void *sem_arg)
2433 {
2434 #define FLD(f) abuf->fields.sfmt_and3.f
2435 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2436 const IDESC * UNUSED idesc = abuf->idesc;
2437 int cycles = 0;
2438 {
2439 int referenced = 0;
2440 int UNUSED insn_referenced = abuf->written;
2441 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2442 }
2443 return cycles;
2444 #undef FLD
2445 }
2446
2447 static int
2448 model_test_or (SIM_CPU *current_cpu, void *sem_arg)
2449 {
2450 #define FLD(f) abuf->fields.sfmt_add.f
2451 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2452 const IDESC * UNUSED idesc = abuf->idesc;
2453 int cycles = 0;
2454 {
2455 int referenced = 0;
2456 int UNUSED insn_referenced = abuf->written;
2457 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2458 }
2459 return cycles;
2460 #undef FLD
2461 }
2462
2463 static int
2464 model_test_or3 (SIM_CPU *current_cpu, void *sem_arg)
2465 {
2466 #define FLD(f) abuf->fields.sfmt_and3.f
2467 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2468 const IDESC * UNUSED idesc = abuf->idesc;
2469 int cycles = 0;
2470 {
2471 int referenced = 0;
2472 int UNUSED insn_referenced = abuf->written;
2473 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2474 }
2475 return cycles;
2476 #undef FLD
2477 }
2478
2479 static int
2480 model_test_xor (SIM_CPU *current_cpu, void *sem_arg)
2481 {
2482 #define FLD(f) abuf->fields.sfmt_add.f
2483 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2484 const IDESC * UNUSED idesc = abuf->idesc;
2485 int cycles = 0;
2486 {
2487 int referenced = 0;
2488 int UNUSED insn_referenced = abuf->written;
2489 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2490 }
2491 return cycles;
2492 #undef FLD
2493 }
2494
2495 static int
2496 model_test_xor3 (SIM_CPU *current_cpu, void *sem_arg)
2497 {
2498 #define FLD(f) abuf->fields.sfmt_and3.f
2499 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2500 const IDESC * UNUSED idesc = abuf->idesc;
2501 int cycles = 0;
2502 {
2503 int referenced = 0;
2504 int UNUSED insn_referenced = abuf->written;
2505 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2506 }
2507 return cycles;
2508 #undef FLD
2509 }
2510
2511 static int
2512 model_test_addi (SIM_CPU *current_cpu, void *sem_arg)
2513 {
2514 #define FLD(f) abuf->fields.sfmt_addi.f
2515 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2516 const IDESC * UNUSED idesc = abuf->idesc;
2517 int cycles = 0;
2518 {
2519 int referenced = 0;
2520 int UNUSED insn_referenced = abuf->written;
2521 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2522 }
2523 return cycles;
2524 #undef FLD
2525 }
2526
2527 static int
2528 model_test_addv (SIM_CPU *current_cpu, void *sem_arg)
2529 {
2530 #define FLD(f) abuf->fields.sfmt_add.f
2531 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2532 const IDESC * UNUSED idesc = abuf->idesc;
2533 int cycles = 0;
2534 {
2535 int referenced = 0;
2536 int UNUSED insn_referenced = abuf->written;
2537 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2538 }
2539 return cycles;
2540 #undef FLD
2541 }
2542
2543 static int
2544 model_test_addv3 (SIM_CPU *current_cpu, void *sem_arg)
2545 {
2546 #define FLD(f) abuf->fields.sfmt_add3.f
2547 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2548 const IDESC * UNUSED idesc = abuf->idesc;
2549 int cycles = 0;
2550 {
2551 int referenced = 0;
2552 int UNUSED insn_referenced = abuf->written;
2553 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2554 }
2555 return cycles;
2556 #undef FLD
2557 }
2558
2559 static int
2560 model_test_addx (SIM_CPU *current_cpu, void *sem_arg)
2561 {
2562 #define FLD(f) abuf->fields.sfmt_add.f
2563 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2564 const IDESC * UNUSED idesc = abuf->idesc;
2565 int cycles = 0;
2566 {
2567 int referenced = 0;
2568 int UNUSED insn_referenced = abuf->written;
2569 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2570 }
2571 return cycles;
2572 #undef FLD
2573 }
2574
2575 static int
2576 model_test_bc8 (SIM_CPU *current_cpu, void *sem_arg)
2577 {
2578 #define FLD(f) abuf->fields.sfmt_bl8.f
2579 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2580 const IDESC * UNUSED idesc = abuf->idesc;
2581 int cycles = 0;
2582 {
2583 int referenced = 0;
2584 int UNUSED insn_referenced = abuf->written;
2585 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2586 }
2587 return cycles;
2588 #undef FLD
2589 }
2590
2591 static int
2592 model_test_bc24 (SIM_CPU *current_cpu, void *sem_arg)
2593 {
2594 #define FLD(f) abuf->fields.sfmt_bl24.f
2595 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2596 const IDESC * UNUSED idesc = abuf->idesc;
2597 int cycles = 0;
2598 {
2599 int referenced = 0;
2600 int UNUSED insn_referenced = abuf->written;
2601 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2602 }
2603 return cycles;
2604 #undef FLD
2605 }
2606
2607 static int
2608 model_test_beq (SIM_CPU *current_cpu, void *sem_arg)
2609 {
2610 #define FLD(f) abuf->fields.sfmt_beq.f
2611 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2612 const IDESC * UNUSED idesc = abuf->idesc;
2613 int cycles = 0;
2614 {
2615 int referenced = 0;
2616 int UNUSED insn_referenced = abuf->written;
2617 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2618 }
2619 return cycles;
2620 #undef FLD
2621 }
2622
2623 static int
2624 model_test_beqz (SIM_CPU *current_cpu, void *sem_arg)
2625 {
2626 #define FLD(f) abuf->fields.sfmt_beq.f
2627 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2628 const IDESC * UNUSED idesc = abuf->idesc;
2629 int cycles = 0;
2630 {
2631 int referenced = 0;
2632 int UNUSED insn_referenced = abuf->written;
2633 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2634 }
2635 return cycles;
2636 #undef FLD
2637 }
2638
2639 static int
2640 model_test_bgez (SIM_CPU *current_cpu, void *sem_arg)
2641 {
2642 #define FLD(f) abuf->fields.sfmt_beq.f
2643 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2644 const IDESC * UNUSED idesc = abuf->idesc;
2645 int cycles = 0;
2646 {
2647 int referenced = 0;
2648 int UNUSED insn_referenced = abuf->written;
2649 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2650 }
2651 return cycles;
2652 #undef FLD
2653 }
2654
2655 static int
2656 model_test_bgtz (SIM_CPU *current_cpu, void *sem_arg)
2657 {
2658 #define FLD(f) abuf->fields.sfmt_beq.f
2659 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2660 const IDESC * UNUSED idesc = abuf->idesc;
2661 int cycles = 0;
2662 {
2663 int referenced = 0;
2664 int UNUSED insn_referenced = abuf->written;
2665 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2666 }
2667 return cycles;
2668 #undef FLD
2669 }
2670
2671 static int
2672 model_test_blez (SIM_CPU *current_cpu, void *sem_arg)
2673 {
2674 #define FLD(f) abuf->fields.sfmt_beq.f
2675 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2676 const IDESC * UNUSED idesc = abuf->idesc;
2677 int cycles = 0;
2678 {
2679 int referenced = 0;
2680 int UNUSED insn_referenced = abuf->written;
2681 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2682 }
2683 return cycles;
2684 #undef FLD
2685 }
2686
2687 static int
2688 model_test_bltz (SIM_CPU *current_cpu, void *sem_arg)
2689 {
2690 #define FLD(f) abuf->fields.sfmt_beq.f
2691 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2692 const IDESC * UNUSED idesc = abuf->idesc;
2693 int cycles = 0;
2694 {
2695 int referenced = 0;
2696 int UNUSED insn_referenced = abuf->written;
2697 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2698 }
2699 return cycles;
2700 #undef FLD
2701 }
2702
2703 static int
2704 model_test_bnez (SIM_CPU *current_cpu, void *sem_arg)
2705 {
2706 #define FLD(f) abuf->fields.sfmt_beq.f
2707 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2708 const IDESC * UNUSED idesc = abuf->idesc;
2709 int cycles = 0;
2710 {
2711 int referenced = 0;
2712 int UNUSED insn_referenced = abuf->written;
2713 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2714 }
2715 return cycles;
2716 #undef FLD
2717 }
2718
2719 static int
2720 model_test_bl8 (SIM_CPU *current_cpu, void *sem_arg)
2721 {
2722 #define FLD(f) abuf->fields.sfmt_bl8.f
2723 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2724 const IDESC * UNUSED idesc = abuf->idesc;
2725 int cycles = 0;
2726 {
2727 int referenced = 0;
2728 int UNUSED insn_referenced = abuf->written;
2729 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2730 }
2731 return cycles;
2732 #undef FLD
2733 }
2734
2735 static int
2736 model_test_bl24 (SIM_CPU *current_cpu, void *sem_arg)
2737 {
2738 #define FLD(f) abuf->fields.sfmt_bl24.f
2739 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2740 const IDESC * UNUSED idesc = abuf->idesc;
2741 int cycles = 0;
2742 {
2743 int referenced = 0;
2744 int UNUSED insn_referenced = abuf->written;
2745 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2746 }
2747 return cycles;
2748 #undef FLD
2749 }
2750
2751 static int
2752 model_test_bnc8 (SIM_CPU *current_cpu, void *sem_arg)
2753 {
2754 #define FLD(f) abuf->fields.sfmt_bl8.f
2755 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2756 const IDESC * UNUSED idesc = abuf->idesc;
2757 int cycles = 0;
2758 {
2759 int referenced = 0;
2760 int UNUSED insn_referenced = abuf->written;
2761 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2762 }
2763 return cycles;
2764 #undef FLD
2765 }
2766
2767 static int
2768 model_test_bnc24 (SIM_CPU *current_cpu, void *sem_arg)
2769 {
2770 #define FLD(f) abuf->fields.sfmt_bl24.f
2771 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2772 const IDESC * UNUSED idesc = abuf->idesc;
2773 int cycles = 0;
2774 {
2775 int referenced = 0;
2776 int UNUSED insn_referenced = abuf->written;
2777 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2778 }
2779 return cycles;
2780 #undef FLD
2781 }
2782
2783 static int
2784 model_test_bne (SIM_CPU *current_cpu, void *sem_arg)
2785 {
2786 #define FLD(f) abuf->fields.sfmt_beq.f
2787 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2788 const IDESC * UNUSED idesc = abuf->idesc;
2789 int cycles = 0;
2790 {
2791 int referenced = 0;
2792 int UNUSED insn_referenced = abuf->written;
2793 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2794 }
2795 return cycles;
2796 #undef FLD
2797 }
2798
2799 static int
2800 model_test_bra8 (SIM_CPU *current_cpu, void *sem_arg)
2801 {
2802 #define FLD(f) abuf->fields.sfmt_bl8.f
2803 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2804 const IDESC * UNUSED idesc = abuf->idesc;
2805 int cycles = 0;
2806 {
2807 int referenced = 0;
2808 int UNUSED insn_referenced = abuf->written;
2809 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2810 }
2811 return cycles;
2812 #undef FLD
2813 }
2814
2815 static int
2816 model_test_bra24 (SIM_CPU *current_cpu, void *sem_arg)
2817 {
2818 #define FLD(f) abuf->fields.sfmt_bl24.f
2819 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2820 const IDESC * UNUSED idesc = abuf->idesc;
2821 int cycles = 0;
2822 {
2823 int referenced = 0;
2824 int UNUSED insn_referenced = abuf->written;
2825 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2826 }
2827 return cycles;
2828 #undef FLD
2829 }
2830
2831 static int
2832 model_test_cmp (SIM_CPU *current_cpu, void *sem_arg)
2833 {
2834 #define FLD(f) abuf->fields.sfmt_st_plus.f
2835 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2836 const IDESC * UNUSED idesc = abuf->idesc;
2837 int cycles = 0;
2838 {
2839 int referenced = 0;
2840 int UNUSED insn_referenced = abuf->written;
2841 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2842 }
2843 return cycles;
2844 #undef FLD
2845 }
2846
2847 static int
2848 model_test_cmpi (SIM_CPU *current_cpu, void *sem_arg)
2849 {
2850 #define FLD(f) abuf->fields.sfmt_st_d.f
2851 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2852 const IDESC * UNUSED idesc = abuf->idesc;
2853 int cycles = 0;
2854 {
2855 int referenced = 0;
2856 int UNUSED insn_referenced = abuf->written;
2857 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2858 }
2859 return cycles;
2860 #undef FLD
2861 }
2862
2863 static int
2864 model_test_cmpu (SIM_CPU *current_cpu, void *sem_arg)
2865 {
2866 #define FLD(f) abuf->fields.sfmt_st_plus.f
2867 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2868 const IDESC * UNUSED idesc = abuf->idesc;
2869 int cycles = 0;
2870 {
2871 int referenced = 0;
2872 int UNUSED insn_referenced = abuf->written;
2873 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2874 }
2875 return cycles;
2876 #undef FLD
2877 }
2878
2879 static int
2880 model_test_cmpui (SIM_CPU *current_cpu, void *sem_arg)
2881 {
2882 #define FLD(f) abuf->fields.sfmt_st_d.f
2883 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2884 const IDESC * UNUSED idesc = abuf->idesc;
2885 int cycles = 0;
2886 {
2887 int referenced = 0;
2888 int UNUSED insn_referenced = abuf->written;
2889 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2890 }
2891 return cycles;
2892 #undef FLD
2893 }
2894
2895 static int
2896 model_test_div (SIM_CPU *current_cpu, void *sem_arg)
2897 {
2898 #define FLD(f) abuf->fields.sfmt_add.f
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 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2906 }
2907 return cycles;
2908 #undef FLD
2909 }
2910
2911 static int
2912 model_test_divu (SIM_CPU *current_cpu, void *sem_arg)
2913 {
2914 #define FLD(f) abuf->fields.sfmt_add.f
2915 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2916 const IDESC * UNUSED idesc = abuf->idesc;
2917 int cycles = 0;
2918 {
2919 int referenced = 0;
2920 int UNUSED insn_referenced = abuf->written;
2921 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2922 }
2923 return cycles;
2924 #undef FLD
2925 }
2926
2927 static int
2928 model_test_rem (SIM_CPU *current_cpu, void *sem_arg)
2929 {
2930 #define FLD(f) abuf->fields.sfmt_add.f
2931 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2932 const IDESC * UNUSED idesc = abuf->idesc;
2933 int cycles = 0;
2934 {
2935 int referenced = 0;
2936 int UNUSED insn_referenced = abuf->written;
2937 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2938 }
2939 return cycles;
2940 #undef FLD
2941 }
2942
2943 static int
2944 model_test_remu (SIM_CPU *current_cpu, void *sem_arg)
2945 {
2946 #define FLD(f) abuf->fields.sfmt_add.f
2947 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2948 const IDESC * UNUSED idesc = abuf->idesc;
2949 int cycles = 0;
2950 {
2951 int referenced = 0;
2952 int UNUSED insn_referenced = abuf->written;
2953 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2954 }
2955 return cycles;
2956 #undef FLD
2957 }
2958
2959 static int
2960 model_test_jl (SIM_CPU *current_cpu, void *sem_arg)
2961 {
2962 #define FLD(f) abuf->fields.sfmt_jl.f
2963 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2964 const IDESC * UNUSED idesc = abuf->idesc;
2965 int cycles = 0;
2966 {
2967 int referenced = 0;
2968 int UNUSED insn_referenced = abuf->written;
2969 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2970 }
2971 return cycles;
2972 #undef FLD
2973 }
2974
2975 static int
2976 model_test_jmp (SIM_CPU *current_cpu, void *sem_arg)
2977 {
2978 #define FLD(f) abuf->fields.sfmt_jl.f
2979 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2980 const IDESC * UNUSED idesc = abuf->idesc;
2981 int cycles = 0;
2982 {
2983 int referenced = 0;
2984 int UNUSED insn_referenced = abuf->written;
2985 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
2986 }
2987 return cycles;
2988 #undef FLD
2989 }
2990
2991 static int
2992 model_test_ld (SIM_CPU *current_cpu, void *sem_arg)
2993 {
2994 #define FLD(f) abuf->fields.sfmt_ld_plus.f
2995 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
2996 const IDESC * UNUSED idesc = abuf->idesc;
2997 int cycles = 0;
2998 {
2999 int referenced = 0;
3000 int UNUSED insn_referenced = abuf->written;
3001 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3002 }
3003 return cycles;
3004 #undef FLD
3005 }
3006
3007 static int
3008 model_test_ld_d (SIM_CPU *current_cpu, void *sem_arg)
3009 {
3010 #define FLD(f) abuf->fields.sfmt_add3.f
3011 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3012 const IDESC * UNUSED idesc = abuf->idesc;
3013 int cycles = 0;
3014 {
3015 int referenced = 0;
3016 int UNUSED insn_referenced = abuf->written;
3017 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3018 }
3019 return cycles;
3020 #undef FLD
3021 }
3022
3023 static int
3024 model_test_ldb (SIM_CPU *current_cpu, void *sem_arg)
3025 {
3026 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3027 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3028 const IDESC * UNUSED idesc = abuf->idesc;
3029 int cycles = 0;
3030 {
3031 int referenced = 0;
3032 int UNUSED insn_referenced = abuf->written;
3033 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3034 }
3035 return cycles;
3036 #undef FLD
3037 }
3038
3039 static int
3040 model_test_ldb_d (SIM_CPU *current_cpu, void *sem_arg)
3041 {
3042 #define FLD(f) abuf->fields.sfmt_add3.f
3043 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3044 const IDESC * UNUSED idesc = abuf->idesc;
3045 int cycles = 0;
3046 {
3047 int referenced = 0;
3048 int UNUSED insn_referenced = abuf->written;
3049 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3050 }
3051 return cycles;
3052 #undef FLD
3053 }
3054
3055 static int
3056 model_test_ldh (SIM_CPU *current_cpu, void *sem_arg)
3057 {
3058 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3059 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3060 const IDESC * UNUSED idesc = abuf->idesc;
3061 int cycles = 0;
3062 {
3063 int referenced = 0;
3064 int UNUSED insn_referenced = abuf->written;
3065 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3066 }
3067 return cycles;
3068 #undef FLD
3069 }
3070
3071 static int
3072 model_test_ldh_d (SIM_CPU *current_cpu, void *sem_arg)
3073 {
3074 #define FLD(f) abuf->fields.sfmt_add3.f
3075 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3076 const IDESC * UNUSED idesc = abuf->idesc;
3077 int cycles = 0;
3078 {
3079 int referenced = 0;
3080 int UNUSED insn_referenced = abuf->written;
3081 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3082 }
3083 return cycles;
3084 #undef FLD
3085 }
3086
3087 static int
3088 model_test_ldub (SIM_CPU *current_cpu, void *sem_arg)
3089 {
3090 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3091 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3092 const IDESC * UNUSED idesc = abuf->idesc;
3093 int cycles = 0;
3094 {
3095 int referenced = 0;
3096 int UNUSED insn_referenced = abuf->written;
3097 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3098 }
3099 return cycles;
3100 #undef FLD
3101 }
3102
3103 static int
3104 model_test_ldub_d (SIM_CPU *current_cpu, void *sem_arg)
3105 {
3106 #define FLD(f) abuf->fields.sfmt_add3.f
3107 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3108 const IDESC * UNUSED idesc = abuf->idesc;
3109 int cycles = 0;
3110 {
3111 int referenced = 0;
3112 int UNUSED insn_referenced = abuf->written;
3113 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3114 }
3115 return cycles;
3116 #undef FLD
3117 }
3118
3119 static int
3120 model_test_lduh (SIM_CPU *current_cpu, void *sem_arg)
3121 {
3122 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3123 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3124 const IDESC * UNUSED idesc = abuf->idesc;
3125 int cycles = 0;
3126 {
3127 int referenced = 0;
3128 int UNUSED insn_referenced = abuf->written;
3129 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3130 }
3131 return cycles;
3132 #undef FLD
3133 }
3134
3135 static int
3136 model_test_lduh_d (SIM_CPU *current_cpu, void *sem_arg)
3137 {
3138 #define FLD(f) abuf->fields.sfmt_add3.f
3139 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3140 const IDESC * UNUSED idesc = abuf->idesc;
3141 int cycles = 0;
3142 {
3143 int referenced = 0;
3144 int UNUSED insn_referenced = abuf->written;
3145 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3146 }
3147 return cycles;
3148 #undef FLD
3149 }
3150
3151 static int
3152 model_test_ld_plus (SIM_CPU *current_cpu, void *sem_arg)
3153 {
3154 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3155 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3156 const IDESC * UNUSED idesc = abuf->idesc;
3157 int cycles = 0;
3158 {
3159 int referenced = 0;
3160 int UNUSED insn_referenced = abuf->written;
3161 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3162 }
3163 return cycles;
3164 #undef FLD
3165 }
3166
3167 static int
3168 model_test_ld24 (SIM_CPU *current_cpu, void *sem_arg)
3169 {
3170 #define FLD(f) abuf->fields.sfmt_ld24.f
3171 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3172 const IDESC * UNUSED idesc = abuf->idesc;
3173 int cycles = 0;
3174 {
3175 int referenced = 0;
3176 int UNUSED insn_referenced = abuf->written;
3177 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3178 }
3179 return cycles;
3180 #undef FLD
3181 }
3182
3183 static int
3184 model_test_ldi8 (SIM_CPU *current_cpu, void *sem_arg)
3185 {
3186 #define FLD(f) abuf->fields.sfmt_addi.f
3187 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3188 const IDESC * UNUSED idesc = abuf->idesc;
3189 int cycles = 0;
3190 {
3191 int referenced = 0;
3192 int UNUSED insn_referenced = abuf->written;
3193 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3194 }
3195 return cycles;
3196 #undef FLD
3197 }
3198
3199 static int
3200 model_test_ldi16 (SIM_CPU *current_cpu, void *sem_arg)
3201 {
3202 #define FLD(f) abuf->fields.sfmt_add3.f
3203 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3204 const IDESC * UNUSED idesc = abuf->idesc;
3205 int cycles = 0;
3206 {
3207 int referenced = 0;
3208 int UNUSED insn_referenced = abuf->written;
3209 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3210 }
3211 return cycles;
3212 #undef FLD
3213 }
3214
3215 static int
3216 model_test_lock (SIM_CPU *current_cpu, void *sem_arg)
3217 {
3218 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3219 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3220 const IDESC * UNUSED idesc = abuf->idesc;
3221 int cycles = 0;
3222 {
3223 int referenced = 0;
3224 int UNUSED insn_referenced = abuf->written;
3225 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3226 }
3227 return cycles;
3228 #undef FLD
3229 }
3230
3231 static int
3232 model_test_machi (SIM_CPU *current_cpu, void *sem_arg)
3233 {
3234 #define FLD(f) abuf->fields.sfmt_st_plus.f
3235 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3236 const IDESC * UNUSED idesc = abuf->idesc;
3237 int cycles = 0;
3238 {
3239 int referenced = 0;
3240 int UNUSED insn_referenced = abuf->written;
3241 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3242 }
3243 return cycles;
3244 #undef FLD
3245 }
3246
3247 static int
3248 model_test_maclo (SIM_CPU *current_cpu, void *sem_arg)
3249 {
3250 #define FLD(f) abuf->fields.sfmt_st_plus.f
3251 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3252 const IDESC * UNUSED idesc = abuf->idesc;
3253 int cycles = 0;
3254 {
3255 int referenced = 0;
3256 int UNUSED insn_referenced = abuf->written;
3257 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3258 }
3259 return cycles;
3260 #undef FLD
3261 }
3262
3263 static int
3264 model_test_macwhi (SIM_CPU *current_cpu, void *sem_arg)
3265 {
3266 #define FLD(f) abuf->fields.sfmt_st_plus.f
3267 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3268 const IDESC * UNUSED idesc = abuf->idesc;
3269 int cycles = 0;
3270 {
3271 int referenced = 0;
3272 int UNUSED insn_referenced = abuf->written;
3273 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3274 }
3275 return cycles;
3276 #undef FLD
3277 }
3278
3279 static int
3280 model_test_macwlo (SIM_CPU *current_cpu, void *sem_arg)
3281 {
3282 #define FLD(f) abuf->fields.sfmt_st_plus.f
3283 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3284 const IDESC * UNUSED idesc = abuf->idesc;
3285 int cycles = 0;
3286 {
3287 int referenced = 0;
3288 int UNUSED insn_referenced = abuf->written;
3289 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3290 }
3291 return cycles;
3292 #undef FLD
3293 }
3294
3295 static int
3296 model_test_mul (SIM_CPU *current_cpu, void *sem_arg)
3297 {
3298 #define FLD(f) abuf->fields.sfmt_add.f
3299 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3300 const IDESC * UNUSED idesc = abuf->idesc;
3301 int cycles = 0;
3302 {
3303 int referenced = 0;
3304 int UNUSED insn_referenced = abuf->written;
3305 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3306 }
3307 return cycles;
3308 #undef FLD
3309 }
3310
3311 static int
3312 model_test_mulhi (SIM_CPU *current_cpu, void *sem_arg)
3313 {
3314 #define FLD(f) abuf->fields.sfmt_st_plus.f
3315 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3316 const IDESC * UNUSED idesc = abuf->idesc;
3317 int cycles = 0;
3318 {
3319 int referenced = 0;
3320 int UNUSED insn_referenced = abuf->written;
3321 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3322 }
3323 return cycles;
3324 #undef FLD
3325 }
3326
3327 static int
3328 model_test_mullo (SIM_CPU *current_cpu, void *sem_arg)
3329 {
3330 #define FLD(f) abuf->fields.sfmt_st_plus.f
3331 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3332 const IDESC * UNUSED idesc = abuf->idesc;
3333 int cycles = 0;
3334 {
3335 int referenced = 0;
3336 int UNUSED insn_referenced = abuf->written;
3337 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3338 }
3339 return cycles;
3340 #undef FLD
3341 }
3342
3343 static int
3344 model_test_mulwhi (SIM_CPU *current_cpu, void *sem_arg)
3345 {
3346 #define FLD(f) abuf->fields.sfmt_st_plus.f
3347 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3348 const IDESC * UNUSED idesc = abuf->idesc;
3349 int cycles = 0;
3350 {
3351 int referenced = 0;
3352 int UNUSED insn_referenced = abuf->written;
3353 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3354 }
3355 return cycles;
3356 #undef FLD
3357 }
3358
3359 static int
3360 model_test_mulwlo (SIM_CPU *current_cpu, void *sem_arg)
3361 {
3362 #define FLD(f) abuf->fields.sfmt_st_plus.f
3363 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3364 const IDESC * UNUSED idesc = abuf->idesc;
3365 int cycles = 0;
3366 {
3367 int referenced = 0;
3368 int UNUSED insn_referenced = abuf->written;
3369 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3370 }
3371 return cycles;
3372 #undef FLD
3373 }
3374
3375 static int
3376 model_test_mv (SIM_CPU *current_cpu, void *sem_arg)
3377 {
3378 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3379 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3380 const IDESC * UNUSED idesc = abuf->idesc;
3381 int cycles = 0;
3382 {
3383 int referenced = 0;
3384 int UNUSED insn_referenced = abuf->written;
3385 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3386 }
3387 return cycles;
3388 #undef FLD
3389 }
3390
3391 static int
3392 model_test_mvfachi (SIM_CPU *current_cpu, void *sem_arg)
3393 {
3394 #define FLD(f) abuf->fields.sfmt_seth.f
3395 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3396 const IDESC * UNUSED idesc = abuf->idesc;
3397 int cycles = 0;
3398 {
3399 int referenced = 0;
3400 int UNUSED insn_referenced = abuf->written;
3401 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3402 }
3403 return cycles;
3404 #undef FLD
3405 }
3406
3407 static int
3408 model_test_mvfaclo (SIM_CPU *current_cpu, void *sem_arg)
3409 {
3410 #define FLD(f) abuf->fields.sfmt_seth.f
3411 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3412 const IDESC * UNUSED idesc = abuf->idesc;
3413 int cycles = 0;
3414 {
3415 int referenced = 0;
3416 int UNUSED insn_referenced = abuf->written;
3417 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3418 }
3419 return cycles;
3420 #undef FLD
3421 }
3422
3423 static int
3424 model_test_mvfacmi (SIM_CPU *current_cpu, void *sem_arg)
3425 {
3426 #define FLD(f) abuf->fields.sfmt_seth.f
3427 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3428 const IDESC * UNUSED idesc = abuf->idesc;
3429 int cycles = 0;
3430 {
3431 int referenced = 0;
3432 int UNUSED insn_referenced = abuf->written;
3433 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3434 }
3435 return cycles;
3436 #undef FLD
3437 }
3438
3439 static int
3440 model_test_mvfc (SIM_CPU *current_cpu, void *sem_arg)
3441 {
3442 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3443 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3444 const IDESC * UNUSED idesc = abuf->idesc;
3445 int cycles = 0;
3446 {
3447 int referenced = 0;
3448 int UNUSED insn_referenced = abuf->written;
3449 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3450 }
3451 return cycles;
3452 #undef FLD
3453 }
3454
3455 static int
3456 model_test_mvtachi (SIM_CPU *current_cpu, void *sem_arg)
3457 {
3458 #define FLD(f) abuf->fields.sfmt_st_plus.f
3459 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3460 const IDESC * UNUSED idesc = abuf->idesc;
3461 int cycles = 0;
3462 {
3463 int referenced = 0;
3464 int UNUSED insn_referenced = abuf->written;
3465 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3466 }
3467 return cycles;
3468 #undef FLD
3469 }
3470
3471 static int
3472 model_test_mvtaclo (SIM_CPU *current_cpu, void *sem_arg)
3473 {
3474 #define FLD(f) abuf->fields.sfmt_st_plus.f
3475 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3476 const IDESC * UNUSED idesc = abuf->idesc;
3477 int cycles = 0;
3478 {
3479 int referenced = 0;
3480 int UNUSED insn_referenced = abuf->written;
3481 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3482 }
3483 return cycles;
3484 #undef FLD
3485 }
3486
3487 static int
3488 model_test_mvtc (SIM_CPU *current_cpu, void *sem_arg)
3489 {
3490 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3491 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3492 const IDESC * UNUSED idesc = abuf->idesc;
3493 int cycles = 0;
3494 {
3495 int referenced = 0;
3496 int UNUSED insn_referenced = abuf->written;
3497 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3498 }
3499 return cycles;
3500 #undef FLD
3501 }
3502
3503 static int
3504 model_test_neg (SIM_CPU *current_cpu, void *sem_arg)
3505 {
3506 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3507 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3508 const IDESC * UNUSED idesc = abuf->idesc;
3509 int cycles = 0;
3510 {
3511 int referenced = 0;
3512 int UNUSED insn_referenced = abuf->written;
3513 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3514 }
3515 return cycles;
3516 #undef FLD
3517 }
3518
3519 static int
3520 model_test_nop (SIM_CPU *current_cpu, void *sem_arg)
3521 {
3522 #define FLD(f) abuf->fields.sfmt_empty.f
3523 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3524 const IDESC * UNUSED idesc = abuf->idesc;
3525 int cycles = 0;
3526 {
3527 int referenced = 0;
3528 int UNUSED insn_referenced = abuf->written;
3529 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3530 }
3531 return cycles;
3532 #undef FLD
3533 }
3534
3535 static int
3536 model_test_not (SIM_CPU *current_cpu, void *sem_arg)
3537 {
3538 #define FLD(f) abuf->fields.sfmt_ld_plus.f
3539 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3540 const IDESC * UNUSED idesc = abuf->idesc;
3541 int cycles = 0;
3542 {
3543 int referenced = 0;
3544 int UNUSED insn_referenced = abuf->written;
3545 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3546 }
3547 return cycles;
3548 #undef FLD
3549 }
3550
3551 static int
3552 model_test_rac (SIM_CPU *current_cpu, void *sem_arg)
3553 {
3554 #define FLD(f) abuf->fields.sfmt_empty.f
3555 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3556 const IDESC * UNUSED idesc = abuf->idesc;
3557 int cycles = 0;
3558 {
3559 int referenced = 0;
3560 int UNUSED insn_referenced = abuf->written;
3561 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3562 }
3563 return cycles;
3564 #undef FLD
3565 }
3566
3567 static int
3568 model_test_rach (SIM_CPU *current_cpu, void *sem_arg)
3569 {
3570 #define FLD(f) abuf->fields.sfmt_empty.f
3571 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3572 const IDESC * UNUSED idesc = abuf->idesc;
3573 int cycles = 0;
3574 {
3575 int referenced = 0;
3576 int UNUSED insn_referenced = abuf->written;
3577 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3578 }
3579 return cycles;
3580 #undef FLD
3581 }
3582
3583 static int
3584 model_test_rte (SIM_CPU *current_cpu, void *sem_arg)
3585 {
3586 #define FLD(f) abuf->fields.sfmt_empty.f
3587 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3588 const IDESC * UNUSED idesc = abuf->idesc;
3589 int cycles = 0;
3590 {
3591 int referenced = 0;
3592 int UNUSED insn_referenced = abuf->written;
3593 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3594 }
3595 return cycles;
3596 #undef FLD
3597 }
3598
3599 static int
3600 model_test_seth (SIM_CPU *current_cpu, void *sem_arg)
3601 {
3602 #define FLD(f) abuf->fields.sfmt_seth.f
3603 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3604 const IDESC * UNUSED idesc = abuf->idesc;
3605 int cycles = 0;
3606 {
3607 int referenced = 0;
3608 int UNUSED insn_referenced = abuf->written;
3609 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3610 }
3611 return cycles;
3612 #undef FLD
3613 }
3614
3615 static int
3616 model_test_sll (SIM_CPU *current_cpu, void *sem_arg)
3617 {
3618 #define FLD(f) abuf->fields.sfmt_add.f
3619 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3620 const IDESC * UNUSED idesc = abuf->idesc;
3621 int cycles = 0;
3622 {
3623 int referenced = 0;
3624 int UNUSED insn_referenced = abuf->written;
3625 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3626 }
3627 return cycles;
3628 #undef FLD
3629 }
3630
3631 static int
3632 model_test_sll3 (SIM_CPU *current_cpu, void *sem_arg)
3633 {
3634 #define FLD(f) abuf->fields.sfmt_add3.f
3635 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3636 const IDESC * UNUSED idesc = abuf->idesc;
3637 int cycles = 0;
3638 {
3639 int referenced = 0;
3640 int UNUSED insn_referenced = abuf->written;
3641 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3642 }
3643 return cycles;
3644 #undef FLD
3645 }
3646
3647 static int
3648 model_test_slli (SIM_CPU *current_cpu, void *sem_arg)
3649 {
3650 #define FLD(f) abuf->fields.sfmt_slli.f
3651 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3652 const IDESC * UNUSED idesc = abuf->idesc;
3653 int cycles = 0;
3654 {
3655 int referenced = 0;
3656 int UNUSED insn_referenced = abuf->written;
3657 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3658 }
3659 return cycles;
3660 #undef FLD
3661 }
3662
3663 static int
3664 model_test_sra (SIM_CPU *current_cpu, void *sem_arg)
3665 {
3666 #define FLD(f) abuf->fields.sfmt_add.f
3667 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3668 const IDESC * UNUSED idesc = abuf->idesc;
3669 int cycles = 0;
3670 {
3671 int referenced = 0;
3672 int UNUSED insn_referenced = abuf->written;
3673 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3674 }
3675 return cycles;
3676 #undef FLD
3677 }
3678
3679 static int
3680 model_test_sra3 (SIM_CPU *current_cpu, void *sem_arg)
3681 {
3682 #define FLD(f) abuf->fields.sfmt_add3.f
3683 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3684 const IDESC * UNUSED idesc = abuf->idesc;
3685 int cycles = 0;
3686 {
3687 int referenced = 0;
3688 int UNUSED insn_referenced = abuf->written;
3689 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3690 }
3691 return cycles;
3692 #undef FLD
3693 }
3694
3695 static int
3696 model_test_srai (SIM_CPU *current_cpu, void *sem_arg)
3697 {
3698 #define FLD(f) abuf->fields.sfmt_slli.f
3699 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3700 const IDESC * UNUSED idesc = abuf->idesc;
3701 int cycles = 0;
3702 {
3703 int referenced = 0;
3704 int UNUSED insn_referenced = abuf->written;
3705 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3706 }
3707 return cycles;
3708 #undef FLD
3709 }
3710
3711 static int
3712 model_test_srl (SIM_CPU *current_cpu, void *sem_arg)
3713 {
3714 #define FLD(f) abuf->fields.sfmt_add.f
3715 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3716 const IDESC * UNUSED idesc = abuf->idesc;
3717 int cycles = 0;
3718 {
3719 int referenced = 0;
3720 int UNUSED insn_referenced = abuf->written;
3721 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3722 }
3723 return cycles;
3724 #undef FLD
3725 }
3726
3727 static int
3728 model_test_srl3 (SIM_CPU *current_cpu, void *sem_arg)
3729 {
3730 #define FLD(f) abuf->fields.sfmt_add3.f
3731 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3732 const IDESC * UNUSED idesc = abuf->idesc;
3733 int cycles = 0;
3734 {
3735 int referenced = 0;
3736 int UNUSED insn_referenced = abuf->written;
3737 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3738 }
3739 return cycles;
3740 #undef FLD
3741 }
3742
3743 static int
3744 model_test_srli (SIM_CPU *current_cpu, void *sem_arg)
3745 {
3746 #define FLD(f) abuf->fields.sfmt_slli.f
3747 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3748 const IDESC * UNUSED idesc = abuf->idesc;
3749 int cycles = 0;
3750 {
3751 int referenced = 0;
3752 int UNUSED insn_referenced = abuf->written;
3753 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3754 }
3755 return cycles;
3756 #undef FLD
3757 }
3758
3759 static int
3760 model_test_st (SIM_CPU *current_cpu, void *sem_arg)
3761 {
3762 #define FLD(f) abuf->fields.sfmt_st_plus.f
3763 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3764 const IDESC * UNUSED idesc = abuf->idesc;
3765 int cycles = 0;
3766 {
3767 int referenced = 0;
3768 int UNUSED insn_referenced = abuf->written;
3769 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3770 }
3771 return cycles;
3772 #undef FLD
3773 }
3774
3775 static int
3776 model_test_st_d (SIM_CPU *current_cpu, void *sem_arg)
3777 {
3778 #define FLD(f) abuf->fields.sfmt_st_d.f
3779 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3780 const IDESC * UNUSED idesc = abuf->idesc;
3781 int cycles = 0;
3782 {
3783 int referenced = 0;
3784 int UNUSED insn_referenced = abuf->written;
3785 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3786 }
3787 return cycles;
3788 #undef FLD
3789 }
3790
3791 static int
3792 model_test_stb (SIM_CPU *current_cpu, void *sem_arg)
3793 {
3794 #define FLD(f) abuf->fields.sfmt_st_plus.f
3795 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3796 const IDESC * UNUSED idesc = abuf->idesc;
3797 int cycles = 0;
3798 {
3799 int referenced = 0;
3800 int UNUSED insn_referenced = abuf->written;
3801 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3802 }
3803 return cycles;
3804 #undef FLD
3805 }
3806
3807 static int
3808 model_test_stb_d (SIM_CPU *current_cpu, void *sem_arg)
3809 {
3810 #define FLD(f) abuf->fields.sfmt_st_d.f
3811 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3812 const IDESC * UNUSED idesc = abuf->idesc;
3813 int cycles = 0;
3814 {
3815 int referenced = 0;
3816 int UNUSED insn_referenced = abuf->written;
3817 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3818 }
3819 return cycles;
3820 #undef FLD
3821 }
3822
3823 static int
3824 model_test_sth (SIM_CPU *current_cpu, void *sem_arg)
3825 {
3826 #define FLD(f) abuf->fields.sfmt_st_plus.f
3827 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3828 const IDESC * UNUSED idesc = abuf->idesc;
3829 int cycles = 0;
3830 {
3831 int referenced = 0;
3832 int UNUSED insn_referenced = abuf->written;
3833 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3834 }
3835 return cycles;
3836 #undef FLD
3837 }
3838
3839 static int
3840 model_test_sth_d (SIM_CPU *current_cpu, void *sem_arg)
3841 {
3842 #define FLD(f) abuf->fields.sfmt_st_d.f
3843 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3844 const IDESC * UNUSED idesc = abuf->idesc;
3845 int cycles = 0;
3846 {
3847 int referenced = 0;
3848 int UNUSED insn_referenced = abuf->written;
3849 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3850 }
3851 return cycles;
3852 #undef FLD
3853 }
3854
3855 static int
3856 model_test_st_plus (SIM_CPU *current_cpu, void *sem_arg)
3857 {
3858 #define FLD(f) abuf->fields.sfmt_st_plus.f
3859 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3860 const IDESC * UNUSED idesc = abuf->idesc;
3861 int cycles = 0;
3862 {
3863 int referenced = 0;
3864 int UNUSED insn_referenced = abuf->written;
3865 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3866 }
3867 return cycles;
3868 #undef FLD
3869 }
3870
3871 static int
3872 model_test_st_minus (SIM_CPU *current_cpu, void *sem_arg)
3873 {
3874 #define FLD(f) abuf->fields.sfmt_st_plus.f
3875 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3876 const IDESC * UNUSED idesc = abuf->idesc;
3877 int cycles = 0;
3878 {
3879 int referenced = 0;
3880 int UNUSED insn_referenced = abuf->written;
3881 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3882 }
3883 return cycles;
3884 #undef FLD
3885 }
3886
3887 static int
3888 model_test_sub (SIM_CPU *current_cpu, void *sem_arg)
3889 {
3890 #define FLD(f) abuf->fields.sfmt_add.f
3891 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3892 const IDESC * UNUSED idesc = abuf->idesc;
3893 int cycles = 0;
3894 {
3895 int referenced = 0;
3896 int UNUSED insn_referenced = abuf->written;
3897 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3898 }
3899 return cycles;
3900 #undef FLD
3901 }
3902
3903 static int
3904 model_test_subv (SIM_CPU *current_cpu, void *sem_arg)
3905 {
3906 #define FLD(f) abuf->fields.sfmt_add.f
3907 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3908 const IDESC * UNUSED idesc = abuf->idesc;
3909 int cycles = 0;
3910 {
3911 int referenced = 0;
3912 int UNUSED insn_referenced = abuf->written;
3913 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3914 }
3915 return cycles;
3916 #undef FLD
3917 }
3918
3919 static int
3920 model_test_subx (SIM_CPU *current_cpu, void *sem_arg)
3921 {
3922 #define FLD(f) abuf->fields.sfmt_add.f
3923 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3924 const IDESC * UNUSED idesc = abuf->idesc;
3925 int cycles = 0;
3926 {
3927 int referenced = 0;
3928 int UNUSED insn_referenced = abuf->written;
3929 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3930 }
3931 return cycles;
3932 #undef FLD
3933 }
3934
3935 static int
3936 model_test_trap (SIM_CPU *current_cpu, void *sem_arg)
3937 {
3938 #define FLD(f) abuf->fields.sfmt_trap.f
3939 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3940 const IDESC * UNUSED idesc = abuf->idesc;
3941 int cycles = 0;
3942 {
3943 int referenced = 0;
3944 int UNUSED insn_referenced = abuf->written;
3945 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3946 }
3947 return cycles;
3948 #undef FLD
3949 }
3950
3951 static int
3952 model_test_unlock (SIM_CPU *current_cpu, void *sem_arg)
3953 {
3954 #define FLD(f) abuf->fields.sfmt_st_plus.f
3955 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3956 const IDESC * UNUSED idesc = abuf->idesc;
3957 int cycles = 0;
3958 {
3959 int referenced = 0;
3960 int UNUSED insn_referenced = abuf->written;
3961 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3962 }
3963 return cycles;
3964 #undef FLD
3965 }
3966
3967 static int
3968 model_test_clrpsw (SIM_CPU *current_cpu, void *sem_arg)
3969 {
3970 #define FLD(f) abuf->fields.sfmt_clrpsw.f
3971 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3972 const IDESC * UNUSED idesc = abuf->idesc;
3973 int cycles = 0;
3974 {
3975 int referenced = 0;
3976 int UNUSED insn_referenced = abuf->written;
3977 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3978 }
3979 return cycles;
3980 #undef FLD
3981 }
3982
3983 static int
3984 model_test_setpsw (SIM_CPU *current_cpu, void *sem_arg)
3985 {
3986 #define FLD(f) abuf->fields.sfmt_clrpsw.f
3987 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
3988 const IDESC * UNUSED idesc = abuf->idesc;
3989 int cycles = 0;
3990 {
3991 int referenced = 0;
3992 int UNUSED insn_referenced = abuf->written;
3993 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
3994 }
3995 return cycles;
3996 #undef FLD
3997 }
3998
3999 static int
4000 model_test_bset (SIM_CPU *current_cpu, void *sem_arg)
4001 {
4002 #define FLD(f) abuf->fields.sfmt_bset.f
4003 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
4004 const IDESC * UNUSED idesc = abuf->idesc;
4005 int cycles = 0;
4006 {
4007 int referenced = 0;
4008 int UNUSED insn_referenced = abuf->written;
4009 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
4010 }
4011 return cycles;
4012 #undef FLD
4013 }
4014
4015 static int
4016 model_test_bclr (SIM_CPU *current_cpu, void *sem_arg)
4017 {
4018 #define FLD(f) abuf->fields.sfmt_bset.f
4019 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
4020 const IDESC * UNUSED idesc = abuf->idesc;
4021 int cycles = 0;
4022 {
4023 int referenced = 0;
4024 int UNUSED insn_referenced = abuf->written;
4025 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
4026 }
4027 return cycles;
4028 #undef FLD
4029 }
4030
4031 static int
4032 model_test_btst (SIM_CPU *current_cpu, void *sem_arg)
4033 {
4034 #define FLD(f) abuf->fields.sfmt_bset.f
4035 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg);
4036 const IDESC * UNUSED idesc = abuf->idesc;
4037 int cycles = 0;
4038 {
4039 int referenced = 0;
4040 int UNUSED insn_referenced = abuf->written;
4041 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced);
4042 }
4043 return cycles;
4044 #undef FLD
4045 }
4046
4047 /* We assume UNIT_NONE == 0 because the tables don't always terminate
4048 entries with it. */
4049
4050 /* Model timing data for `m32r/d'. */
4051
4052 static const INSN_TIMING m32r_d_timing[] = {
4053 { M32RBF_INSN_X_INVALID, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4054 { M32RBF_INSN_X_AFTER, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4055 { M32RBF_INSN_X_BEFORE, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4056 { M32RBF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4057 { M32RBF_INSN_X_CHAIN, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4058 { M32RBF_INSN_X_BEGIN, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4059 { M32RBF_INSN_ADD, model_m32r_d_add, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4060 { M32RBF_INSN_ADD3, model_m32r_d_add3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4061 { M32RBF_INSN_AND, model_m32r_d_and, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4062 { M32RBF_INSN_AND3, model_m32r_d_and3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4063 { M32RBF_INSN_OR, model_m32r_d_or, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4064 { M32RBF_INSN_OR3, model_m32r_d_or3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4065 { M32RBF_INSN_XOR, model_m32r_d_xor, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4066 { M32RBF_INSN_XOR3, model_m32r_d_xor3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4067 { M32RBF_INSN_ADDI, model_m32r_d_addi, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4068 { M32RBF_INSN_ADDV, model_m32r_d_addv, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4069 { M32RBF_INSN_ADDV3, model_m32r_d_addv3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4070 { M32RBF_INSN_ADDX, model_m32r_d_addx, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4071 { M32RBF_INSN_BC8, model_m32r_d_bc8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4072 { M32RBF_INSN_BC24, model_m32r_d_bc24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4073 { M32RBF_INSN_BEQ, model_m32r_d_beq, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } },
4074 { M32RBF_INSN_BEQZ, model_m32r_d_beqz, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } },
4075 { M32RBF_INSN_BGEZ, model_m32r_d_bgez, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } },
4076 { M32RBF_INSN_BGTZ, model_m32r_d_bgtz, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } },
4077 { M32RBF_INSN_BLEZ, model_m32r_d_blez, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } },
4078 { M32RBF_INSN_BLTZ, model_m32r_d_bltz, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } },
4079 { M32RBF_INSN_BNEZ, model_m32r_d_bnez, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } },
4080 { M32RBF_INSN_BL8, model_m32r_d_bl8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4081 { M32RBF_INSN_BL24, model_m32r_d_bl24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4082 { M32RBF_INSN_BNC8, model_m32r_d_bnc8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4083 { M32RBF_INSN_BNC24, model_m32r_d_bnc24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4084 { M32RBF_INSN_BNE, model_m32r_d_bne, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } },
4085 { M32RBF_INSN_BRA8, model_m32r_d_bra8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4086 { M32RBF_INSN_BRA24, model_m32r_d_bra24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4087 { M32RBF_INSN_CMP, model_m32r_d_cmp, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } },
4088 { M32RBF_INSN_CMPI, model_m32r_d_cmpi, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } },
4089 { M32RBF_INSN_CMPU, model_m32r_d_cmpu, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } },
4090 { M32RBF_INSN_CMPUI, model_m32r_d_cmpui, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } },
4091 { M32RBF_INSN_DIV, model_m32r_d_div, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } },
4092 { M32RBF_INSN_DIVU, model_m32r_d_divu, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } },
4093 { M32RBF_INSN_REM, model_m32r_d_rem, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } },
4094 { M32RBF_INSN_REMU, model_m32r_d_remu, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } },
4095 { M32RBF_INSN_JL, model_m32r_d_jl, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4096 { M32RBF_INSN_JMP, model_m32r_d_jmp, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } },
4097 { M32RBF_INSN_LD, model_m32r_d_ld, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } },
4098 { M32RBF_INSN_LD_D, model_m32r_d_ld_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } },
4099 { M32RBF_INSN_LDB, model_m32r_d_ldb, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } },
4100 { M32RBF_INSN_LDB_D, model_m32r_d_ldb_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } },
4101 { M32RBF_INSN_LDH, model_m32r_d_ldh, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } },
4102 { M32RBF_INSN_LDH_D, model_m32r_d_ldh_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } },
4103 { M32RBF_INSN_LDUB, model_m32r_d_ldub, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } },
4104 { M32RBF_INSN_LDUB_D, model_m32r_d_ldub_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } },
4105 { M32RBF_INSN_LDUH, model_m32r_d_lduh, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } },
4106 { M32RBF_INSN_LDUH_D, model_m32r_d_lduh_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } },
4107 { M32RBF_INSN_LD_PLUS, model_m32r_d_ld_plus, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 }, { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } },
4108 { M32RBF_INSN_LD24, model_m32r_d_ld24, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4109 { M32RBF_INSN_LDI8, model_m32r_d_ldi8, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4110 { M32RBF_INSN_LDI16, model_m32r_d_ldi16, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4111 { M32RBF_INSN_LOCK, model_m32r_d_lock, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } },
4112 { M32RBF_INSN_MACHI, model_m32r_d_machi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4113 { M32RBF_INSN_MACLO, model_m32r_d_maclo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4114 { M32RBF_INSN_MACWHI, model_m32r_d_macwhi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4115 { M32RBF_INSN_MACWLO, model_m32r_d_macwlo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4116 { M32RBF_INSN_MUL, model_m32r_d_mul, { { (int) UNIT_M32R_D_U_EXEC, 1, 4 } } },
4117 { M32RBF_INSN_MULHI, model_m32r_d_mulhi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4118 { M32RBF_INSN_MULLO, model_m32r_d_mullo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4119 { M32RBF_INSN_MULWHI, model_m32r_d_mulwhi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4120 { M32RBF_INSN_MULWLO, model_m32r_d_mulwlo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4121 { M32RBF_INSN_MV, model_m32r_d_mv, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4122 { M32RBF_INSN_MVFACHI, model_m32r_d_mvfachi, { { (int) UNIT_M32R_D_U_EXEC, 1, 2 } } },
4123 { M32RBF_INSN_MVFACLO, model_m32r_d_mvfaclo, { { (int) UNIT_M32R_D_U_EXEC, 1, 2 } } },
4124 { M32RBF_INSN_MVFACMI, model_m32r_d_mvfacmi, { { (int) UNIT_M32R_D_U_EXEC, 1, 2 } } },
4125 { M32RBF_INSN_MVFC, model_m32r_d_mvfc, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4126 { M32RBF_INSN_MVTACHI, model_m32r_d_mvtachi, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4127 { M32RBF_INSN_MVTACLO, model_m32r_d_mvtaclo, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4128 { M32RBF_INSN_MVTC, model_m32r_d_mvtc, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4129 { M32RBF_INSN_NEG, model_m32r_d_neg, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4130 { M32RBF_INSN_NOP, model_m32r_d_nop, { { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } },
4131 { M32RBF_INSN_NOT, model_m32r_d_not, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4132 { M32RBF_INSN_RAC, model_m32r_d_rac, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4133 { M32RBF_INSN_RACH, model_m32r_d_rach, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } },
4134 { M32RBF_INSN_RTE, model_m32r_d_rte, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4135 { M32RBF_INSN_SETH, model_m32r_d_seth, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4136 { M32RBF_INSN_SLL, model_m32r_d_sll, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4137 { M32RBF_INSN_SLL3, model_m32r_d_sll3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4138 { M32RBF_INSN_SLLI, model_m32r_d_slli, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4139 { M32RBF_INSN_SRA, model_m32r_d_sra, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4140 { M32RBF_INSN_SRA3, model_m32r_d_sra3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4141 { M32RBF_INSN_SRAI, model_m32r_d_srai, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4142 { M32RBF_INSN_SRL, model_m32r_d_srl, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4143 { M32RBF_INSN_SRL3, model_m32r_d_srl3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4144 { M32RBF_INSN_SRLI, model_m32r_d_srli, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4145 { M32RBF_INSN_ST, model_m32r_d_st, { { (int) UNIT_M32R_D_U_STORE, 1, 1 } } },
4146 { M32RBF_INSN_ST_D, model_m32r_d_st_d, { { (int) UNIT_M32R_D_U_STORE, 1, 2 } } },
4147 { M32RBF_INSN_STB, model_m32r_d_stb, { { (int) UNIT_M32R_D_U_STORE, 1, 1 } } },
4148 { M32RBF_INSN_STB_D, model_m32r_d_stb_d, { { (int) UNIT_M32R_D_U_STORE, 1, 2 } } },
4149 { M32RBF_INSN_STH, model_m32r_d_sth, { { (int) UNIT_M32R_D_U_STORE, 1, 1 } } },
4150 { M32RBF_INSN_STH_D, model_m32r_d_sth_d, { { (int) UNIT_M32R_D_U_STORE, 1, 2 } } },
4151 { M32RBF_INSN_ST_PLUS, model_m32r_d_st_plus, { { (int) UNIT_M32R_D_U_STORE, 1, 1 }, { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } },
4152 { M32RBF_INSN_ST_MINUS, model_m32r_d_st_minus, { { (int) UNIT_M32R_D_U_STORE, 1, 1 }, { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } },
4153 { M32RBF_INSN_SUB, model_m32r_d_sub, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4154 { M32RBF_INSN_SUBV, model_m32r_d_subv, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4155 { M32RBF_INSN_SUBX, model_m32r_d_subx, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4156 { M32RBF_INSN_TRAP, model_m32r_d_trap, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4157 { M32RBF_INSN_UNLOCK, model_m32r_d_unlock, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } },
4158 { M32RBF_INSN_CLRPSW, model_m32r_d_clrpsw, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4159 { M32RBF_INSN_SETPSW, model_m32r_d_setpsw, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4160 { M32RBF_INSN_BSET, model_m32r_d_bset, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4161 { M32RBF_INSN_BCLR, model_m32r_d_bclr, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4162 { M32RBF_INSN_BTST, model_m32r_d_btst, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } },
4163 };
4164
4165 /* Model timing data for `test'. */
4166
4167 static const INSN_TIMING test_timing[] = {
4168 { M32RBF_INSN_X_INVALID, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4169 { M32RBF_INSN_X_AFTER, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4170 { M32RBF_INSN_X_BEFORE, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4171 { M32RBF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4172 { M32RBF_INSN_X_CHAIN, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4173 { M32RBF_INSN_X_BEGIN, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4174 { M32RBF_INSN_ADD, model_test_add, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4175 { M32RBF_INSN_ADD3, model_test_add3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4176 { M32RBF_INSN_AND, model_test_and, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4177 { M32RBF_INSN_AND3, model_test_and3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4178 { M32RBF_INSN_OR, model_test_or, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4179 { M32RBF_INSN_OR3, model_test_or3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4180 { M32RBF_INSN_XOR, model_test_xor, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4181 { M32RBF_INSN_XOR3, model_test_xor3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4182 { M32RBF_INSN_ADDI, model_test_addi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4183 { M32RBF_INSN_ADDV, model_test_addv, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4184 { M32RBF_INSN_ADDV3, model_test_addv3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4185 { M32RBF_INSN_ADDX, model_test_addx, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4186 { M32RBF_INSN_BC8, model_test_bc8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4187 { M32RBF_INSN_BC24, model_test_bc24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4188 { M32RBF_INSN_BEQ, model_test_beq, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4189 { M32RBF_INSN_BEQZ, model_test_beqz, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4190 { M32RBF_INSN_BGEZ, model_test_bgez, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4191 { M32RBF_INSN_BGTZ, model_test_bgtz, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4192 { M32RBF_INSN_BLEZ, model_test_blez, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4193 { M32RBF_INSN_BLTZ, model_test_bltz, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4194 { M32RBF_INSN_BNEZ, model_test_bnez, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4195 { M32RBF_INSN_BL8, model_test_bl8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4196 { M32RBF_INSN_BL24, model_test_bl24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4197 { M32RBF_INSN_BNC8, model_test_bnc8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4198 { M32RBF_INSN_BNC24, model_test_bnc24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4199 { M32RBF_INSN_BNE, model_test_bne, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4200 { M32RBF_INSN_BRA8, model_test_bra8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4201 { M32RBF_INSN_BRA24, model_test_bra24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4202 { M32RBF_INSN_CMP, model_test_cmp, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4203 { M32RBF_INSN_CMPI, model_test_cmpi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4204 { M32RBF_INSN_CMPU, model_test_cmpu, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4205 { M32RBF_INSN_CMPUI, model_test_cmpui, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4206 { M32RBF_INSN_DIV, model_test_div, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4207 { M32RBF_INSN_DIVU, model_test_divu, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4208 { M32RBF_INSN_REM, model_test_rem, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4209 { M32RBF_INSN_REMU, model_test_remu, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4210 { M32RBF_INSN_JL, model_test_jl, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4211 { M32RBF_INSN_JMP, model_test_jmp, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4212 { M32RBF_INSN_LD, model_test_ld, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4213 { M32RBF_INSN_LD_D, model_test_ld_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4214 { M32RBF_INSN_LDB, model_test_ldb, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4215 { M32RBF_INSN_LDB_D, model_test_ldb_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4216 { M32RBF_INSN_LDH, model_test_ldh, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4217 { M32RBF_INSN_LDH_D, model_test_ldh_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4218 { M32RBF_INSN_LDUB, model_test_ldub, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4219 { M32RBF_INSN_LDUB_D, model_test_ldub_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4220 { M32RBF_INSN_LDUH, model_test_lduh, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4221 { M32RBF_INSN_LDUH_D, model_test_lduh_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4222 { M32RBF_INSN_LD_PLUS, model_test_ld_plus, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4223 { M32RBF_INSN_LD24, model_test_ld24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4224 { M32RBF_INSN_LDI8, model_test_ldi8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4225 { M32RBF_INSN_LDI16, model_test_ldi16, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4226 { M32RBF_INSN_LOCK, model_test_lock, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4227 { M32RBF_INSN_MACHI, model_test_machi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4228 { M32RBF_INSN_MACLO, model_test_maclo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4229 { M32RBF_INSN_MACWHI, model_test_macwhi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4230 { M32RBF_INSN_MACWLO, model_test_macwlo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4231 { M32RBF_INSN_MUL, model_test_mul, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4232 { M32RBF_INSN_MULHI, model_test_mulhi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4233 { M32RBF_INSN_MULLO, model_test_mullo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4234 { M32RBF_INSN_MULWHI, model_test_mulwhi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4235 { M32RBF_INSN_MULWLO, model_test_mulwlo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4236 { M32RBF_INSN_MV, model_test_mv, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4237 { M32RBF_INSN_MVFACHI, model_test_mvfachi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4238 { M32RBF_INSN_MVFACLO, model_test_mvfaclo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4239 { M32RBF_INSN_MVFACMI, model_test_mvfacmi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4240 { M32RBF_INSN_MVFC, model_test_mvfc, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4241 { M32RBF_INSN_MVTACHI, model_test_mvtachi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4242 { M32RBF_INSN_MVTACLO, model_test_mvtaclo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4243 { M32RBF_INSN_MVTC, model_test_mvtc, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4244 { M32RBF_INSN_NEG, model_test_neg, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4245 { M32RBF_INSN_NOP, model_test_nop, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4246 { M32RBF_INSN_NOT, model_test_not, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4247 { M32RBF_INSN_RAC, model_test_rac, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4248 { M32RBF_INSN_RACH, model_test_rach, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4249 { M32RBF_INSN_RTE, model_test_rte, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4250 { M32RBF_INSN_SETH, model_test_seth, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4251 { M32RBF_INSN_SLL, model_test_sll, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4252 { M32RBF_INSN_SLL3, model_test_sll3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4253 { M32RBF_INSN_SLLI, model_test_slli, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4254 { M32RBF_INSN_SRA, model_test_sra, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4255 { M32RBF_INSN_SRA3, model_test_sra3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4256 { M32RBF_INSN_SRAI, model_test_srai, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4257 { M32RBF_INSN_SRL, model_test_srl, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4258 { M32RBF_INSN_SRL3, model_test_srl3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4259 { M32RBF_INSN_SRLI, model_test_srli, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4260 { M32RBF_INSN_ST, model_test_st, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4261 { M32RBF_INSN_ST_D, model_test_st_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4262 { M32RBF_INSN_STB, model_test_stb, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4263 { M32RBF_INSN_STB_D, model_test_stb_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4264 { M32RBF_INSN_STH, model_test_sth, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4265 { M32RBF_INSN_STH_D, model_test_sth_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4266 { M32RBF_INSN_ST_PLUS, model_test_st_plus, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4267 { M32RBF_INSN_ST_MINUS, model_test_st_minus, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4268 { M32RBF_INSN_SUB, model_test_sub, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4269 { M32RBF_INSN_SUBV, model_test_subv, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4270 { M32RBF_INSN_SUBX, model_test_subx, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4271 { M32RBF_INSN_TRAP, model_test_trap, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4272 { M32RBF_INSN_UNLOCK, model_test_unlock, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4273 { M32RBF_INSN_CLRPSW, model_test_clrpsw, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4274 { M32RBF_INSN_SETPSW, model_test_setpsw, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4275 { M32RBF_INSN_BSET, model_test_bset, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4276 { M32RBF_INSN_BCLR, model_test_bclr, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4277 { M32RBF_INSN_BTST, model_test_btst, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } },
4278 };
4279
4280 #endif /* WITH_PROFILE_MODEL_P */
4281
4282 static void
4283 m32r_d_model_init (SIM_CPU *cpu)
4284 {
4285 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_M32R_D_DATA));
4286 }
4287
4288 static void
4289 test_model_init (SIM_CPU *cpu)
4290 {
4291 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_TEST_DATA));
4292 }
4293
4294 #if WITH_PROFILE_MODEL_P
4295 #define TIMING_DATA(td) td
4296 #else
4297 #define TIMING_DATA(td) 0
4298 #endif
4299
4300 static const MODEL m32r_models[] =
4301 {
4302 { "m32r/d", & m32r_mach, MODEL_M32R_D, TIMING_DATA (& m32r_d_timing[0]), m32r_d_model_init },
4303 { "test", & m32r_mach, MODEL_TEST, TIMING_DATA (& test_timing[0]), test_model_init },
4304 { 0 }
4305 };
4306
4307 /* The properties of this cpu's implementation. */
4308
4309 static const MACH_IMP_PROPERTIES m32rbf_imp_properties =
4310 {
4311 sizeof (SIM_CPU),
4312 #if WITH_SCACHE
4313 sizeof (SCACHE)
4314 #else
4315 0
4316 #endif
4317 };
4318
4319
4320 static void
4321 m32rbf_prepare_run (SIM_CPU *cpu)
4322 {
4323 if (CPU_IDESC (cpu) == NULL)
4324 m32rbf_init_idesc_table (cpu);
4325 }
4326
4327 static const CGEN_INSN *
4328 m32rbf_get_idata (SIM_CPU *cpu, int inum)
4329 {
4330 return CPU_IDESC (cpu) [inum].idata;
4331 }
4332
4333 static void
4334 m32r_init_cpu (SIM_CPU *cpu)
4335 {
4336 CPU_REG_FETCH (cpu) = m32rbf_fetch_register;
4337 CPU_REG_STORE (cpu) = m32rbf_store_register;
4338 CPU_PC_FETCH (cpu) = m32rbf_h_pc_get;
4339 CPU_PC_STORE (cpu) = m32rbf_h_pc_set;
4340 CPU_GET_IDATA (cpu) = m32rbf_get_idata;
4341 CPU_MAX_INSNS (cpu) = M32RBF_INSN__MAX;
4342 CPU_INSN_NAME (cpu) = cgen_insn_name;
4343 CPU_FULL_ENGINE_FN (cpu) = m32rbf_engine_run_full;
4344 #if WITH_FAST
4345 CPU_FAST_ENGINE_FN (cpu) = m32rbf_engine_run_fast;
4346 #else
4347 CPU_FAST_ENGINE_FN (cpu) = m32rbf_engine_run_full;
4348 #endif
4349 }
4350
4351 const MACH m32r_mach =
4352 {
4353 "m32r", "m32r", MACH_M32R,
4354 32, 32, & m32r_models[0], & m32rbf_imp_properties,
4355 m32r_init_cpu,
4356 m32rbf_prepare_run
4357 };
4358