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