]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - sim/frv/sem.c
2003-10-06 Dave Brolley <brolley@redhat.com>
[thirdparty/binutils-gdb.git] / sim / frv / sem.c
CommitLineData
b34f6357
DB
1/* Simulator instruction semantics for frvbf.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
6
7This file is part of the GNU simulators.
8
9This program is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 2, or (at your option)
12any later version.
13
14This program is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License along
20with this program; if not, write to the Free Software Foundation, Inc.,
2159 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23*/
24
25#define WANT_CPU frvbf
26#define WANT_CPU_FRVBF
27
28#include "sim-main.h"
29#include "cgen-mem.h"
30#include "cgen-ops.h"
31
32#undef GET_ATTR
33#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
34#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_##attr)
35#else
36#define GET_ATTR(cpu, num, attr) CGEN_ATTR_VALUE (NULL, abuf->idesc->attrs, CGEN_INSN_/**/attr)
37#endif
38
39/* This is used so that we can compile two copies of the semantic code,
40 one with full feature support and one without that runs fast(er).
41 FAST_P, when desired, is defined on the command line, -DFAST_P=1. */
42#if FAST_P
43#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_semf_,fn)
44#undef TRACE_RESULT
45#define TRACE_RESULT(cpu, abuf, name, type, val)
46#else
47#define SEM_FN_NAME(cpu,fn) XCONCAT3 (cpu,_sem_,fn)
48#endif
49
50/* x-invalid: --invalid-- */
51
52static SEM_PC
53SEM_FN_NAME (frvbf,x_invalid) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
54{
55#define FLD(f) abuf->fields.fmt_empty.f
56 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
57 int UNUSED written = 0;
58 IADDR UNUSED pc = abuf->addr;
59 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
60
61 {
62 /* Update the recorded pc in the cpu state struct.
63 Only necessary for WITH_SCACHE case, but to avoid the
64 conditional compilation .... */
65 SET_H_PC (pc);
66 /* Virtual insns have zero size. Overwrite vpc with address of next insn
67 using the default-insn-bitsize spec. When executing insns in parallel
68 we may want to queue the fault and continue execution. */
69 vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
70 vpc = sim_engine_invalid_insn (current_cpu, pc, vpc);
71 }
72
73 return vpc;
74#undef FLD
75}
76
77/* x-after: --after-- */
78
79static SEM_PC
80SEM_FN_NAME (frvbf,x_after) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
81{
82#define FLD(f) abuf->fields.fmt_empty.f
83 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
84 int UNUSED written = 0;
85 IADDR UNUSED pc = abuf->addr;
86 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
87
88 {
89#if WITH_SCACHE_PBB_FRVBF
90 frvbf_pbb_after (current_cpu, sem_arg);
91#endif
92 }
93
94 return vpc;
95#undef FLD
96}
97
98/* x-before: --before-- */
99
100static SEM_PC
101SEM_FN_NAME (frvbf,x_before) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
102{
103#define FLD(f) abuf->fields.fmt_empty.f
104 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
105 int UNUSED written = 0;
106 IADDR UNUSED pc = abuf->addr;
107 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
108
109 {
110#if WITH_SCACHE_PBB_FRVBF
111 frvbf_pbb_before (current_cpu, sem_arg);
112#endif
113 }
114
115 return vpc;
116#undef FLD
117}
118
119/* x-cti-chain: --cti-chain-- */
120
121static SEM_PC
122SEM_FN_NAME (frvbf,x_cti_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
123{
124#define FLD(f) abuf->fields.fmt_empty.f
125 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
126 int UNUSED written = 0;
127 IADDR UNUSED pc = abuf->addr;
128 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
129
130 {
131#if WITH_SCACHE_PBB_FRVBF
132#ifdef DEFINE_SWITCH
133 vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
134 pbb_br_type, pbb_br_npc);
135 BREAK (sem);
136#else
137 /* FIXME: Allow provision of explicit ifmt spec in insn spec. */
138 vpc = frvbf_pbb_cti_chain (current_cpu, sem_arg,
139 CPU_PBB_BR_TYPE (current_cpu),
140 CPU_PBB_BR_NPC (current_cpu));
141#endif
142#endif
143 }
144
145 return vpc;
146#undef FLD
147}
148
149/* x-chain: --chain-- */
150
151static SEM_PC
152SEM_FN_NAME (frvbf,x_chain) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
153{
154#define FLD(f) abuf->fields.fmt_empty.f
155 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
156 int UNUSED written = 0;
157 IADDR UNUSED pc = abuf->addr;
158 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
159
160 {
161#if WITH_SCACHE_PBB_FRVBF
162 vpc = frvbf_pbb_chain (current_cpu, sem_arg);
163#ifdef DEFINE_SWITCH
164 BREAK (sem);
165#endif
166#endif
167 }
168
169 return vpc;
170#undef FLD
171}
172
173/* x-begin: --begin-- */
174
175static SEM_PC
176SEM_FN_NAME (frvbf,x_begin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
177{
178#define FLD(f) abuf->fields.fmt_empty.f
179 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
180 int UNUSED written = 0;
181 IADDR UNUSED pc = abuf->addr;
182 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 0);
183
184 {
185#if WITH_SCACHE_PBB_FRVBF
186#if defined DEFINE_SWITCH || defined FAST_P
187 /* In the switch case FAST_P is a constant, allowing several optimizations
188 in any called inline functions. */
189 vpc = frvbf_pbb_begin (current_cpu, FAST_P);
190#else
191#if 0 /* cgen engine can't handle dynamic fast/full switching yet. */
192 vpc = frvbf_pbb_begin (current_cpu, STATE_RUN_FAST_P (CPU_STATE (current_cpu)));
193#else
194 vpc = frvbf_pbb_begin (current_cpu, 0);
195#endif
196#endif
197#endif
198 }
199
200 return vpc;
201#undef FLD
202}
203
204/* add: add$pack $GRi,$GRj,$GRk */
205
206static SEM_PC
207SEM_FN_NAME (frvbf,add) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
208{
209#define FLD(f) abuf->fields.sfmt_addcc.f
210 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
211 int UNUSED written = 0;
212 IADDR UNUSED pc = abuf->addr;
213 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
214
215 {
216 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
217 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
218 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
219 }
220
221 return vpc;
222#undef FLD
223}
224
225/* sub: sub$pack $GRi,$GRj,$GRk */
226
227static SEM_PC
228SEM_FN_NAME (frvbf,sub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
229{
230#define FLD(f) abuf->fields.sfmt_addcc.f
231 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
232 int UNUSED written = 0;
233 IADDR UNUSED pc = abuf->addr;
234 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
235
236 {
237 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
238 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
239 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
240 }
241
242 return vpc;
243#undef FLD
244}
245
246/* and: and$pack $GRi,$GRj,$GRk */
247
248static SEM_PC
249SEM_FN_NAME (frvbf,and) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
250{
251#define FLD(f) abuf->fields.sfmt_addcc.f
252 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
253 int UNUSED written = 0;
254 IADDR UNUSED pc = abuf->addr;
255 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
256
257 {
258 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
259 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
260 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
261 }
262
263 return vpc;
264#undef FLD
265}
266
267/* or: or$pack $GRi,$GRj,$GRk */
268
269static SEM_PC
270SEM_FN_NAME (frvbf,or) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
271{
272#define FLD(f) abuf->fields.sfmt_addcc.f
273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
274 int UNUSED written = 0;
275 IADDR UNUSED pc = abuf->addr;
276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
277
278 {
279 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
280 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
281 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
282 }
283
284 return vpc;
285#undef FLD
286}
287
288/* xor: xor$pack $GRi,$GRj,$GRk */
289
290static SEM_PC
291SEM_FN_NAME (frvbf,xor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
292{
293#define FLD(f) abuf->fields.sfmt_addcc.f
294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
295 int UNUSED written = 0;
296 IADDR UNUSED pc = abuf->addr;
297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
298
299 {
300 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
301 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
302 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
303 }
304
305 return vpc;
306#undef FLD
307}
308
309/* not: not$pack $GRj,$GRk */
310
311static SEM_PC
312SEM_FN_NAME (frvbf,not) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
313{
e930b1f5 314#define FLD(f) abuf->fields.sfmt_scutss.f
b34f6357
DB
315 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
316 int UNUSED written = 0;
317 IADDR UNUSED pc = abuf->addr;
318 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
319
320 {
321 SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
322 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
323 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
324 }
325
326 return vpc;
327#undef FLD
328}
329
330/* sdiv: sdiv$pack $GRi,$GRj,$GRk */
331
332static SEM_PC
333SEM_FN_NAME (frvbf,sdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
334{
335#define FLD(f) abuf->fields.sfmt_addcc.f
336 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
337 int UNUSED written = 0;
338 IADDR UNUSED pc = abuf->addr;
339 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
340
341{
342frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
343; /*clobber*/
344}
345
346 return vpc;
347#undef FLD
348}
349
350/* nsdiv: nsdiv$pack $GRi,$GRj,$GRk */
351
352static SEM_PC
353SEM_FN_NAME (frvbf,nsdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
354{
355#define FLD(f) abuf->fields.sfmt_addcc.f
356 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
357 int UNUSED written = 0;
358 IADDR UNUSED pc = abuf->addr;
359 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
360
361{
362frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
363; /*clobber*/
364}
365
366 return vpc;
367#undef FLD
368}
369
370/* udiv: udiv$pack $GRi,$GRj,$GRk */
371
372static SEM_PC
373SEM_FN_NAME (frvbf,udiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
374{
375#define FLD(f) abuf->fields.sfmt_addcc.f
376 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
377 int UNUSED written = 0;
378 IADDR UNUSED pc = abuf->addr;
379 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
380
381{
382frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
383; /*clobber*/
384}
385
386 return vpc;
387#undef FLD
388}
389
390/* nudiv: nudiv$pack $GRi,$GRj,$GRk */
391
392static SEM_PC
393SEM_FN_NAME (frvbf,nudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
394{
395#define FLD(f) abuf->fields.sfmt_addcc.f
396 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
397 int UNUSED written = 0;
398 IADDR UNUSED pc = abuf->addr;
399 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
400
401{
402frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 1);
403; /*clobber*/
404}
405
406 return vpc;
407#undef FLD
408}
409
410/* smul: smul$pack $GRi,$GRj,$GRdoublek */
411
412static SEM_PC
413SEM_FN_NAME (frvbf,smul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
414{
415#define FLD(f) abuf->fields.sfmt_smulcc.f
416 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
417 int UNUSED written = 0;
418 IADDR UNUSED pc = abuf->addr;
419 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
420
421 {
422 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
423 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
424 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
425 }
426
427 return vpc;
428#undef FLD
429}
430
431/* umul: umul$pack $GRi,$GRj,$GRdoublek */
432
433static SEM_PC
434SEM_FN_NAME (frvbf,umul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
435{
436#define FLD(f) abuf->fields.sfmt_smulcc.f
437 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
438 int UNUSED written = 0;
439 IADDR UNUSED pc = abuf->addr;
440 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
441
442 {
443 DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
444 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
445 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
446 }
447
448 return vpc;
449#undef FLD
450}
451
e930b1f5
DB
452/* smu: smu$pack $GRi,$GRj */
453
454static SEM_PC
455SEM_FN_NAME (frvbf,smu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
456{
457#define FLD(f) abuf->fields.sfmt_smass.f
458 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
459 int UNUSED written = 0;
460 IADDR UNUSED pc = abuf->addr;
461 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
462
463 {
464 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
465 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
466 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
467 }
468
469 return vpc;
470#undef FLD
471}
472
473/* smass: smass$pack $GRi,$GRj */
474
475static SEM_PC
476SEM_FN_NAME (frvbf,smass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
477{
478#define FLD(f) abuf->fields.sfmt_smass.f
479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
480 int UNUSED written = 0;
481 IADDR UNUSED pc = abuf->addr;
482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
483
484 {
485 DI opval = (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (SUBDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (SUBDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (ADDDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
486 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
487 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
488 }
489
490 return vpc;
491#undef FLD
492}
493
494/* smsss: smsss$pack $GRi,$GRj */
495
496static SEM_PC
497SEM_FN_NAME (frvbf,smsss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
498{
499#define FLD(f) abuf->fields.sfmt_smass.f
500 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
501 int UNUSED written = 0;
502 IADDR UNUSED pc = abuf->addr;
503 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
504
505 {
506 DI opval = (ANDIF (ANDIF (LTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), GTDI (GET_H_IACC0 (((UINT) 0)), 0)), LTDI (ADDDI (9223372036854775807, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (2147483647, 0xffffffff)) : (ANDIF (ANDIF (GTDI (MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj)))), 0), LTDI (GET_H_IACC0 (((UINT) 0)), 0)), GTDI (ADDDI (9223372036854775808, MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))), GET_H_IACC0 (((UINT) 0))))) ? (MAKEDI (0x80000000, 0)) : (SUBDI (GET_H_IACC0 (((UINT) 0)), MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))))));
507 sim_queue_fn_di_write (current_cpu, frvbf_h_iacc0_set, ((UINT) 0), opval);
508 TRACE_RESULT (current_cpu, abuf, "iacc0", 'D', opval);
509 }
510
511 return vpc;
512#undef FLD
513}
514
b34f6357
DB
515/* sll: sll$pack $GRi,$GRj,$GRk */
516
517static SEM_PC
518SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
519{
520#define FLD(f) abuf->fields.sfmt_addcc.f
521 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
522 int UNUSED written = 0;
523 IADDR UNUSED pc = abuf->addr;
524 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
525
526 {
527 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
528 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
529 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
530 }
531
532 return vpc;
533#undef FLD
534}
535
536/* srl: srl$pack $GRi,$GRj,$GRk */
537
538static SEM_PC
539SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
540{
541#define FLD(f) abuf->fields.sfmt_addcc.f
542 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
543 int UNUSED written = 0;
544 IADDR UNUSED pc = abuf->addr;
545 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
546
547 {
548 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
549 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
550 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
551 }
552
553 return vpc;
554#undef FLD
555}
556
557/* sra: sra$pack $GRi,$GRj,$GRk */
558
559static SEM_PC
560SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
561{
562#define FLD(f) abuf->fields.sfmt_addcc.f
563 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
564 int UNUSED written = 0;
565 IADDR UNUSED pc = abuf->addr;
566 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
567
568 {
569 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
570 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
571 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
572 }
573
574 return vpc;
575#undef FLD
576}
577
e930b1f5
DB
578/* slass: slass$pack $GRi,$GRj,$GRk */
579
580static SEM_PC
581SEM_FN_NAME (frvbf,slass) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
582{
583#define FLD(f) abuf->fields.sfmt_addcc.f
584 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
585 int UNUSED written = 0;
586 IADDR UNUSED pc = abuf->addr;
587 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
588
589 {
590 SI opval = frvbf_shift_left_arith_saturate (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
591 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
592 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
593 }
594
595 return vpc;
596#undef FLD
597}
598
599/* scutss: scutss$pack $GRj,$GRk */
600
601static SEM_PC
602SEM_FN_NAME (frvbf,scutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
603{
604#define FLD(f) abuf->fields.sfmt_scutss.f
605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
606 int UNUSED written = 0;
607 IADDR UNUSED pc = abuf->addr;
608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
609
610 {
611 SI opval = frvbf_iacc_cut (current_cpu, GET_H_IACC0 (((UINT) 0)), GET_H_GR (FLD (f_GRj)));
612 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
613 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
614 }
615
616 return vpc;
617#undef FLD
618}
619
b34f6357
DB
620/* scan: scan$pack $GRi,$GRj,$GRk */
621
622static SEM_PC
623SEM_FN_NAME (frvbf,scan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
624{
625#define FLD(f) abuf->fields.sfmt_addcc.f
626 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
627 int UNUSED written = 0;
628 IADDR UNUSED pc = abuf->addr;
629 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
630
631{
632 SI tmp_tmp1;
633 SI tmp_tmp2;
634 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
635 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
636 {
637 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
638 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
639 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
640 }
641}
642
643 return vpc;
644#undef FLD
645}
646
647/* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
648
649static SEM_PC
650SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
651{
652#define FLD(f) abuf->fields.sfmt_cswap.f
653 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
654 int UNUSED written = 0;
655 IADDR UNUSED pc = abuf->addr;
656 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
657
658if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
659 {
660 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
661 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
662 written |= (1 << 4);
663 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
664 }
665}
666
667 abuf->written = written;
668 return vpc;
669#undef FLD
670}
671
672/* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
673
674static SEM_PC
675SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
676{
677#define FLD(f) abuf->fields.sfmt_cswap.f
678 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
679 int UNUSED written = 0;
680 IADDR UNUSED pc = abuf->addr;
681 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
682
683if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
684 {
685 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
686 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
687 written |= (1 << 4);
688 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
689 }
690}
691
692 abuf->written = written;
693 return vpc;
694#undef FLD
695}
696
697/* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
698
699static SEM_PC
700SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
701{
702#define FLD(f) abuf->fields.sfmt_cswap.f
703 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
704 int UNUSED written = 0;
705 IADDR UNUSED pc = abuf->addr;
706 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
707
708if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
709 {
710 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
711 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
712 written |= (1 << 4);
713 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
714 }
715}
716
717 abuf->written = written;
718 return vpc;
719#undef FLD
720}
721
722/* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
723
724static SEM_PC
725SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
726{
727#define FLD(f) abuf->fields.sfmt_cswap.f
728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
729 int UNUSED written = 0;
730 IADDR UNUSED pc = abuf->addr;
731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
732
733if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
734 {
735 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
736 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
737 written |= (1 << 4);
738 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
739 }
740}
741
742 abuf->written = written;
743 return vpc;
744#undef FLD
745}
746
747/* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
748
749static SEM_PC
750SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
751{
752#define FLD(f) abuf->fields.sfmt_cswap.f
753 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
754 int UNUSED written = 0;
755 IADDR UNUSED pc = abuf->addr;
756 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
757
758if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
759 {
760 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
761 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
762 written |= (1 << 4);
763 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
764 }
765}
766
767 abuf->written = written;
768 return vpc;
769#undef FLD
770}
771
772/* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
773
774static SEM_PC
775SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
776{
777#define FLD(f) abuf->fields.sfmt_cswap.f
778 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
779 int UNUSED written = 0;
780 IADDR UNUSED pc = abuf->addr;
781 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
782
783if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
784 {
785 SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
786 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
787 written |= (1 << 3);
788 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
789 }
790}
791
792 abuf->written = written;
793 return vpc;
794#undef FLD
795}
796
797/* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
798
799static SEM_PC
800SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
801{
802#define FLD(f) abuf->fields.sfmt_clddu.f
803 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
804 int UNUSED written = 0;
805 IADDR UNUSED pc = abuf->addr;
806 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
807
808if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
809 {
810 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
811 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
812 written |= (1 << 4);
813 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
814 }
815}
816
817 abuf->written = written;
818 return vpc;
819#undef FLD
820}
821
822/* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
823
824static SEM_PC
825SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
826{
827#define FLD(f) abuf->fields.sfmt_cswap.f
828 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
829 int UNUSED written = 0;
830 IADDR UNUSED pc = abuf->addr;
831 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
832
833if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
834{
835frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
836; /*clobber*/
837}
838}
839
840 abuf->written = written;
841 return vpc;
842#undef FLD
843}
844
845/* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
846
847static SEM_PC
848SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
849{
850#define FLD(f) abuf->fields.sfmt_cswap.f
851 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
852 int UNUSED written = 0;
853 IADDR UNUSED pc = abuf->addr;
854 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
855
856if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
857{
858frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
859; /*clobber*/
860}
861}
862
863 abuf->written = written;
864 return vpc;
865#undef FLD
866}
867
868/* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
869
870static SEM_PC
871SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
872{
873#define FLD(f) abuf->fields.sfmt_cswap.f
874 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
875 int UNUSED written = 0;
876 IADDR UNUSED pc = abuf->addr;
877 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
878
879if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
880 {
881 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
882 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
883 written |= (1 << 4);
884 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
885 }
886}
887
888 abuf->written = written;
889 return vpc;
890#undef FLD
891}
892
893/* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
894
895static SEM_PC
896SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
897{
898#define FLD(f) abuf->fields.sfmt_cswap.f
899 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
900 int UNUSED written = 0;
901 IADDR UNUSED pc = abuf->addr;
902 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
903
904if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
905 {
906 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
907 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
908 written |= (1 << 4);
909 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
910 }
911}
912
913 abuf->written = written;
914 return vpc;
915#undef FLD
916}
917
918/* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
919
920static SEM_PC
921SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
922{
923#define FLD(f) abuf->fields.sfmt_cswap.f
924 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
925 int UNUSED written = 0;
926 IADDR UNUSED pc = abuf->addr;
927 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
928
929if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
930 {
931 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
932 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
933 written |= (1 << 4);
934 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
935 }
936}
937
938 abuf->written = written;
939 return vpc;
940#undef FLD
941}
942
943/* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
944
945static SEM_PC
946SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
947{
948#define FLD(f) abuf->fields.sfmt_cswap.f
949 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
950 int UNUSED written = 0;
951 IADDR UNUSED pc = abuf->addr;
952 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
953
954if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
955{
956 SI tmp_tmp1;
957 SI tmp_tmp2;
958 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
959 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
960 {
961 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
962 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
963 written |= (1 << 4);
964 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
965 }
966}
967}
968
969 abuf->written = written;
970 return vpc;
971#undef FLD
972}
973
974/* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
975
976static SEM_PC
977SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
978{
979#define FLD(f) abuf->fields.sfmt_addcc.f
980 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
981 int UNUSED written = 0;
982 IADDR UNUSED pc = abuf->addr;
983 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
984
985{
986 BI tmp_tmp;
987 QI tmp_cc;
988 SI tmp_result;
989 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
990 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
991if (EQBI (tmp_tmp, 0)) {
992 tmp_cc = ANDQI (tmp_cc, 13);
993} else {
994 tmp_cc = ORQI (tmp_cc, 2);
995}
996 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
997if (EQBI (tmp_tmp, 0)) {
998 tmp_cc = ANDQI (tmp_cc, 14);
999} else {
1000 tmp_cc = ORQI (tmp_cc, 1);
1001}
1002 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1003if (EQSI (tmp_result, 0)) {
1004 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1005} else {
1006if (LTSI (tmp_result, 0)) {
1007 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1008} else {
1009 tmp_cc = ANDQI (tmp_cc, 3);
1010}
1011}
1012 {
1013 SI opval = tmp_result;
1014 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1015 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1016 }
1017 {
1018 UQI opval = tmp_cc;
1019 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1020 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1021 }
1022}
1023
1024 return vpc;
1025#undef FLD
1026}
1027
1028/* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1029
1030static SEM_PC
1031SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1032{
1033#define FLD(f) abuf->fields.sfmt_addcc.f
1034 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1035 int UNUSED written = 0;
1036 IADDR UNUSED pc = abuf->addr;
1037 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1038
1039{
1040 BI tmp_tmp;
1041 QI tmp_cc;
1042 SI tmp_result;
1043 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1044 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1045if (EQBI (tmp_tmp, 0)) {
1046 tmp_cc = ANDQI (tmp_cc, 13);
1047} else {
1048 tmp_cc = ORQI (tmp_cc, 2);
1049}
1050 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1051if (EQBI (tmp_tmp, 0)) {
1052 tmp_cc = ANDQI (tmp_cc, 14);
1053} else {
1054 tmp_cc = ORQI (tmp_cc, 1);
1055}
1056 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1057if (EQSI (tmp_result, 0)) {
1058 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1059} else {
1060if (LTSI (tmp_result, 0)) {
1061 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1062} else {
1063 tmp_cc = ANDQI (tmp_cc, 3);
1064}
1065}
1066 {
1067 SI opval = tmp_result;
1068 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1069 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1070 }
1071 {
1072 UQI opval = tmp_cc;
1073 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1074 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1075 }
1076}
1077
1078 return vpc;
1079#undef FLD
1080}
1081
1082/* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1083
1084static SEM_PC
1085SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1086{
1087#define FLD(f) abuf->fields.sfmt_addcc.f
1088 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1089 int UNUSED written = 0;
1090 IADDR UNUSED pc = abuf->addr;
1091 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1092
1093{
1094 SI tmp_tmp;
1095 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1096 {
1097 SI opval = tmp_tmp;
1098 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1099 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1100 }
1101if (EQSI (tmp_tmp, 0)) {
1102 {
1103 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1104 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1105 written |= (1 << 4);
1106 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1107 }
1108} else {
1109if (LTSI (tmp_tmp, 0)) {
1110 {
1111 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1112 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1113 written |= (1 << 4);
1114 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1115 }
1116} else {
1117 {
1118 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1119 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1120 written |= (1 << 4);
1121 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1122 }
1123}
1124}
1125}
1126
1127 abuf->written = written;
1128 return vpc;
1129#undef FLD
1130}
1131
1132/* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1133
1134static SEM_PC
1135SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1136{
1137#define FLD(f) abuf->fields.sfmt_addcc.f
1138 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1139 int UNUSED written = 0;
1140 IADDR UNUSED pc = abuf->addr;
1141 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1142
1143{
1144 SI tmp_tmp;
1145 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1146 {
1147 SI opval = tmp_tmp;
1148 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1149 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1150 }
1151if (EQSI (tmp_tmp, 0)) {
1152 {
1153 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1154 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1155 written |= (1 << 4);
1156 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1157 }
1158} else {
1159if (LTSI (tmp_tmp, 0)) {
1160 {
1161 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1162 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1163 written |= (1 << 4);
1164 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1165 }
1166} else {
1167 {
1168 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1169 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1170 written |= (1 << 4);
1171 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1172 }
1173}
1174}
1175}
1176
1177 abuf->written = written;
1178 return vpc;
1179#undef FLD
1180}
1181
1182/* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1183
1184static SEM_PC
1185SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1186{
1187#define FLD(f) abuf->fields.sfmt_addcc.f
1188 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1189 int UNUSED written = 0;
1190 IADDR UNUSED pc = abuf->addr;
1191 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1192
1193{
1194 SI tmp_tmp;
1195 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1196 {
1197 SI opval = tmp_tmp;
1198 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1199 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1200 }
1201if (EQSI (tmp_tmp, 0)) {
1202 {
1203 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1204 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1205 written |= (1 << 4);
1206 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1207 }
1208} else {
1209if (LTSI (tmp_tmp, 0)) {
1210 {
1211 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1212 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1213 written |= (1 << 4);
1214 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1215 }
1216} else {
1217 {
1218 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1219 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1220 written |= (1 << 4);
1221 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1222 }
1223}
1224}
1225}
1226
1227 abuf->written = written;
1228 return vpc;
1229#undef FLD
1230}
1231
1232/* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1233
1234static SEM_PC
1235SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1236{
1237#define FLD(f) abuf->fields.sfmt_addcc.f
1238 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1239 int UNUSED written = 0;
1240 IADDR UNUSED pc = abuf->addr;
1241 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1242
1243{
1244 SI tmp_shift;
1245 SI tmp_tmp;
1246 QI tmp_cc;
1247 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1248 tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1249 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1250 {
1251 SI opval = tmp_tmp;
1252 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1253 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1254 }
1255if (EQSI (tmp_tmp, 0)) {
1256 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1257} else {
1258if (LTSI (tmp_tmp, 0)) {
1259 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1260} else {
1261 tmp_cc = ANDQI (tmp_cc, 3);
1262}
1263}
1264 {
1265 UQI opval = tmp_cc;
1266 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1267 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1268 }
1269}
1270
1271 return vpc;
1272#undef FLD
1273}
1274
1275/* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1276
1277static SEM_PC
1278SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1279{
1280#define FLD(f) abuf->fields.sfmt_addcc.f
1281 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1282 int UNUSED written = 0;
1283 IADDR UNUSED pc = abuf->addr;
1284 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1285
1286{
1287 SI tmp_shift;
1288 SI tmp_tmp;
1289 QI tmp_cc;
1290 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1291 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1292 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1293 {
1294 SI opval = tmp_tmp;
1295 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1296 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1297 }
1298if (EQSI (tmp_tmp, 0)) {
1299 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1300} else {
1301if (LTSI (tmp_tmp, 0)) {
1302 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1303} else {
1304 tmp_cc = ANDQI (tmp_cc, 3);
1305}
1306}
1307 {
1308 UQI opval = tmp_cc;
1309 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1310 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1311 }
1312}
1313
1314 return vpc;
1315#undef FLD
1316}
1317
1318/* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1319
1320static SEM_PC
1321SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1322{
1323#define FLD(f) abuf->fields.sfmt_addcc.f
1324 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1325 int UNUSED written = 0;
1326 IADDR UNUSED pc = abuf->addr;
1327 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1328
1329{
1330 SI tmp_shift;
1331 SI tmp_tmp;
1332 QI tmp_cc;
1333 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1334 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
1335 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1336 {
1337 SI opval = tmp_tmp;
1338 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1339 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1340 }
1341if (EQSI (tmp_tmp, 0)) {
1342 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1343} else {
1344if (LTSI (tmp_tmp, 0)) {
1345 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1346} else {
1347 tmp_cc = ANDQI (tmp_cc, 3);
1348}
1349}
1350 {
1351 UQI opval = tmp_cc;
1352 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1353 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1354 }
1355}
1356
1357 return vpc;
1358#undef FLD
1359}
1360
1361/* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1362
1363static SEM_PC
1364SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1365{
1366#define FLD(f) abuf->fields.sfmt_smulcc.f
1367 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1368 int UNUSED written = 0;
1369 IADDR UNUSED pc = abuf->addr;
1370 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1371
1372{
1373 DI tmp_tmp;
1374 QI tmp_cc;
1375 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1376 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1377if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1378 tmp_cc = ANDQI (tmp_cc, 7);
1379} else {
1380 tmp_cc = ORQI (tmp_cc, 8);
1381}
1382if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1383 tmp_cc = ANDQI (tmp_cc, 11);
1384} else {
1385 tmp_cc = ORQI (tmp_cc, 4);
1386}
1387 {
1388 DI opval = tmp_tmp;
1389 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1390 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1391 }
1392 {
1393 UQI opval = tmp_cc;
1394 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1395 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1396 }
1397}
1398
1399 return vpc;
1400#undef FLD
1401}
1402
1403/* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1404
1405static SEM_PC
1406SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1407{
1408#define FLD(f) abuf->fields.sfmt_smulcc.f
1409 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1410 int UNUSED written = 0;
1411 IADDR UNUSED pc = abuf->addr;
1412 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1413
1414{
1415 DI tmp_tmp;
1416 QI tmp_cc;
1417 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1418 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1419if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1420 tmp_cc = ANDQI (tmp_cc, 7);
1421} else {
1422 tmp_cc = ORQI (tmp_cc, 8);
1423}
1424if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1425 tmp_cc = ANDQI (tmp_cc, 11);
1426} else {
1427 tmp_cc = ORQI (tmp_cc, 4);
1428}
1429 {
1430 DI opval = tmp_tmp;
1431 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1432 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1433 }
1434 {
1435 UQI opval = tmp_cc;
1436 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1437 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1438 }
1439}
1440
1441 return vpc;
1442#undef FLD
1443}
1444
1445/* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1446
1447static SEM_PC
1448SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1449{
1450#define FLD(f) abuf->fields.sfmt_caddcc.f
1451 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1452 int UNUSED written = 0;
1453 IADDR UNUSED pc = abuf->addr;
1454 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1455
1456if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1457{
1458 BI tmp_tmp;
1459 QI tmp_cc;
1460 SI tmp_result;
1461 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1462 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1463if (EQBI (tmp_tmp, 0)) {
1464 tmp_cc = ANDQI (tmp_cc, 13);
1465} else {
1466 tmp_cc = ORQI (tmp_cc, 2);
1467}
1468 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1469if (EQBI (tmp_tmp, 0)) {
1470 tmp_cc = ANDQI (tmp_cc, 14);
1471} else {
1472 tmp_cc = ORQI (tmp_cc, 1);
1473}
1474 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1475if (EQSI (tmp_result, 0)) {
1476 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1477} else {
1478if (LTSI (tmp_result, 0)) {
1479 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1480} else {
1481 tmp_cc = ANDQI (tmp_cc, 3);
1482}
1483}
1484 {
1485 SI opval = tmp_result;
1486 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1487 written |= (1 << 6);
1488 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1489 }
1490 {
1491 UQI opval = tmp_cc;
1492 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1493 written |= (1 << 7);
1494 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1495 }
1496}
1497}
1498
1499 abuf->written = written;
1500 return vpc;
1501#undef FLD
1502}
1503
1504/* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1505
1506static SEM_PC
1507SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1508{
1509#define FLD(f) abuf->fields.sfmt_caddcc.f
1510 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1511 int UNUSED written = 0;
1512 IADDR UNUSED pc = abuf->addr;
1513 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1514
1515if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1516{
1517 BI tmp_tmp;
1518 QI tmp_cc;
1519 SI tmp_result;
1520 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1521 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1522if (EQBI (tmp_tmp, 0)) {
1523 tmp_cc = ANDQI (tmp_cc, 13);
1524} else {
1525 tmp_cc = ORQI (tmp_cc, 2);
1526}
1527 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1528if (EQBI (tmp_tmp, 0)) {
1529 tmp_cc = ANDQI (tmp_cc, 14);
1530} else {
1531 tmp_cc = ORQI (tmp_cc, 1);
1532}
1533 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1534if (EQSI (tmp_result, 0)) {
1535 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1536} else {
1537if (LTSI (tmp_result, 0)) {
1538 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1539} else {
1540 tmp_cc = ANDQI (tmp_cc, 3);
1541}
1542}
1543 {
1544 SI opval = tmp_result;
1545 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1546 written |= (1 << 6);
1547 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1548 }
1549 {
1550 UQI opval = tmp_cc;
1551 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1552 written |= (1 << 7);
1553 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1554 }
1555}
1556}
1557
1558 abuf->written = written;
1559 return vpc;
1560#undef FLD
1561}
1562
1563/* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1564
1565static SEM_PC
1566SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1567{
1568#define FLD(f) abuf->fields.sfmt_csmulcc.f
1569 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1570 int UNUSED written = 0;
1571 IADDR UNUSED pc = abuf->addr;
1572 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1573
1574if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1575{
1576 DI tmp_tmp;
1577 QI tmp_cc;
1578 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1579 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1580if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1581 tmp_cc = ANDQI (tmp_cc, 7);
1582} else {
1583 tmp_cc = ORQI (tmp_cc, 8);
1584}
1585if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1586 tmp_cc = ANDQI (tmp_cc, 11);
1587} else {
1588 tmp_cc = ORQI (tmp_cc, 4);
1589}
1590 {
1591 DI opval = tmp_tmp;
1592 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1593 written |= (1 << 6);
1594 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1595 }
1596 {
1597 UQI opval = tmp_cc;
1598 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1599 written |= (1 << 7);
1600 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1601 }
1602}
1603}
1604
1605 abuf->written = written;
1606 return vpc;
1607#undef FLD
1608}
1609
1610/* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1611
1612static SEM_PC
1613SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1614{
1615#define FLD(f) abuf->fields.sfmt_caddcc.f
1616 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1617 int UNUSED written = 0;
1618 IADDR UNUSED pc = abuf->addr;
1619 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1620
1621if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1622{
1623 SI tmp_tmp;
1624 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1625 {
1626 SI opval = tmp_tmp;
1627 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1628 written |= (1 << 6);
1629 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1630 }
1631if (EQSI (tmp_tmp, 0)) {
1632 {
1633 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1634 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1635 written |= (1 << 7);
1636 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1637 }
1638} else {
1639if (LTSI (tmp_tmp, 0)) {
1640 {
1641 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1642 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1643 written |= (1 << 7);
1644 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1645 }
1646} else {
1647 {
1648 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1649 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1650 written |= (1 << 7);
1651 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1652 }
1653}
1654}
1655}
1656}
1657
1658 abuf->written = written;
1659 return vpc;
1660#undef FLD
1661}
1662
1663/* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1664
1665static SEM_PC
1666SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1667{
1668#define FLD(f) abuf->fields.sfmt_caddcc.f
1669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1670 int UNUSED written = 0;
1671 IADDR UNUSED pc = abuf->addr;
1672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1673
1674if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1675{
1676 SI tmp_tmp;
1677 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1678 {
1679 SI opval = tmp_tmp;
1680 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1681 written |= (1 << 6);
1682 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1683 }
1684if (EQSI (tmp_tmp, 0)) {
1685 {
1686 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1687 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1688 written |= (1 << 7);
1689 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1690 }
1691} else {
1692if (LTSI (tmp_tmp, 0)) {
1693 {
1694 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1695 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1696 written |= (1 << 7);
1697 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1698 }
1699} else {
1700 {
1701 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1702 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1703 written |= (1 << 7);
1704 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1705 }
1706}
1707}
1708}
1709}
1710
1711 abuf->written = written;
1712 return vpc;
1713#undef FLD
1714}
1715
1716/* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1717
1718static SEM_PC
1719SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1720{
1721#define FLD(f) abuf->fields.sfmt_caddcc.f
1722 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1723 int UNUSED written = 0;
1724 IADDR UNUSED pc = abuf->addr;
1725 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1726
1727if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1728{
1729 SI tmp_tmp;
1730 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1731 {
1732 SI opval = tmp_tmp;
1733 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1734 written |= (1 << 6);
1735 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1736 }
1737if (EQSI (tmp_tmp, 0)) {
1738 {
1739 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1740 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1741 written |= (1 << 7);
1742 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1743 }
1744} else {
1745if (LTSI (tmp_tmp, 0)) {
1746 {
1747 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1748 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1749 written |= (1 << 7);
1750 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1751 }
1752} else {
1753 {
1754 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1755 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1756 written |= (1 << 7);
1757 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1758 }
1759}
1760}
1761}
1762}
1763
1764 abuf->written = written;
1765 return vpc;
1766#undef FLD
1767}
1768
1769/* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1770
1771static SEM_PC
1772SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1773{
1774#define FLD(f) abuf->fields.sfmt_caddcc.f
1775 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1776 int UNUSED written = 0;
1777 IADDR UNUSED pc = abuf->addr;
1778 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1779
1780if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1781{
1782 SI tmp_shift;
1783 SI tmp_tmp;
1784 QI tmp_cc;
1785 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1786 tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1787 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1788 {
1789 SI opval = tmp_tmp;
1790 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1791 written |= (1 << 6);
1792 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1793 }
1794if (EQSI (tmp_tmp, 0)) {
1795 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1796} else {
1797if (LTSI (tmp_tmp, 0)) {
1798 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1799} else {
1800 tmp_cc = ANDQI (tmp_cc, 3);
1801}
1802}
1803 {
1804 UQI opval = tmp_cc;
1805 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1806 written |= (1 << 7);
1807 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1808 }
1809}
1810}
1811
1812 abuf->written = written;
1813 return vpc;
1814#undef FLD
1815}
1816
1817/* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1818
1819static SEM_PC
1820SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1821{
1822#define FLD(f) abuf->fields.sfmt_caddcc.f
1823 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1824 int UNUSED written = 0;
1825 IADDR UNUSED pc = abuf->addr;
1826 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1827
1828if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1829{
1830 SI tmp_shift;
1831 SI tmp_tmp;
1832 QI tmp_cc;
1833 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1834 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1835 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1836 {
1837 SI opval = tmp_tmp;
1838 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1839 written |= (1 << 6);
1840 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1841 }
1842if (EQSI (tmp_tmp, 0)) {
1843 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1844} else {
1845if (LTSI (tmp_tmp, 0)) {
1846 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1847} else {
1848 tmp_cc = ANDQI (tmp_cc, 3);
1849}
1850}
1851 {
1852 UQI opval = tmp_cc;
1853 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1854 written |= (1 << 7);
1855 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1856 }
1857}
1858}
1859
1860 abuf->written = written;
1861 return vpc;
1862#undef FLD
1863}
1864
1865/* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1866
1867static SEM_PC
1868SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1869{
1870#define FLD(f) abuf->fields.sfmt_caddcc.f
1871 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1872 int UNUSED written = 0;
1873 IADDR UNUSED pc = abuf->addr;
1874 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1875
1876if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1877{
1878 SI tmp_shift;
1879 SI tmp_tmp;
1880 QI tmp_cc;
1881 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1882 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[((FLD (f_CCi)) & (3))]));
1883 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1884 {
1885 SI opval = tmp_tmp;
1886 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1887 written |= (1 << 6);
1888 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1889 }
1890if (EQSI (tmp_tmp, 0)) {
1891 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1892} else {
1893if (LTSI (tmp_tmp, 0)) {
1894 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1895} else {
1896 tmp_cc = ANDQI (tmp_cc, 3);
1897}
1898}
1899 {
1900 UQI opval = tmp_cc;
1901 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1902 written |= (1 << 7);
1903 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1904 }
1905}
1906}
1907
1908 abuf->written = written;
1909 return vpc;
1910#undef FLD
1911}
1912
1913/* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1914
1915static SEM_PC
1916SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1917{
1918#define FLD(f) abuf->fields.sfmt_addcc.f
1919 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1920 int UNUSED written = 0;
1921 IADDR UNUSED pc = abuf->addr;
1922 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1923
1924 {
1925 SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1926 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1927 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1928 }
1929
1930 return vpc;
1931#undef FLD
1932}
1933
1934/* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1935
1936static SEM_PC
1937SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1938{
1939#define FLD(f) abuf->fields.sfmt_addcc.f
1940 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1941 int UNUSED written = 0;
1942 IADDR UNUSED pc = abuf->addr;
1943 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1944
1945 {
1946 SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
1947 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1948 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1949 }
1950
1951 return vpc;
1952#undef FLD
1953}
1954
1955/* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1956
1957static SEM_PC
1958SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1959{
1960#define FLD(f) abuf->fields.sfmt_addcc.f
1961 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1962 int UNUSED written = 0;
1963 IADDR UNUSED pc = abuf->addr;
1964 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1965
1966{
1967 SI tmp_tmp;
1968 QI tmp_cc;
1969 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1970 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1971if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1972 tmp_cc = ANDQI (tmp_cc, 13);
1973} else {
1974 tmp_cc = ORQI (tmp_cc, 2);
1975}
1976if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1977 tmp_cc = ANDQI (tmp_cc, 14);
1978} else {
1979 tmp_cc = ORQI (tmp_cc, 1);
1980}
1981if (EQSI (tmp_tmp, 0)) {
1982 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1983} else {
1984if (LTSI (tmp_tmp, 0)) {
1985 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1986} else {
1987 tmp_cc = ANDQI (tmp_cc, 3);
1988}
1989}
1990 {
1991 SI opval = tmp_tmp;
1992 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1993 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1994 }
1995 {
1996 UQI opval = tmp_cc;
1997 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1998 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1999 }
2000}
2001
2002 return vpc;
2003#undef FLD
2004}
2005
2006/* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
2007
2008static SEM_PC
2009SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2010{
2011#define FLD(f) abuf->fields.sfmt_addcc.f
2012 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2013 int UNUSED written = 0;
2014 IADDR UNUSED pc = abuf->addr;
2015 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2016
2017{
2018 SI tmp_tmp;
2019 QI tmp_cc;
2020 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2021 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2022if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2023 tmp_cc = ANDQI (tmp_cc, 13);
2024} else {
2025 tmp_cc = ORQI (tmp_cc, 2);
2026}
2027if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2028 tmp_cc = ANDQI (tmp_cc, 14);
2029} else {
2030 tmp_cc = ORQI (tmp_cc, 1);
2031}
2032if (EQSI (tmp_tmp, 0)) {
2033 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2034} else {
2035if (LTSI (tmp_tmp, 0)) {
2036 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2037} else {
2038 tmp_cc = ANDQI (tmp_cc, 3);
2039}
2040}
2041 {
2042 SI opval = tmp_tmp;
2043 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2044 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2045 }
2046 {
2047 UQI opval = tmp_cc;
2048 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2049 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2050 }
2051}
2052
2053 return vpc;
2054#undef FLD
2055}
2056
e930b1f5
DB
2057/* addss: addss$pack $GRi,$GRj,$GRk */
2058
2059static SEM_PC
2060SEM_FN_NAME (frvbf,addss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2061{
2062#define FLD(f) abuf->fields.sfmt_addcc.f
2063 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2064 int UNUSED written = 0;
2065 IADDR UNUSED pc = abuf->addr;
2066 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2067
2068{
2069 {
2070 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2071 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2072 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2073 }
2074if (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2075 {
2076 SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2077 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2078 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2079 }
2080}
2081}
2082
2083 return vpc;
2084#undef FLD
2085}
2086
2087/* subss: subss$pack $GRi,$GRj,$GRk */
2088
2089static SEM_PC
2090SEM_FN_NAME (frvbf,subss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2091{
2092#define FLD(f) abuf->fields.sfmt_addcc.f
2093 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2094 int UNUSED written = 0;
2095 IADDR UNUSED pc = abuf->addr;
2096 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2097
2098{
2099 {
2100 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
2101 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2102 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2103 }
2104if (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0)) {
2105 {
2106 SI opval = (GTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (2147483647) : (LTSI (GET_H_GR (FLD (f_GRi)), 0)) ? (0x80000000) : (0);
2107 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2108 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2109 }
2110}
2111}
2112
2113 return vpc;
2114#undef FLD
2115}
2116
b34f6357
DB
2117/* addi: addi$pack $GRi,$s12,$GRk */
2118
2119static SEM_PC
2120SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2121{
2122#define FLD(f) abuf->fields.sfmt_swapi.f
2123 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2124 int UNUSED written = 0;
2125 IADDR UNUSED pc = abuf->addr;
2126 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2127
2128 {
2129 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2130 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2131 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2132 }
2133
2134 return vpc;
2135#undef FLD
2136}
2137
2138/* subi: subi$pack $GRi,$s12,$GRk */
2139
2140static SEM_PC
2141SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2142{
2143#define FLD(f) abuf->fields.sfmt_swapi.f
2144 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2145 int UNUSED written = 0;
2146 IADDR UNUSED pc = abuf->addr;
2147 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2148
2149 {
2150 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2151 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2152 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2153 }
2154
2155 return vpc;
2156#undef FLD
2157}
2158
2159/* andi: andi$pack $GRi,$s12,$GRk */
2160
2161static SEM_PC
2162SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2163{
2164#define FLD(f) abuf->fields.sfmt_swapi.f
2165 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2166 int UNUSED written = 0;
2167 IADDR UNUSED pc = abuf->addr;
2168 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2169
2170 {
2171 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2172 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2173 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2174 }
2175
2176 return vpc;
2177#undef FLD
2178}
2179
2180/* ori: ori$pack $GRi,$s12,$GRk */
2181
2182static SEM_PC
2183SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2184{
2185#define FLD(f) abuf->fields.sfmt_swapi.f
2186 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2187 int UNUSED written = 0;
2188 IADDR UNUSED pc = abuf->addr;
2189 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2190
2191 {
2192 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2193 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2194 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2195 }
2196
2197 return vpc;
2198#undef FLD
2199}
2200
2201/* xori: xori$pack $GRi,$s12,$GRk */
2202
2203static SEM_PC
2204SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2205{
2206#define FLD(f) abuf->fields.sfmt_swapi.f
2207 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2208 int UNUSED written = 0;
2209 IADDR UNUSED pc = abuf->addr;
2210 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2211
2212 {
2213 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2214 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2215 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2216 }
2217
2218 return vpc;
2219#undef FLD
2220}
2221
2222/* sdivi: sdivi$pack $GRi,$s12,$GRk */
2223
2224static SEM_PC
2225SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2226{
2227#define FLD(f) abuf->fields.sfmt_swapi.f
2228 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2229 int UNUSED written = 0;
2230 IADDR UNUSED pc = abuf->addr;
2231 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2232
2233{
2234frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2235; /*clobber*/
2236}
2237
2238 return vpc;
2239#undef FLD
2240}
2241
2242/* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2243
2244static SEM_PC
2245SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2246{
2247#define FLD(f) abuf->fields.sfmt_swapi.f
2248 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2249 int UNUSED written = 0;
2250 IADDR UNUSED pc = abuf->addr;
2251 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2252
2253{
2254frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2255; /*clobber*/
2256}
2257
2258 return vpc;
2259#undef FLD
2260}
2261
2262/* udivi: udivi$pack $GRi,$s12,$GRk */
2263
2264static SEM_PC
2265SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2266{
2267#define FLD(f) abuf->fields.sfmt_swapi.f
2268 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2269 int UNUSED written = 0;
2270 IADDR UNUSED pc = abuf->addr;
2271 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2272
2273{
2274frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2275; /*clobber*/
2276}
2277
2278 return vpc;
2279#undef FLD
2280}
2281
2282/* nudivi: nudivi$pack $GRi,$s12,$GRk */
2283
2284static SEM_PC
2285SEM_FN_NAME (frvbf,nudivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2286{
2287#define FLD(f) abuf->fields.sfmt_swapi.f
2288 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2289 int UNUSED written = 0;
2290 IADDR UNUSED pc = abuf->addr;
2291 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2292
2293{
2294frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2295; /*clobber*/
2296}
2297
2298 return vpc;
2299#undef FLD
2300}
2301
2302/* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2303
2304static SEM_PC
2305SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2306{
2307#define FLD(f) abuf->fields.sfmt_smuli.f
2308 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2309 int UNUSED written = 0;
2310 IADDR UNUSED pc = abuf->addr;
2311 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2312
2313 {
2314 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2315 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2316 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2317 }
2318
2319 return vpc;
2320#undef FLD
2321}
2322
2323/* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2324
2325static SEM_PC
2326SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2327{
2328#define FLD(f) abuf->fields.sfmt_smuli.f
2329 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2330 int UNUSED written = 0;
2331 IADDR UNUSED pc = abuf->addr;
2332 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2333
2334 {
2335 DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2336 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2337 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2338 }
2339
2340 return vpc;
2341#undef FLD
2342}
2343
2344/* slli: slli$pack $GRi,$s12,$GRk */
2345
2346static SEM_PC
2347SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2348{
2349#define FLD(f) abuf->fields.sfmt_swapi.f
2350 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2351 int UNUSED written = 0;
2352 IADDR UNUSED pc = abuf->addr;
2353 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2354
2355 {
2356 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2357 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2358 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2359 }
2360
2361 return vpc;
2362#undef FLD
2363}
2364
2365/* srli: srli$pack $GRi,$s12,$GRk */
2366
2367static SEM_PC
2368SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2369{
2370#define FLD(f) abuf->fields.sfmt_swapi.f
2371 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2372 int UNUSED written = 0;
2373 IADDR UNUSED pc = abuf->addr;
2374 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2375
2376 {
2377 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2378 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2379 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2380 }
2381
2382 return vpc;
2383#undef FLD
2384}
2385
2386/* srai: srai$pack $GRi,$s12,$GRk */
2387
2388static SEM_PC
2389SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2390{
2391#define FLD(f) abuf->fields.sfmt_swapi.f
2392 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2393 int UNUSED written = 0;
2394 IADDR UNUSED pc = abuf->addr;
2395 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2396
2397 {
2398 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2399 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2400 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2401 }
2402
2403 return vpc;
2404#undef FLD
2405}
2406
2407/* scani: scani$pack $GRi,$s12,$GRk */
2408
2409static SEM_PC
2410SEM_FN_NAME (frvbf,scani) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2411{
2412#define FLD(f) abuf->fields.sfmt_swapi.f
2413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2414 int UNUSED written = 0;
2415 IADDR UNUSED pc = abuf->addr;
2416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2417
2418{
2419 SI tmp_tmp1;
2420 SI tmp_tmp2;
2421 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2422 tmp_tmp2 = SRASI (FLD (f_d12), 1);
2423 {
2424 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2425 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2426 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2427 }
2428}
2429
2430 return vpc;
2431#undef FLD
2432}
2433
2434/* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2435
2436static SEM_PC
2437SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2438{
2439#define FLD(f) abuf->fields.sfmt_addicc.f
2440 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2441 int UNUSED written = 0;
2442 IADDR UNUSED pc = abuf->addr;
2443 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2444
2445{
2446 BI tmp_tmp;
2447 QI tmp_cc;
2448 SI tmp_result;
2449 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2450 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2451if (EQBI (tmp_tmp, 0)) {
2452 tmp_cc = ANDQI (tmp_cc, 13);
2453} else {
2454 tmp_cc = ORQI (tmp_cc, 2);
2455}
2456 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2457if (EQBI (tmp_tmp, 0)) {
2458 tmp_cc = ANDQI (tmp_cc, 14);
2459} else {
2460 tmp_cc = ORQI (tmp_cc, 1);
2461}
2462 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2463if (EQSI (tmp_result, 0)) {
2464 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2465} else {
2466if (LTSI (tmp_result, 0)) {
2467 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2468} else {
2469 tmp_cc = ANDQI (tmp_cc, 3);
2470}
2471}
2472 {
2473 SI opval = tmp_result;
2474 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2475 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2476 }
2477 {
2478 UQI opval = tmp_cc;
2479 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2480 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2481 }
2482}
2483
2484 return vpc;
2485#undef FLD
2486}
2487
2488/* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2489
2490static SEM_PC
2491SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2492{
2493#define FLD(f) abuf->fields.sfmt_addicc.f
2494 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2495 int UNUSED written = 0;
2496 IADDR UNUSED pc = abuf->addr;
2497 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2498
2499{
2500 BI tmp_tmp;
2501 QI tmp_cc;
2502 SI tmp_result;
2503 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2504 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2505if (EQBI (tmp_tmp, 0)) {
2506 tmp_cc = ANDQI (tmp_cc, 13);
2507} else {
2508 tmp_cc = ORQI (tmp_cc, 2);
2509}
2510 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2511if (EQBI (tmp_tmp, 0)) {
2512 tmp_cc = ANDQI (tmp_cc, 14);
2513} else {
2514 tmp_cc = ORQI (tmp_cc, 1);
2515}
2516 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2517if (EQSI (tmp_result, 0)) {
2518 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2519} else {
2520if (LTSI (tmp_result, 0)) {
2521 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2522} else {
2523 tmp_cc = ANDQI (tmp_cc, 3);
2524}
2525}
2526 {
2527 SI opval = tmp_result;
2528 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2529 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2530 }
2531 {
2532 UQI opval = tmp_cc;
2533 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2534 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2535 }
2536}
2537
2538 return vpc;
2539#undef FLD
2540}
2541
2542/* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2543
2544static SEM_PC
2545SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2546{
2547#define FLD(f) abuf->fields.sfmt_addicc.f
2548 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2549 int UNUSED written = 0;
2550 IADDR UNUSED pc = abuf->addr;
2551 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2552
2553{
2554 SI tmp_tmp;
2555 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2556 {
2557 SI opval = tmp_tmp;
2558 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2559 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2560 }
2561if (EQSI (tmp_tmp, 0)) {
2562 {
2563 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2564 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2565 written |= (1 << 4);
2566 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2567 }
2568} else {
2569if (LTSI (tmp_tmp, 0)) {
2570 {
2571 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2572 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2573 written |= (1 << 4);
2574 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2575 }
2576} else {
2577 {
2578 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2579 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2580 written |= (1 << 4);
2581 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2582 }
2583}
2584}
2585}
2586
2587 abuf->written = written;
2588 return vpc;
2589#undef FLD
2590}
2591
2592/* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2593
2594static SEM_PC
2595SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2596{
2597#define FLD(f) abuf->fields.sfmt_addicc.f
2598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2599 int UNUSED written = 0;
2600 IADDR UNUSED pc = abuf->addr;
2601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2602
2603{
2604 SI tmp_tmp;
2605 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2606 {
2607 SI opval = tmp_tmp;
2608 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2609 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2610 }
2611if (EQSI (tmp_tmp, 0)) {
2612 {
2613 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2614 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2615 written |= (1 << 4);
2616 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2617 }
2618} else {
2619if (LTSI (tmp_tmp, 0)) {
2620 {
2621 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2622 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2623 written |= (1 << 4);
2624 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2625 }
2626} else {
2627 {
2628 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2629 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2630 written |= (1 << 4);
2631 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2632 }
2633}
2634}
2635}
2636
2637 abuf->written = written;
2638 return vpc;
2639#undef FLD
2640}
2641
2642/* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2643
2644static SEM_PC
2645SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2646{
2647#define FLD(f) abuf->fields.sfmt_addicc.f
2648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2649 int UNUSED written = 0;
2650 IADDR UNUSED pc = abuf->addr;
2651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2652
2653{
2654 SI tmp_tmp;
2655 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2656 {
2657 SI opval = tmp_tmp;
2658 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2659 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2660 }
2661if (EQSI (tmp_tmp, 0)) {
2662 {
2663 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2664 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2665 written |= (1 << 4);
2666 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2667 }
2668} else {
2669if (LTSI (tmp_tmp, 0)) {
2670 {
2671 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2672 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2673 written |= (1 << 4);
2674 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2675 }
2676} else {
2677 {
2678 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2679 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2680 written |= (1 << 4);
2681 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2682 }
2683}
2684}
2685}
2686
2687 abuf->written = written;
2688 return vpc;
2689#undef FLD
2690}
2691
2692/* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2693
2694static SEM_PC
2695SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2696{
2697#define FLD(f) abuf->fields.sfmt_smulicc.f
2698 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2699 int UNUSED written = 0;
2700 IADDR UNUSED pc = abuf->addr;
2701 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2702
2703{
2704 DI tmp_tmp;
2705 QI tmp_cc;
2706 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2707 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2708if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2709 tmp_cc = ANDQI (tmp_cc, 7);
2710} else {
2711 tmp_cc = ORQI (tmp_cc, 8);
2712}
2713if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2714 tmp_cc = ANDQI (tmp_cc, 11);
2715} else {
2716 tmp_cc = ORQI (tmp_cc, 4);
2717}
2718 {
2719 DI opval = tmp_tmp;
2720 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2721 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2722 }
2723 {
2724 UQI opval = tmp_cc;
2725 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2726 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2727 }
2728}
2729
2730 return vpc;
2731#undef FLD
2732}
2733
2734/* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2735
2736static SEM_PC
2737SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2738{
2739#define FLD(f) abuf->fields.sfmt_smulicc.f
2740 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2741 int UNUSED written = 0;
2742 IADDR UNUSED pc = abuf->addr;
2743 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2744
2745{
2746 DI tmp_tmp;
2747 QI tmp_cc;
2748 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2749 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2750if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2751 tmp_cc = ANDQI (tmp_cc, 7);
2752} else {
2753 tmp_cc = ORQI (tmp_cc, 8);
2754}
2755if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2756 tmp_cc = ANDQI (tmp_cc, 11);
2757} else {
2758 tmp_cc = ORQI (tmp_cc, 4);
2759}
2760 {
2761 DI opval = tmp_tmp;
2762 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2763 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2764 }
2765 {
2766 UQI opval = tmp_cc;
2767 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2768 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2769 }
2770}
2771
2772 return vpc;
2773#undef FLD
2774}
2775
2776/* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2777
2778static SEM_PC
2779SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2780{
2781#define FLD(f) abuf->fields.sfmt_addicc.f
2782 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2783 int UNUSED written = 0;
2784 IADDR UNUSED pc = abuf->addr;
2785 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2786
2787{
2788 SI tmp_shift;
2789 SI tmp_tmp;
2790 QI tmp_cc;
2791 tmp_shift = ANDSI (FLD (f_s10), 31);
2792 tmp_cc = frvbf_set_icc_for_shift_left (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2793 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2794 {
2795 SI opval = tmp_tmp;
2796 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2797 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2798 }
2799if (EQSI (tmp_tmp, 0)) {
2800 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2801} else {
2802if (LTSI (tmp_tmp, 0)) {
2803 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2804} else {
2805 tmp_cc = ANDQI (tmp_cc, 3);
2806}
2807}
2808 {
2809 UQI opval = tmp_cc;
2810 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2811 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2812 }
2813}
2814
2815 return vpc;
2816#undef FLD
2817}
2818
2819/* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2820
2821static SEM_PC
2822SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2823{
2824#define FLD(f) abuf->fields.sfmt_addicc.f
2825 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2826 int UNUSED written = 0;
2827 IADDR UNUSED pc = abuf->addr;
2828 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2829
2830{
2831 SI tmp_shift;
2832 SI tmp_tmp;
2833 QI tmp_cc;
2834 tmp_shift = ANDSI (FLD (f_s10), 31);
2835 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2836 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2837 {
2838 SI opval = tmp_tmp;
2839 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2840 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2841 }
2842if (EQSI (tmp_tmp, 0)) {
2843 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2844} else {
2845if (LTSI (tmp_tmp, 0)) {
2846 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2847} else {
2848 tmp_cc = ANDQI (tmp_cc, 3);
2849}
2850}
2851 {
2852 UQI opval = tmp_cc;
2853 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2854 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2855 }
2856}
2857
2858 return vpc;
2859#undef FLD
2860}
2861
2862/* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2863
2864static SEM_PC
2865SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2866{
2867#define FLD(f) abuf->fields.sfmt_addicc.f
2868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2869 int UNUSED written = 0;
2870 IADDR UNUSED pc = abuf->addr;
2871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2872
2873{
2874 SI tmp_shift;
2875 SI tmp_tmp;
2876 QI tmp_cc;
2877 tmp_shift = ANDSI (FLD (f_s10), 31);
2878 tmp_cc = frvbf_set_icc_for_shift_right (current_cpu, GET_H_GR (FLD (f_GRi)), tmp_shift, CPU (h_iccr[FLD (f_ICCi_1)]));
2879 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2880 {
2881 SI opval = tmp_tmp;
2882 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2883 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2884 }
2885if (EQSI (tmp_tmp, 0)) {
2886 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2887} else {
2888if (LTSI (tmp_tmp, 0)) {
2889 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2890} else {
2891 tmp_cc = ANDQI (tmp_cc, 3);
2892}
2893}
2894 {
2895 UQI opval = tmp_cc;
2896 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2897 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2898 }
2899}
2900
2901 return vpc;
2902#undef FLD
2903}
2904
2905/* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2906
2907static SEM_PC
2908SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2909{
2910#define FLD(f) abuf->fields.sfmt_addicc.f
2911 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2912 int UNUSED written = 0;
2913 IADDR UNUSED pc = abuf->addr;
2914 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2915
2916 {
2917 SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2918 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2919 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2920 }
2921
2922 return vpc;
2923#undef FLD
2924}
2925
2926/* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2927
2928static SEM_PC
2929SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2930{
2931#define FLD(f) abuf->fields.sfmt_addicc.f
2932 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2933 int UNUSED written = 0;
2934 IADDR UNUSED pc = abuf->addr;
2935 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2936
2937 {
2938 SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2939 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2940 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2941 }
2942
2943 return vpc;
2944#undef FLD
2945}
2946
2947/* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2948
2949static SEM_PC
2950SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2951{
2952#define FLD(f) abuf->fields.sfmt_addicc.f
2953 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2954 int UNUSED written = 0;
2955 IADDR UNUSED pc = abuf->addr;
2956 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2957
2958{
2959 SI tmp_tmp;
2960 QI tmp_cc;
2961 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2962 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2963if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2964 tmp_cc = ANDQI (tmp_cc, 13);
2965} else {
2966 tmp_cc = ORQI (tmp_cc, 2);
2967}
2968if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2969 tmp_cc = ANDQI (tmp_cc, 14);
2970} else {
2971 tmp_cc = ORQI (tmp_cc, 1);
2972}
2973if (EQSI (tmp_tmp, 0)) {
2974 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2975} else {
2976if (LTSI (tmp_tmp, 0)) {
2977 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2978} else {
2979 tmp_cc = ANDQI (tmp_cc, 3);
2980}
2981}
2982 {
2983 SI opval = tmp_tmp;
2984 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2985 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2986 }
2987 {
2988 UQI opval = tmp_cc;
2989 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2990 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2991 }
2992}
2993
2994 return vpc;
2995#undef FLD
2996}
2997
2998/* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2999
3000static SEM_PC
3001SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3002{
3003#define FLD(f) abuf->fields.sfmt_addicc.f
3004 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3005 int UNUSED written = 0;
3006 IADDR UNUSED pc = abuf->addr;
3007 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3008
3009{
3010 SI tmp_tmp;
3011 QI tmp_cc;
3012 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
3013 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
3014if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3015 tmp_cc = ANDQI (tmp_cc, 13);
3016} else {
3017 tmp_cc = ORQI (tmp_cc, 2);
3018}
3019if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
3020 tmp_cc = ANDQI (tmp_cc, 14);
3021} else {
3022 tmp_cc = ORQI (tmp_cc, 1);
3023}
3024if (EQSI (tmp_tmp, 0)) {
3025 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
3026} else {
3027if (LTSI (tmp_tmp, 0)) {
3028 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
3029} else {
3030 tmp_cc = ANDQI (tmp_cc, 3);
3031}
3032}
3033 {
3034 SI opval = tmp_tmp;
3035 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3036 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3037 }
3038 {
3039 UQI opval = tmp_cc;
3040 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3041 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3042 }
3043}
3044
3045 return vpc;
3046#undef FLD
3047}
3048
3049/* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
3050
3051static SEM_PC
3052SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3053{
3054#define FLD(f) abuf->fields.sfmt_smulcc.f
3055 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3056 int UNUSED written = 0;
3057 IADDR UNUSED pc = abuf->addr;
3058 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3059
3060{
3061 QI tmp_cc;
3062if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
3063 tmp_cc = ANDQI (tmp_cc, 7);
3064} else {
3065 tmp_cc = ORQI (tmp_cc, 8);
3066}
3067if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
3068 tmp_cc = ANDQI (tmp_cc, 11);
3069} else {
3070 tmp_cc = ORQI (tmp_cc, 4);
3071}
3072if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
3073 tmp_cc = ANDQI (tmp_cc, 13);
3074} else {
3075 tmp_cc = ORQI (tmp_cc, 2);
3076}
3077if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
3078 tmp_cc = ANDQI (tmp_cc, 14);
3079} else {
3080 tmp_cc = ORQI (tmp_cc, 1);
3081}
3082 {
3083 UQI opval = tmp_cc;
3084 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3085 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3086 }
3087}
3088
3089 return vpc;
3090#undef FLD
3091}
3092
3093/* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
3094
3095static SEM_PC
3096SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3097{
3098#define FLD(f) abuf->fields.sfmt_smulcc.f
3099 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3100 int UNUSED written = 0;
3101 IADDR UNUSED pc = abuf->addr;
3102 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3103
3104{
3105 QI tmp_cc;
3106 tmp_cc = 0;
3107if (EQBI (ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), ORIF (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255))))), 0)) {
3108 tmp_cc = ANDQI (tmp_cc, 14);
3109} else {
3110 tmp_cc = ORQI (tmp_cc, 1);
3111}
3112 {
3113 UQI opval = tmp_cc;
3114 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
3115 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
3116 }
3117}
3118
3119 return vpc;
3120#undef FLD
3121}
3122
3123/* setlo: setlo$pack $ulo16,$GRklo */
3124
3125static SEM_PC
3126SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3127{
3128#define FLD(f) abuf->fields.sfmt_setlo.f
3129 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3130 int UNUSED written = 0;
3131 IADDR UNUSED pc = abuf->addr;
3132 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3133
3134 {
3135 UHI opval = FLD (f_u16);
3136 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
3137 TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
3138 }
3139
3140 return vpc;
3141#undef FLD
3142}
3143
3144/* sethi: sethi$pack $uhi16,$GRkhi */
3145
3146static SEM_PC
3147SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3148{
3149#define FLD(f) abuf->fields.sfmt_sethi.f
3150 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3151 int UNUSED written = 0;
3152 IADDR UNUSED pc = abuf->addr;
3153 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3154
3155 {
3156 UHI opval = FLD (f_u16);
3157 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
3158 TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
3159 }
3160
3161 return vpc;
3162#undef FLD
3163}
3164
3165/* setlos: setlos$pack $slo16,$GRk */
3166
3167static SEM_PC
3168SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3169{
3170#define FLD(f) abuf->fields.sfmt_setlos.f
3171 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3172 int UNUSED written = 0;
3173 IADDR UNUSED pc = abuf->addr;
3174 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3175
3176 {
3177 SI opval = FLD (f_s16);
3178 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3179 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3180 }
3181
3182 return vpc;
3183#undef FLD
3184}
3185
3186/* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3187
3188static SEM_PC
3189SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3190{
3191#define FLD(f) abuf->fields.sfmt_addcc.f
3192 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3193 int UNUSED written = 0;
3194 IADDR UNUSED pc = abuf->addr;
3195 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3196
3197 {
3198 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3199 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3200 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3201 }
3202
3203 return vpc;
3204#undef FLD
3205}
3206
3207/* ldub: ldub$pack @($GRi,$GRj),$GRk */
3208
3209static SEM_PC
3210SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3211{
3212#define FLD(f) abuf->fields.sfmt_addcc.f
3213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3214 int UNUSED written = 0;
3215 IADDR UNUSED pc = abuf->addr;
3216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3217
3218 {
3219 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3220 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3221 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3222 }
3223
3224 return vpc;
3225#undef FLD
3226}
3227
3228/* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3229
3230static SEM_PC
3231SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3232{
3233#define FLD(f) abuf->fields.sfmt_addcc.f
3234 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3235 int UNUSED written = 0;
3236 IADDR UNUSED pc = abuf->addr;
3237 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3238
3239 {
3240 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3241 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3242 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3243 }
3244
3245 return vpc;
3246#undef FLD
3247}
3248
3249/* lduh: lduh$pack @($GRi,$GRj),$GRk */
3250
3251static SEM_PC
3252SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3253{
3254#define FLD(f) abuf->fields.sfmt_addcc.f
3255 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3256 int UNUSED written = 0;
3257 IADDR UNUSED pc = abuf->addr;
3258 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3259
3260 {
3261 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3262 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3263 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3264 }
3265
3266 return vpc;
3267#undef FLD
3268}
3269
3270/* ld: ld$pack @($GRi,$GRj),$GRk */
3271
3272static SEM_PC
3273SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3274{
3275#define FLD(f) abuf->fields.sfmt_addcc.f
3276 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3277 int UNUSED written = 0;
3278 IADDR UNUSED pc = abuf->addr;
3279 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3280
3281 {
3282 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3283 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3284 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3285 }
3286
3287 return vpc;
3288#undef FLD
3289}
3290
3291/* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3292
3293static SEM_PC
3294SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3295{
3296#define FLD(f) abuf->fields.sfmt_cldbfu.f
3297 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3298 int UNUSED written = 0;
3299 IADDR UNUSED pc = abuf->addr;
3300 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3301
3302 {
3303 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3304 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3305 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3306 }
3307
3308 return vpc;
3309#undef FLD
3310}
3311
3312/* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3313
3314static SEM_PC
3315SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3316{
3317#define FLD(f) abuf->fields.sfmt_cldbfu.f
3318 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3319 int UNUSED written = 0;
3320 IADDR UNUSED pc = abuf->addr;
3321 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3322
3323 {
3324 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3325 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3326 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3327 }
3328
3329 return vpc;
3330#undef FLD
3331}
3332
3333/* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3334
3335static SEM_PC
3336SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3337{
3338#define FLD(f) abuf->fields.sfmt_cldbfu.f
3339 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3340 int UNUSED written = 0;
3341 IADDR UNUSED pc = abuf->addr;
3342 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3343
3344 {
3345 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3346 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3347 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3348 }
3349
3350 return vpc;
3351#undef FLD
3352}
3353
3354/* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3355
3356static SEM_PC
3357SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3358{
3359#define FLD(f) abuf->fields.sfmt_ldcu.f
3360 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3361 int UNUSED written = 0;
3362 IADDR UNUSED pc = abuf->addr;
3363 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3364
3365 {
3366 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3367 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3368 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3369 }
3370
3371 return vpc;
3372#undef FLD
3373}
3374
3375/* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3376
3377static SEM_PC
3378SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3379{
3380#define FLD(f) abuf->fields.sfmt_addcc.f
3381 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3382 int UNUSED written = 0;
3383 IADDR UNUSED pc = abuf->addr;
3384 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3385
3386{
3387 BI tmp_do_op;
3388 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3389if (tmp_do_op) {
3390 {
3391 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3392 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3393 written |= (1 << 6);
3394 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3395 }
3396}
3397}
3398
3399 abuf->written = written;
3400 return vpc;
3401#undef FLD
3402}
3403
3404/* nldub: nldub$pack @($GRi,$GRj),$GRk */
3405
3406static SEM_PC
3407SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3408{
3409#define FLD(f) abuf->fields.sfmt_addcc.f
3410 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3411 int UNUSED written = 0;
3412 IADDR UNUSED pc = abuf->addr;
3413 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3414
3415{
3416 BI tmp_do_op;
3417 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3418if (tmp_do_op) {
3419 {
3420 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3421 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3422 written |= (1 << 6);
3423 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3424 }
3425}
3426}
3427
3428 abuf->written = written;
3429 return vpc;
3430#undef FLD
3431}
3432
3433/* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3434
3435static SEM_PC
3436SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3437{
3438#define FLD(f) abuf->fields.sfmt_addcc.f
3439 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3440 int UNUSED written = 0;
3441 IADDR UNUSED pc = abuf->addr;
3442 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3443
3444{
3445 BI tmp_do_op;
3446 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3447if (tmp_do_op) {
3448 {
3449 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3450 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3451 written |= (1 << 6);
3452 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3453 }
3454}
3455}
3456
3457 abuf->written = written;
3458 return vpc;
3459#undef FLD
3460}
3461
3462/* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3463
3464static SEM_PC
3465SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3466{
3467#define FLD(f) abuf->fields.sfmt_addcc.f
3468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3469 int UNUSED written = 0;
3470 IADDR UNUSED pc = abuf->addr;
3471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3472
3473{
3474 BI tmp_do_op;
3475 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3476if (tmp_do_op) {
3477 {
3478 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3479 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3480 written |= (1 << 6);
3481 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3482 }
3483}
3484}
3485
3486 abuf->written = written;
3487 return vpc;
3488#undef FLD
3489}
3490
3491/* nld: nld$pack @($GRi,$GRj),$GRk */
3492
3493static SEM_PC
3494SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3495{
3496#define FLD(f) abuf->fields.sfmt_addcc.f
3497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3498 int UNUSED written = 0;
3499 IADDR UNUSED pc = abuf->addr;
3500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3501
3502{
3503 BI tmp_do_op;
3504 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3505if (tmp_do_op) {
3506 {
3507 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3508 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3509 written |= (1 << 6);
3510 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3511 }
3512}
3513}
3514
3515 abuf->written = written;
3516 return vpc;
3517#undef FLD
3518}
3519
3520/* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3521
3522static SEM_PC
3523SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3524{
3525#define FLD(f) abuf->fields.sfmt_cldbfu.f
3526 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3527 int UNUSED written = 0;
3528 IADDR UNUSED pc = abuf->addr;
3529 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3530
3531{
3532 BI tmp_do_op;
3533 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3534if (tmp_do_op) {
3535 {
3536 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3537 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3538 written |= (1 << 6);
3539 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3540 }
3541}
3542}
3543
3544 abuf->written = written;
3545 return vpc;
3546#undef FLD
3547}
3548
3549/* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3550
3551static SEM_PC
3552SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3553{
3554#define FLD(f) abuf->fields.sfmt_cldbfu.f
3555 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3556 int UNUSED written = 0;
3557 IADDR UNUSED pc = abuf->addr;
3558 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3559
3560{
3561 BI tmp_do_op;
3562 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3563if (tmp_do_op) {
3564 {
3565 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3566 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3567 written |= (1 << 6);
3568 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3569 }
3570}
3571}
3572
3573 abuf->written = written;
3574 return vpc;
3575#undef FLD
3576}
3577
3578/* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3579
3580static SEM_PC
3581SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3582{
3583#define FLD(f) abuf->fields.sfmt_cldbfu.f
3584 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3585 int UNUSED written = 0;
3586 IADDR UNUSED pc = abuf->addr;
3587 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3588
3589{
3590 BI tmp_do_op;
3591 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3592if (tmp_do_op) {
3593 {
3594 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3595 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3596 written |= (1 << 6);
3597 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3598 }
3599}
3600}
3601
3602 abuf->written = written;
3603 return vpc;
3604#undef FLD
3605}
3606
3607/* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3608
3609static SEM_PC
3610SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3611{
3612#define FLD(f) abuf->fields.sfmt_smulcc.f
3613 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3614 int UNUSED written = 0;
3615 IADDR UNUSED pc = abuf->addr;
3616 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3617
3618{
3619 SI tmp_address;
3620if (NESI (FLD (f_GRk), 0)) {
3621{
3622 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3623 {
3624 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3625 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3626 written |= (1 << 4);
3627 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3628 }
3629}
3630}
3631}
3632
3633 abuf->written = written;
3634 return vpc;
3635#undef FLD
3636}
3637
3638/* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3639
3640static SEM_PC
3641SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3642{
3643#define FLD(f) abuf->fields.sfmt_clddfu.f
3644 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3645 int UNUSED written = 0;
3646 IADDR UNUSED pc = abuf->addr;
3647 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3648
3649{
3650 SI tmp_address;
3651{
3652 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3653 {
3654 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3655 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3656 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3657 }
3658}
3659}
3660
3661 return vpc;
3662#undef FLD
3663}
3664
3665/* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3666
3667static SEM_PC
3668SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3669{
3670#define FLD(f) abuf->fields.sfmt_lddcu.f
3671 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3672 int UNUSED written = 0;
3673 IADDR UNUSED pc = abuf->addr;
3674 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3675
3676{
3677 SI tmp_address;
3678{
3679 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3680 {
3681 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3682 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3683 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3684 }
3685}
3686}
3687
3688 return vpc;
3689#undef FLD
3690}
3691
3692/* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3693
3694static SEM_PC
3695SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3696{
3697#define FLD(f) abuf->fields.sfmt_smulcc.f
3698 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3699 int UNUSED written = 0;
3700 IADDR UNUSED pc = abuf->addr;
3701 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3702
3703{
3704 SI tmp_address;
3705{
3706 BI tmp_do_op;
3707 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3708if (tmp_do_op) {
3709if (NESI (FLD (f_GRk), 0)) {
3710{
3711 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3712 {
3713 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3714 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3715 written |= (1 << 6);
3716 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3717 }
3718}
3719}
3720}
3721}
3722}
3723
3724 abuf->written = written;
3725 return vpc;
3726#undef FLD
3727}
3728
3729/* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3730
3731static SEM_PC
3732SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3733{
3734#define FLD(f) abuf->fields.sfmt_clddfu.f
3735 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3736 int UNUSED written = 0;
3737 IADDR UNUSED pc = abuf->addr;
3738 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3739
3740{
3741 SI tmp_address;
3742{
3743 BI tmp_do_op;
3744 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3745if (tmp_do_op) {
3746{
3747 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3748 {
3749 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3750 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3751 written |= (1 << 6);
3752 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3753 }
3754}
3755}
3756}
3757}
3758
3759 abuf->written = written;
3760 return vpc;
3761#undef FLD
3762}
3763
3764/* ldq: ldq$pack @($GRi,$GRj),$GRk */
3765
3766static SEM_PC
3767SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3768{
3769#define FLD(f) abuf->fields.sfmt_smulcc.f
3770 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3771 int UNUSED written = 0;
3772 IADDR UNUSED pc = abuf->addr;
3773 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3774
3775{
3776 SI tmp_address;
3777{
3778 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3779frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3780}
3781}
3782
3783 return vpc;
3784#undef FLD
3785}
3786
3787/* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3788
3789static SEM_PC
3790SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3791{
3792#define FLD(f) abuf->fields.sfmt_cstdfu.f
3793 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3794 int UNUSED written = 0;
3795 IADDR UNUSED pc = abuf->addr;
3796 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3797
3798{
3799 SI tmp_address;
3800{
3801 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3802frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3803}
3804}
3805
3806 return vpc;
3807#undef FLD
3808}
3809
3810/* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3811
3812static SEM_PC
3813SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3814{
3815#define FLD(f) abuf->fields.sfmt_stdcu.f
3816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3817 int UNUSED written = 0;
3818 IADDR UNUSED pc = abuf->addr;
3819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3820
3821{
3822 SI tmp_address;
3823{
3824 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3825frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3826}
3827}
3828
3829 return vpc;
3830#undef FLD
3831}
3832
3833/* nldq: nldq$pack @($GRi,$GRj),$GRk */
3834
3835static SEM_PC
3836SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3837{
3838#define FLD(f) abuf->fields.sfmt_smulcc.f
3839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3840 int UNUSED written = 0;
3841 IADDR UNUSED pc = abuf->addr;
3842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3843
3844{
3845 SI tmp_address;
3846{
3847 BI tmp_do_op;
3848 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3849if (tmp_do_op) {
3850{
3851 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3852frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3853}
3854}
3855}
3856}
3857
3858 return vpc;
3859#undef FLD
3860}
3861
3862/* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3863
3864static SEM_PC
3865SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3866{
3867#define FLD(f) abuf->fields.sfmt_cstdfu.f
3868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3869 int UNUSED written = 0;
3870 IADDR UNUSED pc = abuf->addr;
3871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3872
3873{
3874 SI tmp_address;
3875{
3876 BI tmp_do_op;
3877 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3878if (tmp_do_op) {
3879{
3880 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3881frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3882}
3883}
3884}
3885}
3886
3887 return vpc;
3888#undef FLD
3889}
3890
3891/* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3892
3893static SEM_PC
3894SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3895{
3896#define FLD(f) abuf->fields.sfmt_cldsbu.f
3897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3898 int UNUSED written = 0;
3899 IADDR UNUSED pc = abuf->addr;
3900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3901
3902{
3903 USI tmp_address;
3904 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3905 {
3906 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3907 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3908 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3909 }
3910if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3911{
3912 {
3913 SI opval = tmp_address;
3914 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3915 written |= (1 << 5);
3916 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3917 }
3918frvbf_force_update (current_cpu);
3919}
3920}
3921}
3922
3923 abuf->written = written;
3924 return vpc;
3925#undef FLD
3926}
3927
3928/* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3929
3930static SEM_PC
3931SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3932{
3933#define FLD(f) abuf->fields.sfmt_cldsbu.f
3934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3935 int UNUSED written = 0;
3936 IADDR UNUSED pc = abuf->addr;
3937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3938
3939{
3940 USI tmp_address;
3941 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3942 {
3943 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3944 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3945 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3946 }
3947if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3948{
3949 {
3950 SI opval = tmp_address;
3951 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3952 written |= (1 << 5);
3953 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3954 }
3955frvbf_force_update (current_cpu);
3956}
3957}
3958}
3959
3960 abuf->written = written;
3961 return vpc;
3962#undef FLD
3963}
3964
3965/* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3966
3967static SEM_PC
3968SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3969{
3970#define FLD(f) abuf->fields.sfmt_cldsbu.f
3971 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3972 int UNUSED written = 0;
3973 IADDR UNUSED pc = abuf->addr;
3974 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3975
3976{
3977 USI tmp_address;
3978 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3979 {
3980 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3981 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3982 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3983 }
3984if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3985{
3986 {
3987 SI opval = tmp_address;
3988 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3989 written |= (1 << 5);
3990 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3991 }
3992frvbf_force_update (current_cpu);
3993}
3994}
3995}
3996
3997 abuf->written = written;
3998 return vpc;
3999#undef FLD
4000}
4001
4002/* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
4003
4004static SEM_PC
4005SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4006{
4007#define FLD(f) abuf->fields.sfmt_cldsbu.f
4008 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4009 int UNUSED written = 0;
4010 IADDR UNUSED pc = abuf->addr;
4011 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4012
4013{
4014 USI tmp_address;
4015 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4016 {
4017 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4018 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4019 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4020 }
4021if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4022{
4023 {
4024 SI opval = tmp_address;
4025 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4026 written |= (1 << 5);
4027 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4028 }
4029frvbf_force_update (current_cpu);
4030}
4031}
4032}
4033
4034 abuf->written = written;
4035 return vpc;
4036#undef FLD
4037}
4038
4039/* ldu: ldu$pack @($GRi,$GRj),$GRk */
4040
4041static SEM_PC
4042SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4043{
4044#define FLD(f) abuf->fields.sfmt_cldsbu.f
4045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4046 int UNUSED written = 0;
4047 IADDR UNUSED pc = abuf->addr;
4048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4049
4050{
4051 USI tmp_address;
4052 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4053 {
4054 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4055 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4056 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4057 }
4058if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4059{
4060 {
4061 SI opval = tmp_address;
4062 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4063 written |= (1 << 5);
4064 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4065 }
4066frvbf_force_update (current_cpu);
4067}
4068}
4069}
4070
4071 abuf->written = written;
4072 return vpc;
4073#undef FLD
4074}
4075
4076/* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
4077
4078static SEM_PC
4079SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4080{
4081#define FLD(f) abuf->fields.sfmt_cldsbu.f
4082 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4083 int UNUSED written = 0;
4084 IADDR UNUSED pc = abuf->addr;
4085 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4086
4087{
4088 BI tmp_do_op;
4089 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
4090if (tmp_do_op) {
4091{
4092 USI tmp_address;
4093 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4094 {
4095 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
4096 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4097 written |= (1 << 7);
4098 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4099 }
4100if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4101{
4102 {
4103 SI opval = tmp_address;
4104 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4105 written |= (1 << 6);
4106 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4107 }
4108frvbf_force_update (current_cpu);
4109}
4110}
4111}
4112}
4113}
4114
4115 abuf->written = written;
4116 return vpc;
4117#undef FLD
4118}
4119
4120/* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
4121
4122static SEM_PC
4123SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4124{
4125#define FLD(f) abuf->fields.sfmt_cldsbu.f
4126 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4127 int UNUSED written = 0;
4128 IADDR UNUSED pc = abuf->addr;
4129 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4130
4131{
4132 BI tmp_do_op;
4133 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
4134if (tmp_do_op) {
4135{
4136 USI tmp_address;
4137 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4138 {
4139 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4140 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4141 written |= (1 << 7);
4142 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4143 }
4144if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4145{
4146 {
4147 SI opval = tmp_address;
4148 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4149 written |= (1 << 6);
4150 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4151 }
4152frvbf_force_update (current_cpu);
4153}
4154}
4155}
4156}
4157}
4158
4159 abuf->written = written;
4160 return vpc;
4161#undef FLD
4162}
4163
4164/* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4165
4166static SEM_PC
4167SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4168{
4169#define FLD(f) abuf->fields.sfmt_cldsbu.f
4170 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4171 int UNUSED written = 0;
4172 IADDR UNUSED pc = abuf->addr;
4173 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4174
4175{
4176 BI tmp_do_op;
4177 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4178if (tmp_do_op) {
4179{
4180 USI tmp_address;
4181 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4182 {
4183 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4184 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4185 written |= (1 << 7);
4186 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4187 }
4188if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4189{
4190 {
4191 SI opval = tmp_address;
4192 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4193 written |= (1 << 6);
4194 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4195 }
4196frvbf_force_update (current_cpu);
4197}
4198}
4199}
4200}
4201}
4202
4203 abuf->written = written;
4204 return vpc;
4205#undef FLD
4206}
4207
4208/* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4209
4210static SEM_PC
4211SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4212{
4213#define FLD(f) abuf->fields.sfmt_cldsbu.f
4214 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4215 int UNUSED written = 0;
4216 IADDR UNUSED pc = abuf->addr;
4217 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4218
4219{
4220 BI tmp_do_op;
4221 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4222if (tmp_do_op) {
4223{
4224 USI tmp_address;
4225 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4226 {
4227 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4228 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4229 written |= (1 << 7);
4230 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4231 }
4232if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4233{
4234 {
4235 SI opval = tmp_address;
4236 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4237 written |= (1 << 6);
4238 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4239 }
4240frvbf_force_update (current_cpu);
4241}
4242}
4243}
4244}
4245}
4246
4247 abuf->written = written;
4248 return vpc;
4249#undef FLD
4250}
4251
4252/* nldu: nldu$pack @($GRi,$GRj),$GRk */
4253
4254static SEM_PC
4255SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4256{
4257#define FLD(f) abuf->fields.sfmt_cldsbu.f
4258 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4259 int UNUSED written = 0;
4260 IADDR UNUSED pc = abuf->addr;
4261 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4262
4263{
4264 BI tmp_do_op;
4265 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4266if (tmp_do_op) {
4267{
4268 USI tmp_address;
4269 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4270 {
4271 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4272 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4273 written |= (1 << 7);
4274 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4275 }
4276if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4277{
4278 {
4279 SI opval = tmp_address;
4280 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4281 written |= (1 << 6);
4282 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4283 }
4284frvbf_force_update (current_cpu);
4285}
4286}
4287}
4288}
4289}
4290
4291 abuf->written = written;
4292 return vpc;
4293#undef FLD
4294}
4295
4296/* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4297
4298static SEM_PC
4299SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4300{
4301#define FLD(f) abuf->fields.sfmt_cldbfu.f
4302 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4303 int UNUSED written = 0;
4304 IADDR UNUSED pc = abuf->addr;
4305 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4306
4307{
4308 USI tmp_address;
4309 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4310 {
4311 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4312 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4313 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4314 }
4315 {
4316 SI opval = tmp_address;
4317 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4318 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4319 }
4320frvbf_force_update (current_cpu);
4321}
4322
4323 return vpc;
4324#undef FLD
4325}
4326
4327/* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4328
4329static SEM_PC
4330SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4331{
4332#define FLD(f) abuf->fields.sfmt_cldbfu.f
4333 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4334 int UNUSED written = 0;
4335 IADDR UNUSED pc = abuf->addr;
4336 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4337
4338{
4339 USI tmp_address;
4340 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4341 {
4342 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4343 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4344 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4345 }
4346 {
4347 SI opval = tmp_address;
4348 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4349 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4350 }
4351frvbf_force_update (current_cpu);
4352}
4353
4354 return vpc;
4355#undef FLD
4356}
4357
4358/* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4359
4360static SEM_PC
4361SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4362{
4363#define FLD(f) abuf->fields.sfmt_cldbfu.f
4364 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4365 int UNUSED written = 0;
4366 IADDR UNUSED pc = abuf->addr;
4367 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4368
4369{
4370 USI tmp_address;
4371 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4372 {
4373 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4374 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4375 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4376 }
4377 {
4378 SI opval = tmp_address;
4379 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4380 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4381 }
4382frvbf_force_update (current_cpu);
4383}
4384
4385 return vpc;
4386#undef FLD
4387}
4388
4389/* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4390
4391static SEM_PC
4392SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4393{
4394#define FLD(f) abuf->fields.sfmt_ldcu.f
4395 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4396 int UNUSED written = 0;
4397 IADDR UNUSED pc = abuf->addr;
4398 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4399
4400{
4401 USI tmp_address;
4402 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4403 {
4404 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4405 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4406 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4407 }
4408 {
4409 SI opval = tmp_address;
4410 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4411 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4412 }
4413frvbf_force_update (current_cpu);
4414}
4415
4416 return vpc;
4417#undef FLD
4418}
4419
4420/* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4421
4422static SEM_PC
4423SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4424{
4425#define FLD(f) abuf->fields.sfmt_cldbfu.f
4426 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4427 int UNUSED written = 0;
4428 IADDR UNUSED pc = abuf->addr;
4429 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4430
4431{
4432 BI tmp_do_op;
4433 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4434if (tmp_do_op) {
4435{
4436 USI tmp_address;
4437 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4438 {
4439 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4440 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4441 written |= (1 << 6);
4442 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4443 }
4444 {
4445 SI opval = tmp_address;
4446 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4447 written |= (1 << 7);
4448 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4449 }
4450frvbf_force_update (current_cpu);
4451}
4452}
4453}
4454
4455 abuf->written = written;
4456 return vpc;
4457#undef FLD
4458}
4459
4460/* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4461
4462static SEM_PC
4463SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4464{
4465#define FLD(f) abuf->fields.sfmt_cldbfu.f
4466 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4467 int UNUSED written = 0;
4468 IADDR UNUSED pc = abuf->addr;
4469 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4470
4471{
4472 BI tmp_do_op;
4473 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4474if (tmp_do_op) {
4475{
4476 USI tmp_address;
4477 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4478 {
4479 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4480 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4481 written |= (1 << 6);
4482 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4483 }
4484 {
4485 SI opval = tmp_address;
4486 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4487 written |= (1 << 7);
4488 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4489 }
4490frvbf_force_update (current_cpu);
4491}
4492}
4493}
4494
4495 abuf->written = written;
4496 return vpc;
4497#undef FLD
4498}
4499
4500/* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4501
4502static SEM_PC
4503SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4504{
4505#define FLD(f) abuf->fields.sfmt_cldbfu.f
4506 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4507 int UNUSED written = 0;
4508 IADDR UNUSED pc = abuf->addr;
4509 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4510
4511{
4512 BI tmp_do_op;
4513 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4514if (tmp_do_op) {
4515{
4516 USI tmp_address;
4517 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4518 {
4519 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4520 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4521 written |= (1 << 6);
4522 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4523 }
4524 {
4525 SI opval = tmp_address;
4526 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4527 written |= (1 << 7);
4528 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4529 }
4530frvbf_force_update (current_cpu);
4531}
4532}
4533}
4534
4535 abuf->written = written;
4536 return vpc;
4537#undef FLD
4538}
4539
4540/* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4541
4542static SEM_PC
4543SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4544{
4545#define FLD(f) abuf->fields.sfmt_clddu.f
4546 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4547 int UNUSED written = 0;
4548 IADDR UNUSED pc = abuf->addr;
4549 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4550
4551{
4552 SI tmp_address;
4553if (NESI (FLD (f_GRk), 0)) {
4554{
4555 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4556 {
4557 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4558 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4559 written |= (1 << 5);
4560 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4561 }
4562}
4563}
4564if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4565{
4566 {
4567 SI opval = tmp_address;
4568 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4569 written |= (1 << 6);
4570 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4571 }
4572frvbf_force_update (current_cpu);
4573}
4574}
4575}
4576
4577 abuf->written = written;
4578 return vpc;
4579#undef FLD
4580}
4581
4582/* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4583
4584static SEM_PC
4585SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4586{
4587#define FLD(f) abuf->fields.sfmt_clddu.f
4588 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4589 int UNUSED written = 0;
4590 IADDR UNUSED pc = abuf->addr;
4591 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4592
4593{
4594 BI tmp_do_op;
4595 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4596if (tmp_do_op) {
4597{
4598 SI tmp_address;
4599if (NESI (FLD (f_GRk), 0)) {
4600{
4601 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4602 {
4603 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4604 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4605 written |= (1 << 6);
4606 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4607 }
4608}
4609}
4610if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4611{
4612 {
4613 SI opval = tmp_address;
4614 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4615 written |= (1 << 7);
4616 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4617 }
4618frvbf_force_update (current_cpu);
4619}
4620}
4621}
4622}
4623}
4624
4625 abuf->written = written;
4626 return vpc;
4627#undef FLD
4628}
4629
4630/* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4631
4632static SEM_PC
4633SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4634{
4635#define FLD(f) abuf->fields.sfmt_clddfu.f
4636 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4637 int UNUSED written = 0;
4638 IADDR UNUSED pc = abuf->addr;
4639 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4640
4641{
4642 SI tmp_address;
4643{
4644 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4645 {
4646 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4647 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4648 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4649 }
4650}
4651 {
4652 SI opval = tmp_address;
4653 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4654 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4655 }
4656frvbf_force_update (current_cpu);
4657}
4658
4659 return vpc;
4660#undef FLD
4661}
4662
4663/* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4664
4665static SEM_PC
4666SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4667{
4668#define FLD(f) abuf->fields.sfmt_lddcu.f
4669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4670 int UNUSED written = 0;
4671 IADDR UNUSED pc = abuf->addr;
4672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4673
4674{
4675 SI tmp_address;
4676{
4677 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4678 {
4679 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4680 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4681 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4682 }
4683}
4684 {
4685 SI opval = tmp_address;
4686 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4687 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4688 }
4689frvbf_force_update (current_cpu);
4690}
4691
4692 return vpc;
4693#undef FLD
4694}
4695
4696/* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4697
4698static SEM_PC
4699SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4700{
4701#define FLD(f) abuf->fields.sfmt_clddfu.f
4702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4703 int UNUSED written = 0;
4704 IADDR UNUSED pc = abuf->addr;
4705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4706
4707{
4708 BI tmp_do_op;
4709 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4710if (tmp_do_op) {
4711{
4712 SI tmp_address;
4713{
4714 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4715 {
4716 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4717 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4718 written |= (1 << 6);
4719 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4720 }
4721}
4722 {
4723 SI opval = tmp_address;
4724 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4725 written |= (1 << 7);
4726 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4727 }
4728frvbf_force_update (current_cpu);
4729}
4730}
4731}
4732
4733 abuf->written = written;
4734 return vpc;
4735#undef FLD
4736}
4737
4738/* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4739
4740static SEM_PC
4741SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4742{
4743#define FLD(f) abuf->fields.sfmt_cstdu.f
4744 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4745 int UNUSED written = 0;
4746 IADDR UNUSED pc = abuf->addr;
4747 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4748
4749{
4750 SI tmp_address;
4751{
4752 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4753frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4754}
4755if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4756{
4757 {
4758 SI opval = tmp_address;
4759 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4760 written |= (1 << 5);
4761 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4762 }
4763frvbf_force_update (current_cpu);
4764}
4765}
4766}
4767
4768 abuf->written = written;
4769 return vpc;
4770#undef FLD
4771}
4772
4773/* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4774
4775static SEM_PC
4776SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4777{
4778#define FLD(f) abuf->fields.sfmt_cstdu.f
4779 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4780 int UNUSED written = 0;
4781 IADDR UNUSED pc = abuf->addr;
4782 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4783
4784{
4785 BI tmp_do_op;
4786 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4787if (tmp_do_op) {
4788{
4789 SI tmp_address;
4790{
4791 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4792frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4793}
4794if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4795{
4796 {
4797 SI opval = tmp_address;
4798 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4799 written |= (1 << 6);
4800 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4801 }
4802frvbf_force_update (current_cpu);
4803}
4804}
4805}
4806}
4807}
4808
4809 abuf->written = written;
4810 return vpc;
4811#undef FLD
4812}
4813
4814/* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4815
4816static SEM_PC
4817SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4818{
4819#define FLD(f) abuf->fields.sfmt_cstdfu.f
4820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4821 int UNUSED written = 0;
4822 IADDR UNUSED pc = abuf->addr;
4823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4824
4825{
4826 SI tmp_address;
4827{
4828 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4829frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4830}
4831 {
4832 SI opval = tmp_address;
4833 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4834 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4835 }
4836frvbf_force_update (current_cpu);
4837}
4838
4839 return vpc;
4840#undef FLD
4841}
4842
4843/* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4844
4845static SEM_PC
4846SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4847{
4848#define FLD(f) abuf->fields.sfmt_stdcu.f
4849 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4850 int UNUSED written = 0;
4851 IADDR UNUSED pc = abuf->addr;
4852 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4853
4854{
4855 SI tmp_address;
4856{
4857 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4858frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4859}
4860 {
4861 SI opval = tmp_address;
4862 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4863 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4864 }
4865frvbf_force_update (current_cpu);
4866}
4867
4868 return vpc;
4869#undef FLD
4870}
4871
4872/* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4873
4874static SEM_PC
4875SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4876{
4877#define FLD(f) abuf->fields.sfmt_cstdfu.f
4878 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4879 int UNUSED written = 0;
4880 IADDR UNUSED pc = abuf->addr;
4881 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4882
4883{
4884 BI tmp_do_op;
4885 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4886if (tmp_do_op) {
4887{
4888 SI tmp_address;
4889{
4890 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4891frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4892}
4893 {
4894 SI opval = tmp_address;
4895 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4896 written |= (1 << 6);
4897 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4898 }
4899frvbf_force_update (current_cpu);
4900}
4901}
4902}
4903
4904 abuf->written = written;
4905 return vpc;
4906#undef FLD
4907}
4908
4909/* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4910
4911static SEM_PC
4912SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4913{
4914#define FLD(f) abuf->fields.sfmt_swapi.f
4915 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4916 int UNUSED written = 0;
4917 IADDR UNUSED pc = abuf->addr;
4918 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4919
4920 {
4921 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4922 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4923 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4924 }
4925
4926 return vpc;
4927#undef FLD
4928}
4929
4930/* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4931
4932static SEM_PC
4933SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4934{
4935#define FLD(f) abuf->fields.sfmt_swapi.f
4936 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4937 int UNUSED written = 0;
4938 IADDR UNUSED pc = abuf->addr;
4939 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4940
4941 {
4942 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4943 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4944 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4945 }
4946
4947 return vpc;
4948#undef FLD
4949}
4950
4951/* ldi: ldi$pack @($GRi,$d12),$GRk */
4952
4953static SEM_PC
4954SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4955{
4956#define FLD(f) abuf->fields.sfmt_swapi.f
4957 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4958 int UNUSED written = 0;
4959 IADDR UNUSED pc = abuf->addr;
4960 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4961
4962 {
4963 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4964 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4965 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4966 }
4967
4968 return vpc;
4969#undef FLD
4970}
4971
4972/* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4973
4974static SEM_PC
4975SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4976{
4977#define FLD(f) abuf->fields.sfmt_swapi.f
4978 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4979 int UNUSED written = 0;
4980 IADDR UNUSED pc = abuf->addr;
4981 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4982
4983 {
4984 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4985 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4986 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4987 }
4988
4989 return vpc;
4990#undef FLD
4991}
4992
4993/* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4994
4995static SEM_PC
4996SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4997{
4998#define FLD(f) abuf->fields.sfmt_swapi.f
4999 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5000 int UNUSED written = 0;
5001 IADDR UNUSED pc = abuf->addr;
5002 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5003
5004 {
5005 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5006 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5007 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5008 }
5009
5010 return vpc;
5011#undef FLD
5012}
5013
5014/* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
5015
5016static SEM_PC
5017SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5018{
5019#define FLD(f) abuf->fields.sfmt_ldbfi.f
5020 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5021 int UNUSED written = 0;
5022 IADDR UNUSED pc = abuf->addr;
5023 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5024
5025 {
5026 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5027 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5028 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5029 }
5030
5031 return vpc;
5032#undef FLD
5033}
5034
5035/* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
5036
5037static SEM_PC
5038SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5039{
5040#define FLD(f) abuf->fields.sfmt_ldbfi.f
5041 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5042 int UNUSED written = 0;
5043 IADDR UNUSED pc = abuf->addr;
5044 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5045
5046 {
5047 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5048 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5049 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5050 }
5051
5052 return vpc;
5053#undef FLD
5054}
5055
5056/* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
5057
5058static SEM_PC
5059SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5060{
5061#define FLD(f) abuf->fields.sfmt_ldbfi.f
5062 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5063 int UNUSED written = 0;
5064 IADDR UNUSED pc = abuf->addr;
5065 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5066
5067 {
5068 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5069 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5070 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5071 }
5072
5073 return vpc;
5074#undef FLD
5075}
5076
5077/* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
5078
5079static SEM_PC
5080SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5081{
5082#define FLD(f) abuf->fields.sfmt_swapi.f
5083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5084 int UNUSED written = 0;
5085 IADDR UNUSED pc = abuf->addr;
5086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5087
5088{
5089 BI tmp_do_op;
5090 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
5091if (tmp_do_op) {
5092 {
5093 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5094 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5095 written |= (1 << 5);
5096 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5097 }
5098}
5099}
5100
5101 abuf->written = written;
5102 return vpc;
5103#undef FLD
5104}
5105
5106/* nldubi: nldubi$pack @($GRi,$d12),$GRk */
5107
5108static SEM_PC
5109SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5110{
5111#define FLD(f) abuf->fields.sfmt_swapi.f
5112 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5113 int UNUSED written = 0;
5114 IADDR UNUSED pc = abuf->addr;
5115 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5116
5117{
5118 BI tmp_do_op;
5119 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
5120if (tmp_do_op) {
5121 {
5122 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5123 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5124 written |= (1 << 5);
5125 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5126 }
5127}
5128}
5129
5130 abuf->written = written;
5131 return vpc;
5132#undef FLD
5133}
5134
5135/* nldshi: nldshi$pack @($GRi,$d12),$GRk */
5136
5137static SEM_PC
5138SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5139{
5140#define FLD(f) abuf->fields.sfmt_swapi.f
5141 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5142 int UNUSED written = 0;
5143 IADDR UNUSED pc = abuf->addr;
5144 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5145
5146{
5147 BI tmp_do_op;
5148 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
5149if (tmp_do_op) {
5150 {
5151 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5152 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5153 written |= (1 << 5);
5154 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5155 }
5156}
5157}
5158
5159 abuf->written = written;
5160 return vpc;
5161#undef FLD
5162}
5163
5164/* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5165
5166static SEM_PC
5167SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5168{
5169#define FLD(f) abuf->fields.sfmt_swapi.f
5170 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5171 int UNUSED written = 0;
5172 IADDR UNUSED pc = abuf->addr;
5173 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5174
5175{
5176 BI tmp_do_op;
5177 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5178if (tmp_do_op) {
5179 {
5180 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5181 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5182 written |= (1 << 5);
5183 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5184 }
5185}
5186}
5187
5188 abuf->written = written;
5189 return vpc;
5190#undef FLD
5191}
5192
5193/* nldi: nldi$pack @($GRi,$d12),$GRk */
5194
5195static SEM_PC
5196SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5197{
5198#define FLD(f) abuf->fields.sfmt_swapi.f
5199 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5200 int UNUSED written = 0;
5201 IADDR UNUSED pc = abuf->addr;
5202 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5203
5204{
5205 BI tmp_do_op;
5206 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5207if (tmp_do_op) {
5208 {
5209 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5210 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5211 written |= (1 << 5);
5212 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5213 }
5214}
5215}
5216
5217 abuf->written = written;
5218 return vpc;
5219#undef FLD
5220}
5221
5222/* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5223
5224static SEM_PC
5225SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5226{
5227#define FLD(f) abuf->fields.sfmt_ldbfi.f
5228 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5229 int UNUSED written = 0;
5230 IADDR UNUSED pc = abuf->addr;
5231 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5232
5233{
5234 BI tmp_do_op;
5235 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5236if (tmp_do_op) {
5237 {
5238 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5239 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5240 written |= (1 << 5);
5241 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5242 }
5243}
5244}
5245
5246 abuf->written = written;
5247 return vpc;
5248#undef FLD
5249}
5250
5251/* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5252
5253static SEM_PC
5254SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5255{
5256#define FLD(f) abuf->fields.sfmt_ldbfi.f
5257 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5258 int UNUSED written = 0;
5259 IADDR UNUSED pc = abuf->addr;
5260 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5261
5262{
5263 BI tmp_do_op;
5264 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5265if (tmp_do_op) {
5266 {
5267 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5268 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5269 written |= (1 << 5);
5270 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5271 }
5272}
5273}
5274
5275 abuf->written = written;
5276 return vpc;
5277#undef FLD
5278}
5279
5280/* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5281
5282static SEM_PC
5283SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5284{
5285#define FLD(f) abuf->fields.sfmt_ldbfi.f
5286 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5287 int UNUSED written = 0;
5288 IADDR UNUSED pc = abuf->addr;
5289 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5290
5291{
5292 BI tmp_do_op;
5293 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5294if (tmp_do_op) {
5295 {
5296 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5297 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5298 written |= (1 << 5);
5299 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5300 }
5301}
5302}
5303
5304 abuf->written = written;
5305 return vpc;
5306#undef FLD
5307}
5308
5309/* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5310
5311static SEM_PC
5312SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5313{
5314#define FLD(f) abuf->fields.sfmt_smuli.f
5315 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5316 int UNUSED written = 0;
5317 IADDR UNUSED pc = abuf->addr;
5318 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5319
5320{
5321 SI tmp_address;
5322if (NESI (FLD (f_GRk), 0)) {
5323{
5324 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5325 {
5326 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5327 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5328 written |= (1 << 4);
5329 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5330 }
5331}
5332}
5333}
5334
5335 abuf->written = written;
5336 return vpc;
5337#undef FLD
5338}
5339
5340/* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5341
5342static SEM_PC
5343SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5344{
5345#define FLD(f) abuf->fields.sfmt_lddfi.f
5346 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5347 int UNUSED written = 0;
5348 IADDR UNUSED pc = abuf->addr;
5349 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5350
5351{
5352 SI tmp_address;
5353{
5354 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5355 {
5356 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5357 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5358 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5359 }
5360}
5361}
5362
5363 return vpc;
5364#undef FLD
5365}
5366
5367/* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5368
5369static SEM_PC
5370SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5371{
5372#define FLD(f) abuf->fields.sfmt_smuli.f
5373 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5374 int UNUSED written = 0;
5375 IADDR UNUSED pc = abuf->addr;
5376 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5377
5378{
5379 SI tmp_address;
5380{
5381 BI tmp_do_op;
5382 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5383if (tmp_do_op) {
5384if (NESI (FLD (f_GRk), 0)) {
5385{
5386 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5387 {
5388 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5389 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5390 written |= (1 << 5);
5391 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5392 }
5393}
5394}
5395}
5396}
5397}
5398
5399 abuf->written = written;
5400 return vpc;
5401#undef FLD
5402}
5403
5404/* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5405
5406static SEM_PC
5407SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5408{
5409#define FLD(f) abuf->fields.sfmt_lddfi.f
5410 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5411 int UNUSED written = 0;
5412 IADDR UNUSED pc = abuf->addr;
5413 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5414
5415{
5416 SI tmp_address;
5417{
5418 BI tmp_do_op;
5419 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5420if (tmp_do_op) {
5421{
5422 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5423 {
5424 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5425 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5426 written |= (1 << 5);
5427 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5428 }
5429}
5430}
5431}
5432}
5433
5434 abuf->written = written;
5435 return vpc;
5436#undef FLD
5437}
5438
5439/* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5440
5441static SEM_PC
5442SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5443{
5444#define FLD(f) abuf->fields.sfmt_stdi.f
5445 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5446 int UNUSED written = 0;
5447 IADDR UNUSED pc = abuf->addr;
5448 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5449
5450{
5451 SI tmp_address;
5452{
5453 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5454frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5455}
5456}
5457
5458 return vpc;
5459#undef FLD
5460}
5461
5462/* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5463
5464static SEM_PC
5465SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5466{
5467#define FLD(f) abuf->fields.sfmt_stdfi.f
5468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5469 int UNUSED written = 0;
5470 IADDR UNUSED pc = abuf->addr;
5471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5472
5473{
5474 SI tmp_address;
5475{
5476 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5477frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5478}
5479}
5480
5481 return vpc;
5482#undef FLD
5483}
5484
b34f6357
DB
5485/* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5486
5487static SEM_PC
5488SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5489{
5490#define FLD(f) abuf->fields.sfmt_stdfi.f
5491 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5492 int UNUSED written = 0;
5493 IADDR UNUSED pc = abuf->addr;
5494 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5495
5496{
5497 SI tmp_address;
5498{
5499 BI tmp_do_op;
5500 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5501if (tmp_do_op) {
5502{
5503 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5504frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5505}
5506}
5507}
5508}
5509
5510 return vpc;
5511#undef FLD
5512}
5513
5514/* stb: stb$pack $GRk,@($GRi,$GRj) */
5515
5516static SEM_PC
5517SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5518{
5519#define FLD(f) abuf->fields.sfmt_cswap.f
5520 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5521 int UNUSED written = 0;
5522 IADDR UNUSED pc = abuf->addr;
5523 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5524
5525frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
5526
5527 return vpc;
5528#undef FLD
5529}
5530
5531/* sth: sth$pack $GRk,@($GRi,$GRj) */
5532
5533static SEM_PC
5534SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5535{
5536#define FLD(f) abuf->fields.sfmt_cswap.f
5537 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5538 int UNUSED written = 0;
5539 IADDR UNUSED pc = abuf->addr;
5540 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5541
5542frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
5543
5544 return vpc;
5545#undef FLD
5546}
5547
5548/* st: st$pack $GRk,@($GRi,$GRj) */
5549
5550static SEM_PC
5551SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5552{
5553#define FLD(f) abuf->fields.sfmt_cswap.f
5554 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5555 int UNUSED written = 0;
5556 IADDR UNUSED pc = abuf->addr;
5557 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5558
5559frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
5560
5561 return vpc;
5562#undef FLD
5563}
5564
5565/* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5566
5567static SEM_PC
5568SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5569{
5570#define FLD(f) abuf->fields.sfmt_cstbfu.f
5571 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5572 int UNUSED written = 0;
5573 IADDR UNUSED pc = abuf->addr;
5574 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5575
5576frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
5577
5578 return vpc;
5579#undef FLD
5580}
5581
5582/* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5583
5584static SEM_PC
5585SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5586{
5587#define FLD(f) abuf->fields.sfmt_cstbfu.f
5588 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5589 int UNUSED written = 0;
5590 IADDR UNUSED pc = abuf->addr;
5591 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5592
5593frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
5594
5595 return vpc;
5596#undef FLD
5597}
5598
5599/* stf: stf$pack $FRintk,@($GRi,$GRj) */
5600
5601static SEM_PC
5602SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5603{
5604#define FLD(f) abuf->fields.sfmt_cstbfu.f
5605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5606 int UNUSED written = 0;
5607 IADDR UNUSED pc = abuf->addr;
5608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5609
5610frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
5611
5612 return vpc;
5613#undef FLD
5614}
5615
5616/* stc: stc$pack $CPRk,@($GRi,$GRj) */
5617
5618static SEM_PC
5619SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5620{
5621#define FLD(f) abuf->fields.sfmt_stcu.f
5622 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5623 int UNUSED written = 0;
5624 IADDR UNUSED pc = abuf->addr;
5625 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5626
5627frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), CPU (h_cpr[FLD (f_CPRk)]));
5628
5629 return vpc;
5630#undef FLD
5631}
5632
5633/* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5634
5635static SEM_PC
5636SEM_FN_NAME (frvbf,rstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5637{
5638#define FLD(f) abuf->fields.sfmt_cswap.f
5639 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5640 int UNUSED written = 0;
5641 IADDR UNUSED pc = abuf->addr;
5642 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5643
5644{
5645 SI tmp_address;
5646 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5647frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5648frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 1, 0);
5649}
5650
5651 return vpc;
5652#undef FLD
5653}
5654
5655/* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5656
5657static SEM_PC
5658SEM_FN_NAME (frvbf,rsth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5659{
5660#define FLD(f) abuf->fields.sfmt_cswap.f
5661 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5662 int UNUSED written = 0;
5663 IADDR UNUSED pc = abuf->addr;
5664 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5665
5666{
5667 SI tmp_address;
5668 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5669frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5670frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 2, 0);
5671}
5672
5673 return vpc;
5674#undef FLD
5675}
5676
5677/* rst: rst$pack $GRk,@($GRi,$GRj) */
5678
5679static SEM_PC
5680SEM_FN_NAME (frvbf,rst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5681{
5682#define FLD(f) abuf->fields.sfmt_cswap.f
5683 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5684 int UNUSED written = 0;
5685 IADDR UNUSED pc = abuf->addr;
5686 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5687
5688{
5689 SI tmp_address;
5690 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5691frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5692frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 4, 0);
5693}
5694
5695 return vpc;
5696#undef FLD
5697}
5698
5699/* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5700
5701static SEM_PC
5702SEM_FN_NAME (frvbf,rstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5703{
5704#define FLD(f) abuf->fields.sfmt_cstbfu.f
5705 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5706 int UNUSED written = 0;
5707 IADDR UNUSED pc = abuf->addr;
5708 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5709
5710{
5711 SI tmp_address;
5712 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5713frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5714frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 1, 1);
5715}
5716
5717 return vpc;
5718#undef FLD
5719}
5720
5721/* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5722
5723static SEM_PC
5724SEM_FN_NAME (frvbf,rsthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5725{
5726#define FLD(f) abuf->fields.sfmt_cstbfu.f
5727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5728 int UNUSED written = 0;
5729 IADDR UNUSED pc = abuf->addr;
5730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5731
5732{
5733 SI tmp_address;
5734 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5735frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5736frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 2, 1);
5737}
5738
5739 return vpc;
5740#undef FLD
5741}
5742
5743/* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5744
5745static SEM_PC
5746SEM_FN_NAME (frvbf,rstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5747{
5748#define FLD(f) abuf->fields.sfmt_cstbfu.f
5749 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5750 int UNUSED written = 0;
5751 IADDR UNUSED pc = abuf->addr;
5752 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5753
5754{
5755 SI tmp_address;
5756 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5757frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5758frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 4, 1);
5759}
5760
5761 return vpc;
5762#undef FLD
5763}
5764
5765/* std: std$pack $GRk,@($GRi,$GRj) */
5766
5767static SEM_PC
5768SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5769{
5770#define FLD(f) abuf->fields.sfmt_cstdu.f
5771 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5772 int UNUSED written = 0;
5773 IADDR UNUSED pc = abuf->addr;
5774 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5775
5776{
5777 SI tmp_address;
5778{
5779 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5780frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5781}
5782}
5783
5784 return vpc;
5785#undef FLD
5786}
5787
5788/* stdf: stdf$pack $FRk,@($GRi,$GRj) */
5789
5790static SEM_PC
5791SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5792{
5793#define FLD(f) abuf->fields.sfmt_cstdfu.f
5794 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5795 int UNUSED written = 0;
5796 IADDR UNUSED pc = abuf->addr;
5797 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5798
5799{
5800 SI tmp_address;
5801{
5802 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5803frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5804}
5805}
5806
5807 return vpc;
5808#undef FLD
5809}
5810
5811/* stdc: stdc$pack $CPRk,@($GRi,$GRj) */
5812
5813static SEM_PC
5814SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5815{
5816#define FLD(f) abuf->fields.sfmt_stdcu.f
5817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5818 int UNUSED written = 0;
5819 IADDR UNUSED pc = abuf->addr;
5820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5821
5822{
5823 SI tmp_address;
5824{
5825 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5826frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5827}
5828}
5829
5830 return vpc;
5831#undef FLD
5832}
5833
5834/* rstd: rstd$pack $GRk,@($GRi,$GRj) */
5835
5836static SEM_PC
5837SEM_FN_NAME (frvbf,rstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5838{
5839#define FLD(f) abuf->fields.sfmt_cstdu.f
5840 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5841 int UNUSED written = 0;
5842 IADDR UNUSED pc = abuf->addr;
5843 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5844
5845{
5846 SI tmp_address;
5847{
5848 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5849frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5850}
5851frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 8, 0);
5852}
5853
5854 return vpc;
5855#undef FLD
5856}
5857
5858/* rstdf: rstdf$pack $FRk,@($GRi,$GRj) */
5859
5860static SEM_PC
5861SEM_FN_NAME (frvbf,rstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5862{
5863#define FLD(f) abuf->fields.sfmt_cstdfu.f
5864 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5865 int UNUSED written = 0;
5866 IADDR UNUSED pc = abuf->addr;
5867 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5868
5869{
5870 SI tmp_address;
5871{
5872 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5873frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5874}
5875frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 8, 1);
5876}
5877
5878 return vpc;
5879#undef FLD
5880}
5881
5882/* stq: stq$pack $GRk,@($GRi,$GRj) */
5883
5884static SEM_PC
5885SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5886{
5887#define FLD(f) abuf->fields.sfmt_smulcc.f
5888 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5889 int UNUSED written = 0;
5890 IADDR UNUSED pc = abuf->addr;
5891 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5892
5893{
5894 SI tmp_address;
5895{
5896 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5897frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5898}
5899}
5900
5901 return vpc;
5902#undef FLD
5903}
5904
5905/* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5906
5907static SEM_PC
5908SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5909{
5910#define FLD(f) abuf->fields.sfmt_cstdfu.f
5911 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5912 int UNUSED written = 0;
5913 IADDR UNUSED pc = abuf->addr;
5914 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5915
5916{
5917 SI tmp_address;
5918{
5919 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5920frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5921}
5922}
5923
5924 return vpc;
5925#undef FLD
5926}
5927
5928/* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5929
5930static SEM_PC
5931SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5932{
5933#define FLD(f) abuf->fields.sfmt_stdcu.f
5934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5935 int UNUSED written = 0;
5936 IADDR UNUSED pc = abuf->addr;
5937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5938
5939{
5940 SI tmp_address;
5941{
5942 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5943frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5944}
5945}
5946
5947 return vpc;
5948#undef FLD
5949}
5950
5951/* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5952
5953static SEM_PC
5954SEM_FN_NAME (frvbf,rstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5955{
5956#define FLD(f) abuf->fields.sfmt_smulcc.f
5957 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5958 int UNUSED written = 0;
5959 IADDR UNUSED pc = abuf->addr;
5960 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5961
5962{
5963 SI tmp_address;
5964{
5965 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5966frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5967}
5968frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 16, 0);
5969}
5970
5971 return vpc;
5972#undef FLD
5973}
5974
5975/* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5976
5977static SEM_PC
5978SEM_FN_NAME (frvbf,rstqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5979{
5980#define FLD(f) abuf->fields.sfmt_cstdfu.f
5981 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5982 int UNUSED written = 0;
5983 IADDR UNUSED pc = abuf->addr;
5984 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5985
5986{
5987 SI tmp_address;
5988{
5989 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5990frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5991}
5992frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 16, 1);
5993}
5994
5995 return vpc;
5996#undef FLD
5997}
5998
5999/* stbu: stbu$pack $GRk,@($GRi,$GRj) */
6000
6001static SEM_PC
6002SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6003{
6004#define FLD(f) abuf->fields.sfmt_cstbu.f
6005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6006 int UNUSED written = 0;
6007 IADDR UNUSED pc = abuf->addr;
6008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6009
6010{
6011 USI tmp_address;
6012 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6013frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
6014 {
6015 SI opval = tmp_address;
6016 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6017 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6018 }
6019}
6020
6021 return vpc;
6022#undef FLD
6023}
6024
6025/* sthu: sthu$pack $GRk,@($GRi,$GRj) */
6026
6027static SEM_PC
6028SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6029{
6030#define FLD(f) abuf->fields.sfmt_cstbu.f
6031 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6032 int UNUSED written = 0;
6033 IADDR UNUSED pc = abuf->addr;
6034 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6035
6036{
6037 USI tmp_address;
6038 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6039frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
6040 {
6041 SI opval = tmp_address;
6042 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6043 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6044 }
6045}
6046
6047 return vpc;
6048#undef FLD
6049}
6050
6051/* stu: stu$pack $GRk,@($GRi,$GRj) */
6052
6053static SEM_PC
6054SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6055{
6056#define FLD(f) abuf->fields.sfmt_cstbu.f
6057 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6058 int UNUSED written = 0;
6059 IADDR UNUSED pc = abuf->addr;
6060 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6061
6062{
6063 USI tmp_address;
6064 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6065frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
6066 {
6067 SI opval = tmp_address;
6068 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6069 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6070 }
6071}
6072
6073 return vpc;
6074#undef FLD
6075}
6076
6077/* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
6078
6079static SEM_PC
6080SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6081{
6082#define FLD(f) abuf->fields.sfmt_cstbfu.f
6083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6084 int UNUSED written = 0;
6085 IADDR UNUSED pc = abuf->addr;
6086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6087
6088{
6089 USI tmp_address;
6090 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6091frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6092 {
6093 SI opval = tmp_address;
6094 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6095 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6096 }
6097}
6098
6099 return vpc;
6100#undef FLD
6101}
6102
6103/* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
6104
6105static SEM_PC
6106SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6107{
6108#define FLD(f) abuf->fields.sfmt_cstbfu.f
6109 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6110 int UNUSED written = 0;
6111 IADDR UNUSED pc = abuf->addr;
6112 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6113
6114{
6115 USI tmp_address;
6116 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6117frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6118 {
6119 SI opval = tmp_address;
6120 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6121 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6122 }
6123}
6124
6125 return vpc;
6126#undef FLD
6127}
6128
6129/* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
6130
6131static SEM_PC
6132SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6133{
6134#define FLD(f) abuf->fields.sfmt_cstbfu.f
6135 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6136 int UNUSED written = 0;
6137 IADDR UNUSED pc = abuf->addr;
6138 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6139
6140{
6141 USI tmp_address;
6142 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6143frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6144 {
6145 SI opval = tmp_address;
6146 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6147 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6148 }
6149}
6150
6151 return vpc;
6152#undef FLD
6153}
6154
6155/* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
6156
6157static SEM_PC
6158SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6159{
6160#define FLD(f) abuf->fields.sfmt_stcu.f
6161 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6162 int UNUSED written = 0;
6163 IADDR UNUSED pc = abuf->addr;
6164 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6165
6166{
6167 USI tmp_address;
6168 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6169frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
6170 {
6171 SI opval = tmp_address;
6172 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6173 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6174 }
6175}
6176
6177 return vpc;
6178#undef FLD
6179}
6180
6181/* stdu: stdu$pack $GRk,@($GRi,$GRj) */
6182
6183static SEM_PC
6184SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6185{
6186#define FLD(f) abuf->fields.sfmt_cstdu.f
6187 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6188 int UNUSED written = 0;
6189 IADDR UNUSED pc = abuf->addr;
6190 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6191
6192{
6193 SI tmp_address;
6194{
6195 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6196frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6197}
6198 {
6199 SI opval = tmp_address;
6200 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6201 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6202 }
6203}
6204
6205 return vpc;
6206#undef FLD
6207}
6208
6209/* stdfu: stdfu$pack $FRk,@($GRi,$GRj) */
6210
6211static SEM_PC
6212SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6213{
6214#define FLD(f) abuf->fields.sfmt_cstdfu.f
6215 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6216 int UNUSED written = 0;
6217 IADDR UNUSED pc = abuf->addr;
6218 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6219
6220{
6221 SI tmp_address;
6222{
6223 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6224frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6225}
6226 {
6227 SI opval = tmp_address;
6228 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6229 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6230 }
6231}
6232
6233 return vpc;
6234#undef FLD
6235}
6236
6237/* stdcu: stdcu$pack $CPRk,@($GRi,$GRj) */
6238
6239static SEM_PC
6240SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6241{
6242#define FLD(f) abuf->fields.sfmt_stdcu.f
6243 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6244 int UNUSED written = 0;
6245 IADDR UNUSED pc = abuf->addr;
6246 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6247
6248{
6249 SI tmp_address;
6250{
6251 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6252frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6253}
6254 {
6255 SI opval = tmp_address;
6256 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6257 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6258 }
6259}
6260
6261 return vpc;
6262#undef FLD
6263}
6264
6265/* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6266
6267static SEM_PC
6268SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6269{
6270#define FLD(f) abuf->fields.sfmt_cstdu.f
6271 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6272 int UNUSED written = 0;
6273 IADDR UNUSED pc = abuf->addr;
6274 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6275
6276{
6277 SI tmp_address;
6278{
6279 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6280frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6281}
6282 {
6283 SI opval = tmp_address;
6284 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6285 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6286 }
6287}
6288
6289 return vpc;
6290#undef FLD
6291}
6292
6293/* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6294
6295static SEM_PC
6296SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6297{
6298#define FLD(f) abuf->fields.sfmt_cstdfu.f
6299 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6300 int UNUSED written = 0;
6301 IADDR UNUSED pc = abuf->addr;
6302 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6303
6304{
6305 SI tmp_address;
6306{
6307 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6308frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6309}
6310 {
6311 SI opval = tmp_address;
6312 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6313 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6314 }
6315}
6316
6317 return vpc;
6318#undef FLD
6319}
6320
6321/* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6322
6323static SEM_PC
6324SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6325{
6326#define FLD(f) abuf->fields.sfmt_stdcu.f
6327 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6328 int UNUSED written = 0;
6329 IADDR UNUSED pc = abuf->addr;
6330 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6331
6332{
6333 SI tmp_address;
6334{
6335 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6336frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6337}
6338 {
6339 SI opval = tmp_address;
6340 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6341 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6342 }
6343}
6344
6345 return vpc;
6346#undef FLD
6347}
6348
6349/* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6350
6351static SEM_PC
6352SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6353{
6354#define FLD(f) abuf->fields.sfmt_cswap.f
6355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6356 int UNUSED written = 0;
6357 IADDR UNUSED pc = abuf->addr;
6358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6359
6360if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6361 {
6362 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6363 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6364 written |= (1 << 5);
6365 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6366 }
6367}
6368
6369 abuf->written = written;
6370 return vpc;
6371#undef FLD
6372}
6373
6374/* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6375
6376static SEM_PC
6377SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6378{
6379#define FLD(f) abuf->fields.sfmt_cswap.f
6380 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6381 int UNUSED written = 0;
6382 IADDR UNUSED pc = abuf->addr;
6383 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6384
6385if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6386 {
6387 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6388 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6389 written |= (1 << 5);
6390 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6391 }
6392}
6393
6394 abuf->written = written;
6395 return vpc;
6396#undef FLD
6397}
6398
6399/* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6400
6401static SEM_PC
6402SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6403{
6404#define FLD(f) abuf->fields.sfmt_cswap.f
6405 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6406 int UNUSED written = 0;
6407 IADDR UNUSED pc = abuf->addr;
6408 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6409
6410if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6411 {
6412 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6413 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6414 written |= (1 << 5);
6415 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6416 }
6417}
6418
6419 abuf->written = written;
6420 return vpc;
6421#undef FLD
6422}
6423
6424/* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6425
6426static SEM_PC
6427SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6428{
6429#define FLD(f) abuf->fields.sfmt_cswap.f
6430 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6431 int UNUSED written = 0;
6432 IADDR UNUSED pc = abuf->addr;
6433 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6434
6435if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6436 {
6437 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6438 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6439 written |= (1 << 5);
6440 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6441 }
6442}
6443
6444 abuf->written = written;
6445 return vpc;
6446#undef FLD
6447}
6448
6449/* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6450
6451static SEM_PC
6452SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6453{
6454#define FLD(f) abuf->fields.sfmt_cswap.f
6455 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6456 int UNUSED written = 0;
6457 IADDR UNUSED pc = abuf->addr;
6458 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6459
6460if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6461 {
6462 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6463 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6464 written |= (1 << 5);
6465 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6466 }
6467}
6468
6469 abuf->written = written;
6470 return vpc;
6471#undef FLD
6472}
6473
6474/* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6475
6476static SEM_PC
6477SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6478{
6479#define FLD(f) abuf->fields.sfmt_cldbfu.f
6480 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6481 int UNUSED written = 0;
6482 IADDR UNUSED pc = abuf->addr;
6483 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6484
6485if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6486 {
6487 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6488 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6489 written |= (1 << 5);
6490 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6491 }
6492}
6493
6494 abuf->written = written;
6495 return vpc;
6496#undef FLD
6497}
6498
6499/* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6500
6501static SEM_PC
6502SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6503{
6504#define FLD(f) abuf->fields.sfmt_cldbfu.f
6505 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6506 int UNUSED written = 0;
6507 IADDR UNUSED pc = abuf->addr;
6508 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6509
6510if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6511 {
6512 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6513 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6514 written |= (1 << 5);
6515 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6516 }
6517}
6518
6519 abuf->written = written;
6520 return vpc;
6521#undef FLD
6522}
6523
6524/* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6525
6526static SEM_PC
6527SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6528{
6529#define FLD(f) abuf->fields.sfmt_cldbfu.f
6530 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6531 int UNUSED written = 0;
6532 IADDR UNUSED pc = abuf->addr;
6533 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6534
6535if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6536 {
6537 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6538 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6539 written |= (1 << 5);
6540 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6541 }
6542}
6543
6544 abuf->written = written;
6545 return vpc;
6546#undef FLD
6547}
6548
6549/* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6550
6551static SEM_PC
6552SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6553{
6554#define FLD(f) abuf->fields.sfmt_clddu.f
6555 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6556 int UNUSED written = 0;
6557 IADDR UNUSED pc = abuf->addr;
6558 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6559
6560if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6561{
6562 SI tmp_address;
6563if (NESI (FLD (f_GRk), 0)) {
6564{
6565 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6566 {
6567 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6568 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6569 written |= (1 << 6);
6570 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6571 }
6572}
6573}
6574}
6575}
6576
6577 abuf->written = written;
6578 return vpc;
6579#undef FLD
6580}
6581
6582/* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6583
6584static SEM_PC
6585SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6586{
6587#define FLD(f) abuf->fields.sfmt_clddfu.f
6588 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6589 int UNUSED written = 0;
6590 IADDR UNUSED pc = abuf->addr;
6591 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6592
6593if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6594{
6595 SI tmp_address;
6596{
6597 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6598 {
6599 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6600 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6601 written |= (1 << 5);
6602 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6603 }
6604}
6605}
6606}
6607
6608 abuf->written = written;
6609 return vpc;
6610#undef FLD
6611}
6612
6613/* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6614
6615static SEM_PC
6616SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6617{
6618#define FLD(f) abuf->fields.sfmt_cswap.f
6619 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6620 int UNUSED written = 0;
6621 IADDR UNUSED pc = abuf->addr;
6622 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6623
6624if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6625{
6626 SI tmp_address;
6627{
6628 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6629frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6630}
6631}
6632}
6633
6634 return vpc;
6635#undef FLD
6636}
6637
6638/* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6639
6640static SEM_PC
6641SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6642{
6643#define FLD(f) abuf->fields.sfmt_cldsbu.f
6644 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6645 int UNUSED written = 0;
6646 IADDR UNUSED pc = abuf->addr;
6647 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6648
6649if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6650{
6651 SI tmp_address;
6652 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6653 {
6654 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6655 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6656 written |= (1 << 8);
6657 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6658 }
6659if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6660 {
6661 SI opval = tmp_address;
6662 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6663 written |= (1 << 7);
6664 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6665 }
6666}
6667}
6668}
6669
6670 abuf->written = written;
6671 return vpc;
6672#undef FLD
6673}
6674
6675/* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6676
6677static SEM_PC
6678SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6679{
6680#define FLD(f) abuf->fields.sfmt_cldsbu.f
6681 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6682 int UNUSED written = 0;
6683 IADDR UNUSED pc = abuf->addr;
6684 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6685
6686if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6687{
6688 SI tmp_address;
6689 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6690 {
6691 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6692 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6693 written |= (1 << 8);
6694 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6695 }
6696if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6697 {
6698 SI opval = tmp_address;
6699 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6700 written |= (1 << 7);
6701 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6702 }
6703}
6704}
6705}
6706
6707 abuf->written = written;
6708 return vpc;
6709#undef FLD
6710}
6711
6712/* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6713
6714static SEM_PC
6715SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6716{
6717#define FLD(f) abuf->fields.sfmt_cldsbu.f
6718 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6719 int UNUSED written = 0;
6720 IADDR UNUSED pc = abuf->addr;
6721 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6722
6723if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6724{
6725 SI tmp_address;
6726 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6727 {
6728 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6729 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6730 written |= (1 << 8);
6731 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6732 }
6733if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6734 {
6735 SI opval = tmp_address;
6736 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6737 written |= (1 << 7);
6738 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6739 }
6740}
6741}
6742}
6743
6744 abuf->written = written;
6745 return vpc;
6746#undef FLD
6747}
6748
6749/* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6750
6751static SEM_PC
6752SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6753{
6754#define FLD(f) abuf->fields.sfmt_cldsbu.f
6755 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6756 int UNUSED written = 0;
6757 IADDR UNUSED pc = abuf->addr;
6758 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6759
6760if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6761{
6762 SI tmp_address;
6763 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6764 {
6765 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6766 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6767 written |= (1 << 8);
6768 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6769 }
6770if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6771 {
6772 SI opval = tmp_address;
6773 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6774 written |= (1 << 7);
6775 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6776 }
6777}
6778}
6779}
6780
6781 abuf->written = written;
6782 return vpc;
6783#undef FLD
6784}
6785
6786/* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6787
6788static SEM_PC
6789SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6790{
6791#define FLD(f) abuf->fields.sfmt_cldsbu.f
6792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6793 int UNUSED written = 0;
6794 IADDR UNUSED pc = abuf->addr;
6795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6796
6797if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6798{
6799 SI tmp_address;
6800 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6801 {
6802 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6803 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6804 written |= (1 << 8);
6805 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6806 }
6807if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6808 {
6809 SI opval = tmp_address;
6810 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6811 written |= (1 << 7);
6812 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6813 }
6814}
6815}
6816}
6817
6818 abuf->written = written;
6819 return vpc;
6820#undef FLD
6821}
6822
6823/* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6824
6825static SEM_PC
6826SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6827{
6828#define FLD(f) abuf->fields.sfmt_cldbfu.f
6829 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6830 int UNUSED written = 0;
6831 IADDR UNUSED pc = abuf->addr;
6832 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6833
6834if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6835{
6836 SI tmp_address;
6837 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6838 {
6839 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6840 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6841 written |= (1 << 5);
6842 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6843 }
6844 {
6845 SI opval = tmp_address;
6846 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6847 written |= (1 << 6);
6848 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6849 }
6850}
6851}
6852
6853 abuf->written = written;
6854 return vpc;
6855#undef FLD
6856}
6857
6858/* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6859
6860static SEM_PC
6861SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6862{
6863#define FLD(f) abuf->fields.sfmt_cldbfu.f
6864 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6865 int UNUSED written = 0;
6866 IADDR UNUSED pc = abuf->addr;
6867 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6868
6869if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6870{
6871 SI tmp_address;
6872 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6873 {
6874 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6875 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6876 written |= (1 << 5);
6877 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6878 }
6879 {
6880 SI opval = tmp_address;
6881 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6882 written |= (1 << 6);
6883 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6884 }
6885}
6886}
6887
6888 abuf->written = written;
6889 return vpc;
6890#undef FLD
6891}
6892
6893/* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6894
6895static SEM_PC
6896SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6897{
6898#define FLD(f) abuf->fields.sfmt_cldbfu.f
6899 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6900 int UNUSED written = 0;
6901 IADDR UNUSED pc = abuf->addr;
6902 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6903
6904if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6905{
6906 SI tmp_address;
6907 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6908 {
6909 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6910 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6911 written |= (1 << 5);
6912 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6913 }
6914 {
6915 SI opval = tmp_address;
6916 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6917 written |= (1 << 6);
6918 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6919 }
6920}
6921}
6922
6923 abuf->written = written;
6924 return vpc;
6925#undef FLD
6926}
6927
6928/* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6929
6930static SEM_PC
6931SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6932{
6933#define FLD(f) abuf->fields.sfmt_clddu.f
6934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6935 int UNUSED written = 0;
6936 IADDR UNUSED pc = abuf->addr;
6937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6938
6939if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6940{
6941 SI tmp_address;
6942if (NESI (FLD (f_GRk), 0)) {
6943{
6944 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6945 {
6946 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6947 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6948 written |= (1 << 7);
6949 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6950 }
6951}
6952}
6953if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6954 {
6955 SI opval = tmp_address;
6956 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6957 written |= (1 << 8);
6958 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6959 }
6960}
6961}
6962}
6963
6964 abuf->written = written;
6965 return vpc;
6966#undef FLD
6967}
6968
6969/* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6970
6971static SEM_PC
6972SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6973{
6974#define FLD(f) abuf->fields.sfmt_clddfu.f
6975 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6976 int UNUSED written = 0;
6977 IADDR UNUSED pc = abuf->addr;
6978 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6979
6980if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6981{
6982 SI tmp_address;
6983{
6984 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6985 {
6986 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6987 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6988 written |= (1 << 5);
6989 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6990 }
6991}
6992 {
6993 SI opval = tmp_address;
6994 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6995 written |= (1 << 6);
6996 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6997 }
6998}
6999}
7000
7001 abuf->written = written;
7002 return vpc;
7003#undef FLD
7004}
7005
7006/* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7007
7008static SEM_PC
7009SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7010{
7011#define FLD(f) abuf->fields.sfmt_cstdu.f
7012 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7013 int UNUSED written = 0;
7014 IADDR UNUSED pc = abuf->addr;
7015 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7016
7017if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7018{
7019 SI tmp_address;
7020{
7021 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7022frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7023}
7024if (NESI (FLD (f_GRi), FLD (f_GRk))) {
7025 {
7026 SI opval = tmp_address;
7027 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7028 written |= (1 << 7);
7029 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7030 }
7031}
7032}
7033}
7034
7035 abuf->written = written;
7036 return vpc;
7037#undef FLD
7038}
7039
7040/* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7041
7042static SEM_PC
7043SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7044{
7045#define FLD(f) abuf->fields.sfmt_cswap.f
7046 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7047 int UNUSED written = 0;
7048 IADDR UNUSED pc = abuf->addr;
7049 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7050
7051if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7052frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
7053}
7054
7055 return vpc;
7056#undef FLD
7057}
7058
7059/* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7060
7061static SEM_PC
7062SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7063{
7064#define FLD(f) abuf->fields.sfmt_cswap.f
7065 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7066 int UNUSED written = 0;
7067 IADDR UNUSED pc = abuf->addr;
7068 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7069
7070if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7071frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
7072}
7073
7074 return vpc;
7075#undef FLD
7076}
7077
7078/* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7079
7080static SEM_PC
7081SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7082{
7083#define FLD(f) abuf->fields.sfmt_cswap.f
7084 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7085 int UNUSED written = 0;
7086 IADDR UNUSED pc = abuf->addr;
7087 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7088
7089if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7090frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_GR (FLD (f_GRk)));
7091}
7092
7093 return vpc;
7094#undef FLD
7095}
7096
7097/* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7098
7099static SEM_PC
7100SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7101{
7102#define FLD(f) abuf->fields.sfmt_cstbfu.f
7103 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7104 int UNUSED written = 0;
7105 IADDR UNUSED pc = abuf->addr;
7106 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7107
7108if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7109frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
7110}
7111
7112 return vpc;
7113#undef FLD
7114}
7115
7116/* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7117
7118static SEM_PC
7119SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7120{
7121#define FLD(f) abuf->fields.sfmt_cstbfu.f
7122 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7123 int UNUSED written = 0;
7124 IADDR UNUSED pc = abuf->addr;
7125 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7126
7127if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7128frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
7129}
7130
7131 return vpc;
7132#undef FLD
7133}
7134
7135/* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7136
7137static SEM_PC
7138SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7139{
7140#define FLD(f) abuf->fields.sfmt_cstbfu.f
7141 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7142 int UNUSED written = 0;
7143 IADDR UNUSED pc = abuf->addr;
7144 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7145
7146if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7147frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), GET_H_FR_INT (FLD (f_FRk)));
7148}
7149
7150 return vpc;
7151#undef FLD
7152}
7153
7154/* cstd: cstd$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7155
7156static SEM_PC
7157SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7158{
7159#define FLD(f) abuf->fields.sfmt_cstdu.f
7160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7161 int UNUSED written = 0;
7162 IADDR UNUSED pc = abuf->addr;
7163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7164
7165if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7166{
7167 SI tmp_address;
7168{
7169 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7170frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7171}
7172}
7173}
7174
7175 return vpc;
7176#undef FLD
7177}
7178
7179/* cstdf: cstdf$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7180
7181static SEM_PC
7182SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7183{
7184#define FLD(f) abuf->fields.sfmt_cstdfu.f
7185 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7186 int UNUSED written = 0;
7187 IADDR UNUSED pc = abuf->addr;
7188 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7189
7190if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7191{
7192 SI tmp_address;
7193{
7194 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7195frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7196}
7197}
7198}
7199
7200 return vpc;
7201#undef FLD
7202}
7203
7204/* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7205
7206static SEM_PC
7207SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7208{
7209#define FLD(f) abuf->fields.sfmt_cswap.f
7210 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7211 int UNUSED written = 0;
7212 IADDR UNUSED pc = abuf->addr;
7213 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7214
7215if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7216{
7217 SI tmp_address;
7218{
7219 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7220frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7221}
7222}
7223}
7224
7225 return vpc;
7226#undef FLD
7227}
7228
7229/* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7230
7231static SEM_PC
7232SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7233{
7234#define FLD(f) abuf->fields.sfmt_cstbu.f
7235 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7236 int UNUSED written = 0;
7237 IADDR UNUSED pc = abuf->addr;
7238 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7239
7240if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7241{
7242 SI tmp_address;
7243 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7244frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7245 {
7246 SI opval = tmp_address;
7247 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7248 written |= (1 << 6);
7249 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7250 }
7251}
7252}
7253
7254 abuf->written = written;
7255 return vpc;
7256#undef FLD
7257}
7258
7259/* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7260
7261static SEM_PC
7262SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7263{
7264#define FLD(f) abuf->fields.sfmt_cstbu.f
7265 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7266 int UNUSED written = 0;
7267 IADDR UNUSED pc = abuf->addr;
7268 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7269
7270if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7271{
7272 SI tmp_address;
7273 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7274frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7275 {
7276 SI opval = tmp_address;
7277 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7278 written |= (1 << 6);
7279 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7280 }
7281}
7282}
7283
7284 abuf->written = written;
7285 return vpc;
7286#undef FLD
7287}
7288
7289/* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7290
7291static SEM_PC
7292SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7293{
7294#define FLD(f) abuf->fields.sfmt_cstbu.f
7295 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7296 int UNUSED written = 0;
7297 IADDR UNUSED pc = abuf->addr;
7298 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7299
7300if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7301{
7302 SI tmp_address;
7303 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7304frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7305 {
7306 SI opval = tmp_address;
7307 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7308 written |= (1 << 6);
7309 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7310 }
7311}
7312}
7313
7314 abuf->written = written;
7315 return vpc;
7316#undef FLD
7317}
7318
7319/* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7320
7321static SEM_PC
7322SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7323{
7324#define FLD(f) abuf->fields.sfmt_cstbfu.f
7325 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7326 int UNUSED written = 0;
7327 IADDR UNUSED pc = abuf->addr;
7328 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7329
7330if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7331{
7332 SI tmp_address;
7333 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7334frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7335 {
7336 SI opval = tmp_address;
7337 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7338 written |= (1 << 6);
7339 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7340 }
7341}
7342}
7343
7344 abuf->written = written;
7345 return vpc;
7346#undef FLD
7347}
7348
7349/* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7350
7351static SEM_PC
7352SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7353{
7354#define FLD(f) abuf->fields.sfmt_cstbfu.f
7355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7356 int UNUSED written = 0;
7357 IADDR UNUSED pc = abuf->addr;
7358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7359
7360if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7361{
7362 SI tmp_address;
7363 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7364frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7365 {
7366 SI opval = tmp_address;
7367 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7368 written |= (1 << 6);
7369 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7370 }
7371}
7372}
7373
7374 abuf->written = written;
7375 return vpc;
7376#undef FLD
7377}
7378
7379/* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7380
7381static SEM_PC
7382SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7383{
7384#define FLD(f) abuf->fields.sfmt_cstbfu.f
7385 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7386 int UNUSED written = 0;
7387 IADDR UNUSED pc = abuf->addr;
7388 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7389
7390if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7391{
7392 SI tmp_address;
7393 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7394frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7395 {
7396 SI opval = tmp_address;
7397 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7398 written |= (1 << 6);
7399 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7400 }
7401}
7402}
7403
7404 abuf->written = written;
7405 return vpc;
7406#undef FLD
7407}
7408
7409/* cstdu: cstdu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7410
7411static SEM_PC
7412SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7413{
7414#define FLD(f) abuf->fields.sfmt_cstdu.f
7415 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7416 int UNUSED written = 0;
7417 IADDR UNUSED pc = abuf->addr;
7418 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7419
7420if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7421{
7422 SI tmp_address;
7423{
7424 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7425frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7426}
7427 {
7428 SI opval = tmp_address;
7429 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7430 written |= (1 << 6);
7431 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7432 }
7433}
7434}
7435
7436 abuf->written = written;
7437 return vpc;
7438#undef FLD
7439}
7440
7441/* cstdfu: cstdfu$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7442
7443static SEM_PC
7444SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7445{
7446#define FLD(f) abuf->fields.sfmt_cstdfu.f
7447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7448 int UNUSED written = 0;
7449 IADDR UNUSED pc = abuf->addr;
7450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7451
7452if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7453{
7454 SI tmp_address;
7455{
7456 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7457frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7458}
7459 {
7460 SI opval = tmp_address;
7461 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7462 written |= (1 << 6);
7463 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7464 }
7465}
7466}
7467
7468 abuf->written = written;
7469 return vpc;
7470#undef FLD
7471}
7472
7473/* stbi: stbi$pack $GRk,@($GRi,$d12) */
7474
7475static SEM_PC
7476SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7477{
7478#define FLD(f) abuf->fields.sfmt_swapi.f
7479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7480 int UNUSED written = 0;
7481 IADDR UNUSED pc = abuf->addr;
7482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7483
7484frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7485
7486 return vpc;
7487#undef FLD
7488}
7489
7490/* sthi: sthi$pack $GRk,@($GRi,$d12) */
7491
7492static SEM_PC
7493SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7494{
7495#define FLD(f) abuf->fields.sfmt_swapi.f
7496 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7497 int UNUSED written = 0;
7498 IADDR UNUSED pc = abuf->addr;
7499 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7500
7501frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7502
7503 return vpc;
7504#undef FLD
7505}
7506
7507/* sti: sti$pack $GRk,@($GRi,$d12) */
7508
7509static SEM_PC
7510SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7511{
7512#define FLD(f) abuf->fields.sfmt_swapi.f
7513 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7514 int UNUSED written = 0;
7515 IADDR UNUSED pc = abuf->addr;
7516 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7517
7518frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7519
7520 return vpc;
7521#undef FLD
7522}
7523
7524/* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7525
7526static SEM_PC
7527SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7528{
7529#define FLD(f) abuf->fields.sfmt_stbfi.f
7530 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7531 int UNUSED written = 0;
7532 IADDR UNUSED pc = abuf->addr;
7533 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7534
7535frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7536
7537 return vpc;
7538#undef FLD
7539}
7540
7541/* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7542
7543static SEM_PC
7544SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7545{
7546#define FLD(f) abuf->fields.sfmt_stbfi.f
7547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7548 int UNUSED written = 0;
7549 IADDR UNUSED pc = abuf->addr;
7550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7551
7552frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7553
7554 return vpc;
7555#undef FLD
7556}
7557
7558/* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7559
7560static SEM_PC
7561SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7562{
7563#define FLD(f) abuf->fields.sfmt_stbfi.f
7564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7565 int UNUSED written = 0;
7566 IADDR UNUSED pc = abuf->addr;
7567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7568
7569frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7570
7571 return vpc;
7572#undef FLD
7573}
7574
7575/* stdi: stdi$pack $GRk,@($GRi,$d12) */
7576
7577static SEM_PC
7578SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7579{
7580#define FLD(f) abuf->fields.sfmt_stdi.f
7581 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7582 int UNUSED written = 0;
7583 IADDR UNUSED pc = abuf->addr;
7584 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7585
7586{
7587 SI tmp_address;
7588{
7589 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7590frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7591}
7592}
7593
7594 return vpc;
7595#undef FLD
7596}
7597
7598/* stdfi: stdfi$pack $FRk,@($GRi,$d12) */
7599
7600static SEM_PC
7601SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7602{
7603#define FLD(f) abuf->fields.sfmt_stdfi.f
7604 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7605 int UNUSED written = 0;
7606 IADDR UNUSED pc = abuf->addr;
7607 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7608
7609{
7610 SI tmp_address;
7611{
7612 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7613frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7614}
7615}
7616
7617 return vpc;
7618#undef FLD
7619}
7620
7621/* stqi: stqi$pack $GRk,@($GRi,$d12) */
7622
7623static SEM_PC
7624SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7625{
7626#define FLD(f) abuf->fields.sfmt_stdi.f
7627 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7628 int UNUSED written = 0;
7629 IADDR UNUSED pc = abuf->addr;
7630 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7631
7632{
7633 SI tmp_address;
7634{
7635 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7636frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7637}
7638}
7639
7640 return vpc;
7641#undef FLD
7642}
7643
7644/* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7645
7646static SEM_PC
7647SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7648{
7649#define FLD(f) abuf->fields.sfmt_stdfi.f
7650 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7651 int UNUSED written = 0;
7652 IADDR UNUSED pc = abuf->addr;
7653 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7654
7655{
7656 SI tmp_address;
7657{
7658 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7659frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7660}
7661}
7662
7663 return vpc;
7664#undef FLD
7665}
7666
7667/* swap: swap$pack @($GRi,$GRj),$GRk */
7668
7669static SEM_PC
7670SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7671{
7672#define FLD(f) abuf->fields.sfmt_cswap.f
7673 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7674 int UNUSED written = 0;
7675 IADDR UNUSED pc = abuf->addr;
7676 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7677
7678{
7679 SI tmp_tmp;
7680 SI tmp_address;
7681 tmp_tmp = GET_H_GR (FLD (f_GRk));
7682 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
e930b1f5 7683frvbf_check_swap_address (current_cpu, tmp_address);
b34f6357
DB
7684 {
7685 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7686 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7687 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7688 }
7689frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7690}
7691
7692 return vpc;
7693#undef FLD
7694}
7695
7696/* swapi: swapi$pack @($GRi,$d12),$GRk */
7697
7698static SEM_PC
7699SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7700{
7701#define FLD(f) abuf->fields.sfmt_swapi.f
7702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7703 int UNUSED written = 0;
7704 IADDR UNUSED pc = abuf->addr;
7705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7706
7707{
7708 SI tmp_tmp;
7709 SI tmp_address;
7710 tmp_tmp = GET_H_GR (FLD (f_GRk));
7711 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
e930b1f5 7712frvbf_check_swap_address (current_cpu, tmp_address);
b34f6357
DB
7713 {
7714 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7715 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7716 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7717 }
7718frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7719}
7720
7721 return vpc;
7722#undef FLD
7723}
7724
7725/* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7726
7727static SEM_PC
7728SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7729{
7730#define FLD(f) abuf->fields.sfmt_cswap.f
7731 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7732 int UNUSED written = 0;
7733 IADDR UNUSED pc = abuf->addr;
7734 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7735
7736if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7737{
7738 SI tmp_tmp;
7739 SI tmp_address;
7740 tmp_tmp = GET_H_GR (FLD (f_GRk));
7741 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
e930b1f5 7742frvbf_check_swap_address (current_cpu, tmp_address);
b34f6357
DB
7743 {
7744 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7745 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7746 written |= (1 << 6);
7747 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7748 }
7749frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7750}
7751}
7752
7753 abuf->written = written;
7754 return vpc;
7755#undef FLD
7756}
7757
7758/* movgf: movgf$pack $GRj,$FRintk */
7759
7760static SEM_PC
7761SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7762{
7763#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7764 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7765 int UNUSED written = 0;
7766 IADDR UNUSED pc = abuf->addr;
7767 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7768
7769 {
7770 SI opval = GET_H_GR (FLD (f_GRj));
7771 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7772 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7773 }
7774
7775 return vpc;
7776#undef FLD
7777}
7778
7779/* movfg: movfg$pack $FRintk,$GRj */
7780
7781static SEM_PC
7782SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7783{
7784#define FLD(f) abuf->fields.sfmt_cmovfgd.f
7785 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7786 int UNUSED written = 0;
7787 IADDR UNUSED pc = abuf->addr;
7788 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7789
7790 {
7791 SI opval = GET_H_FR_INT (FLD (f_FRk));
7792 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7793 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7794 }
7795
7796 return vpc;
7797#undef FLD
7798}
7799
7800/* movgfd: movgfd$pack $GRj,$FRintk */
7801
7802static SEM_PC
7803SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7804{
7805#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7806 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7807 int UNUSED written = 0;
7808 IADDR UNUSED pc = abuf->addr;
7809 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7810
7811if (EQSI (FLD (f_GRj), 0)) {
7812{
7813 {
7814 SI opval = 0;
7815 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7816 written |= (1 << 4);
7817 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7818 }
7819 {
7820 USI opval = 0;
7821 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7822 written |= (1 << 5);
7823 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7824 }
7825}
7826} else {
7827{
7828 {
7829 SI opval = GET_H_GR (FLD (f_GRj));
7830 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7831 written |= (1 << 4);
7832 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7833 }
7834 {
7835 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7836 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7837 written |= (1 << 5);
7838 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7839 }
7840}
7841}
7842
7843 abuf->written = written;
7844 return vpc;
7845#undef FLD
7846}
7847
7848/* movfgd: movfgd$pack $FRintk,$GRj */
7849
7850static SEM_PC
7851SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7852{
7853#define FLD(f) abuf->fields.sfmt_cmovfgd.f
7854 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7855 int UNUSED written = 0;
7856 IADDR UNUSED pc = abuf->addr;
7857 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7858
7859if (NESI (FLD (f_GRj), 0)) {
7860{
7861 {
7862 SI opval = GET_H_FR_INT (FLD (f_FRk));
7863 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7864 written |= (1 << 4);
7865 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7866 }
7867 {
7868 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7869 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7870 written |= (1 << 5);
7871 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7872 }
7873}
7874}
7875
7876 abuf->written = written;
7877 return vpc;
7878#undef FLD
7879}
7880
7881/* movgfq: movgfq$pack $GRj,$FRintk */
7882
7883static SEM_PC
7884SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7885{
7886#define FLD(f) abuf->fields.sfmt_movgfq.f
7887 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7888 int UNUSED written = 0;
7889 IADDR UNUSED pc = abuf->addr;
7890 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7891
7892if (EQSI (FLD (f_GRj), 0)) {
7893{
7894 {
7895 SI opval = 0;
7896 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7897 written |= (1 << 6);
7898 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7899 }
7900 {
7901 USI opval = 0;
7902 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7903 written |= (1 << 7);
7904 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7905 }
7906 {
7907 USI opval = 0;
7908 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7909 written |= (1 << 8);
7910 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7911 }
7912 {
7913 USI opval = 0;
7914 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7915 written |= (1 << 9);
7916 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7917 }
7918}
7919} else {
7920{
7921 {
7922 SI opval = GET_H_GR (FLD (f_GRj));
7923 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7924 written |= (1 << 6);
7925 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7926 }
7927 {
7928 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7929 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7930 written |= (1 << 7);
7931 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7932 }
7933 {
7934 USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7935 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7936 written |= (1 << 8);
7937 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7938 }
7939 {
7940 USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7941 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7942 written |= (1 << 9);
7943 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7944 }
7945}
7946}
7947
7948 abuf->written = written;
7949 return vpc;
7950#undef FLD
7951}
7952
7953/* movfgq: movfgq$pack $FRintk,$GRj */
7954
7955static SEM_PC
7956SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7957{
7958#define FLD(f) abuf->fields.sfmt_movfgq.f
7959 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7960 int UNUSED written = 0;
7961 IADDR UNUSED pc = abuf->addr;
7962 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7963
7964if (NESI (FLD (f_GRj), 0)) {
7965{
7966 {
7967 SI opval = GET_H_FR_INT (FLD (f_FRk));
7968 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7969 written |= (1 << 6);
7970 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7971 }
7972 {
7973 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7974 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7975 written |= (1 << 7);
7976 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7977 }
7978 {
7979 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7980 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7981 written |= (1 << 8);
7982 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7983 }
7984 {
7985 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7986 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7987 written |= (1 << 9);
7988 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7989 }
7990}
7991}
7992
7993 abuf->written = written;
7994 return vpc;
7995#undef FLD
7996}
7997
7998/* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7999
8000static SEM_PC
8001SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8002{
8003#define FLD(f) abuf->fields.sfmt_cmovgfd.f
8004 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8005 int UNUSED written = 0;
8006 IADDR UNUSED pc = abuf->addr;
8007 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8008
8009if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
8010 {
8011 SI opval = GET_H_GR (FLD (f_GRj));
8012 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
8013 written |= (1 << 3);
8014 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8015 }
8016}
8017
8018 abuf->written = written;
8019 return vpc;
8020#undef FLD
8021}
8022
8023/* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
8024
8025static SEM_PC
8026SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8027{
8028#define FLD(f) abuf->fields.sfmt_cmovfgd.f
8029 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8030 int UNUSED written = 0;
8031 IADDR UNUSED pc = abuf->addr;
8032 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8033
8034if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
8035 {
8036 SI opval = GET_H_FR_INT (FLD (f_FRk));
8037 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8038 written |= (1 << 3);
8039 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8040 }
8041}
8042
8043 abuf->written = written;
8044 return vpc;
8045#undef FLD
8046}
8047
8048/* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
8049
8050static SEM_PC
8051SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8052{
8053#define FLD(f) abuf->fields.sfmt_cmovgfd.f
8054 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8055 int UNUSED written = 0;
8056 IADDR UNUSED pc = abuf->addr;
8057 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8058
8059if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
8060if (EQSI (FLD (f_GRj), 0)) {
8061{
8062 {
8063 SI opval = 0;
8064 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
8065 written |= (1 << 6);
8066 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8067 }
8068 {
8069 USI opval = 0;
8070 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
8071 written |= (1 << 7);
8072 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8073 }
8074}
8075} else {
8076{
8077 {
8078 SI opval = GET_H_GR (FLD (f_GRj));
8079 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
8080 written |= (1 << 6);
8081 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8082 }
8083 {
8084 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
8085 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
8086 written |= (1 << 7);
8087 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
8088 }
8089}
8090}
8091}
8092
8093 abuf->written = written;
8094 return vpc;
8095#undef FLD
8096}
8097
8098/* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
8099
8100static SEM_PC
8101SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8102{
8103#define FLD(f) abuf->fields.sfmt_cmovfgd.f
8104 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8105 int UNUSED written = 0;
8106 IADDR UNUSED pc = abuf->addr;
8107 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8108
8109if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
8110{
8111 {
8112 SI opval = GET_H_FR_INT (FLD (f_FRk));
8113 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8114 written |= (1 << 6);
8115 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8116 }
8117 {
8118 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
8119 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
8120 written |= (1 << 7);
8121 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8122 }
8123}
8124}
8125
8126 abuf->written = written;
8127 return vpc;
8128#undef FLD
8129}
8130
8131/* movgs: movgs$pack $GRj,$spr */
8132
8133static SEM_PC
8134SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8135{
8136#define FLD(f) abuf->fields.sfmt_movgs.f
8137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8138 int UNUSED written = 0;
8139 IADDR UNUSED pc = abuf->addr;
8140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8141
8142 {
8143 USI opval = GET_H_GR (FLD (f_GRj));
8144 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
8145 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8146 }
8147
8148 return vpc;
8149#undef FLD
8150}
8151
8152/* movsg: movsg$pack $spr,$GRj */
8153
8154static SEM_PC
8155SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8156{
8157#define FLD(f) abuf->fields.sfmt_movsg.f
8158 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8159 int UNUSED written = 0;
8160 IADDR UNUSED pc = abuf->addr;
8161 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8162
8163 {
8164 SI opval = GET_H_SPR (FLD (f_spr));
8165 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8166 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8167 }
8168
8169 return vpc;
8170#undef FLD
8171}
8172
8173/* bra: bra$pack $hint_taken$label16 */
8174
8175static SEM_PC
8176SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8177{
8178#define FLD(f) abuf->fields.sfmt_fbne.f
8179 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8180 int UNUSED written = 0;
8181 IADDR UNUSED pc = abuf->addr;
8182 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8183
8184{
8185frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8186 {
8187 USI opval = FLD (i_label16);
8188 sim_queue_pc_write (current_cpu, opval);
8189 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8190 }
8191}
8192
8193 return vpc;
8194#undef FLD
8195}
8196
8197/* bno: bno$pack$hint_not_taken */
8198
8199static SEM_PC
8200SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8201{
8202#define FLD(f) abuf->fields.sfmt_fbne.f
8203 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8204 int UNUSED written = 0;
8205 IADDR UNUSED pc = abuf->addr;
8206 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8207
8208frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8209
8210 return vpc;
8211#undef FLD
8212}
8213
8214/* beq: beq$pack $ICCi_2,$hint,$label16 */
8215
8216static SEM_PC
8217SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8218{
8219#define FLD(f) abuf->fields.sfmt_beq.f
8220 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8221 int UNUSED written = 0;
8222 IADDR UNUSED pc = abuf->addr;
8223 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8224
8225{
8226frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8227if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8228 {
8229 USI opval = FLD (i_label16);
8230 sim_queue_pc_write (current_cpu, opval);
8231 written |= (1 << 3);
8232 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8233 }
8234}
8235}
8236
8237 abuf->written = written;
8238 return vpc;
8239#undef FLD
8240}
8241
8242/* bne: bne$pack $ICCi_2,$hint,$label16 */
8243
8244static SEM_PC
8245SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8246{
8247#define FLD(f) abuf->fields.sfmt_beq.f
8248 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8249 int UNUSED written = 0;
8250 IADDR UNUSED pc = abuf->addr;
8251 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8252
8253{
8254frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8255if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8256 {
8257 USI opval = FLD (i_label16);
8258 sim_queue_pc_write (current_cpu, opval);
8259 written |= (1 << 3);
8260 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8261 }
8262}
8263}
8264
8265 abuf->written = written;
8266 return vpc;
8267#undef FLD
8268}
8269
8270/* ble: ble$pack $ICCi_2,$hint,$label16 */
8271
8272static SEM_PC
8273SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8274{
8275#define FLD(f) abuf->fields.sfmt_beq.f
8276 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8277 int UNUSED written = 0;
8278 IADDR UNUSED pc = abuf->addr;
8279 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8280
8281{
8282frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8283if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
8284 {
8285 USI opval = FLD (i_label16);
8286 sim_queue_pc_write (current_cpu, opval);
8287 written |= (1 << 3);
8288 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8289 }
8290}
8291}
8292
8293 abuf->written = written;
8294 return vpc;
8295#undef FLD
8296}
8297
8298/* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8299
8300static SEM_PC
8301SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8302{
8303#define FLD(f) abuf->fields.sfmt_beq.f
8304 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8305 int UNUSED written = 0;
8306 IADDR UNUSED pc = abuf->addr;
8307 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8308
8309{
8310frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8311if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
8312 {
8313 USI opval = FLD (i_label16);
8314 sim_queue_pc_write (current_cpu, opval);
8315 written |= (1 << 3);
8316 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8317 }
8318}
8319}
8320
8321 abuf->written = written;
8322 return vpc;
8323#undef FLD
8324}
8325
8326/* blt: blt$pack $ICCi_2,$hint,$label16 */
8327
8328static SEM_PC
8329SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8330{
8331#define FLD(f) abuf->fields.sfmt_beq.f
8332 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8333 int UNUSED written = 0;
8334 IADDR UNUSED pc = abuf->addr;
8335 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8336
8337{
8338frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8339if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8340 {
8341 USI opval = FLD (i_label16);
8342 sim_queue_pc_write (current_cpu, opval);
8343 written |= (1 << 3);
8344 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8345 }
8346}
8347}
8348
8349 abuf->written = written;
8350 return vpc;
8351#undef FLD
8352}
8353
8354/* bge: bge$pack $ICCi_2,$hint,$label16 */
8355
8356static SEM_PC
8357SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8358{
8359#define FLD(f) abuf->fields.sfmt_beq.f
8360 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8361 int UNUSED written = 0;
8362 IADDR UNUSED pc = abuf->addr;
8363 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8364
8365{
8366frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8367if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
8368 {
8369 USI opval = FLD (i_label16);
8370 sim_queue_pc_write (current_cpu, opval);
8371 written |= (1 << 3);
8372 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8373 }
8374}
8375}
8376
8377 abuf->written = written;
8378 return vpc;
8379#undef FLD
8380}
8381
8382/* bls: bls$pack $ICCi_2,$hint,$label16 */
8383
8384static SEM_PC
8385SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8386{
8387#define FLD(f) abuf->fields.sfmt_beq.f
8388 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8389 int UNUSED written = 0;
8390 IADDR UNUSED pc = abuf->addr;
8391 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8392
8393{
8394frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8395if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8396 {
8397 USI opval = FLD (i_label16);
8398 sim_queue_pc_write (current_cpu, opval);
8399 written |= (1 << 3);
8400 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8401 }
8402}
8403}
8404
8405 abuf->written = written;
8406 return vpc;
8407#undef FLD
8408}
8409
8410/* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8411
8412static SEM_PC
8413SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8414{
8415#define FLD(f) abuf->fields.sfmt_beq.f
8416 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8417 int UNUSED written = 0;
8418 IADDR UNUSED pc = abuf->addr;
8419 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8420
8421{
8422frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8423if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
8424 {
8425 USI opval = FLD (i_label16);
8426 sim_queue_pc_write (current_cpu, opval);
8427 written |= (1 << 3);
8428 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8429 }
8430}
8431}
8432
8433 abuf->written = written;
8434 return vpc;
8435#undef FLD
8436}
8437
8438/* bc: bc$pack $ICCi_2,$hint,$label16 */
8439
8440static SEM_PC
8441SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8442{
8443#define FLD(f) abuf->fields.sfmt_beq.f
8444 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8445 int UNUSED written = 0;
8446 IADDR UNUSED pc = abuf->addr;
8447 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8448
8449{
8450frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8451if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8452 {
8453 USI opval = FLD (i_label16);
8454 sim_queue_pc_write (current_cpu, opval);
8455 written |= (1 << 3);
8456 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8457 }
8458}
8459}
8460
8461 abuf->written = written;
8462 return vpc;
8463#undef FLD
8464}
8465
8466/* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8467
8468static SEM_PC
8469SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8470{
8471#define FLD(f) abuf->fields.sfmt_beq.f
8472 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8473 int UNUSED written = 0;
8474 IADDR UNUSED pc = abuf->addr;
8475 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8476
8477{
8478frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8479if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8480 {
8481 USI opval = FLD (i_label16);
8482 sim_queue_pc_write (current_cpu, opval);
8483 written |= (1 << 3);
8484 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8485 }
8486}
8487}
8488
8489 abuf->written = written;
8490 return vpc;
8491#undef FLD
8492}
8493
8494/* bn: bn$pack $ICCi_2,$hint,$label16 */
8495
8496static SEM_PC
8497SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8498{
8499#define FLD(f) abuf->fields.sfmt_beq.f
8500 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8501 int UNUSED written = 0;
8502 IADDR UNUSED pc = abuf->addr;
8503 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8504
8505{
8506frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8507if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8508 {
8509 USI opval = FLD (i_label16);
8510 sim_queue_pc_write (current_cpu, opval);
8511 written |= (1 << 3);
8512 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8513 }
8514}
8515}
8516
8517 abuf->written = written;
8518 return vpc;
8519#undef FLD
8520}
8521
8522/* bp: bp$pack $ICCi_2,$hint,$label16 */
8523
8524static SEM_PC
8525SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8526{
8527#define FLD(f) abuf->fields.sfmt_beq.f
8528 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8529 int UNUSED written = 0;
8530 IADDR UNUSED pc = abuf->addr;
8531 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8532
8533{
8534frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8535if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8536 {
8537 USI opval = FLD (i_label16);
8538 sim_queue_pc_write (current_cpu, opval);
8539 written |= (1 << 3);
8540 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8541 }
8542}
8543}
8544
8545 abuf->written = written;
8546 return vpc;
8547#undef FLD
8548}
8549
8550/* bv: bv$pack $ICCi_2,$hint,$label16 */
8551
8552static SEM_PC
8553SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8554{
8555#define FLD(f) abuf->fields.sfmt_beq.f
8556 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8557 int UNUSED written = 0;
8558 IADDR UNUSED pc = abuf->addr;
8559 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8560
8561{
8562frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8563if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8564 {
8565 USI opval = FLD (i_label16);
8566 sim_queue_pc_write (current_cpu, opval);
8567 written |= (1 << 3);
8568 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8569 }
8570}
8571}
8572
8573 abuf->written = written;
8574 return vpc;
8575#undef FLD
8576}
8577
8578/* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8579
8580static SEM_PC
8581SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8582{
8583#define FLD(f) abuf->fields.sfmt_beq.f
8584 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8585 int UNUSED written = 0;
8586 IADDR UNUSED pc = abuf->addr;
8587 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8588
8589{
8590frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8591if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8592 {
8593 USI opval = FLD (i_label16);
8594 sim_queue_pc_write (current_cpu, opval);
8595 written |= (1 << 3);
8596 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8597 }
8598}
8599}
8600
8601 abuf->written = written;
8602 return vpc;
8603#undef FLD
8604}
8605
8606/* fbra: fbra$pack $hint_taken$label16 */
8607
8608static SEM_PC
8609SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8610{
8611#define FLD(f) abuf->fields.sfmt_fbne.f
8612 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8613 int UNUSED written = 0;
8614 IADDR UNUSED pc = abuf->addr;
8615 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8616
8617{
8618frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8619 {
8620 USI opval = FLD (i_label16);
8621 sim_queue_pc_write (current_cpu, opval);
8622 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8623 }
8624}
8625
8626 return vpc;
8627#undef FLD
8628}
8629
8630/* fbno: fbno$pack$hint_not_taken */
8631
8632static SEM_PC
8633SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8634{
8635#define FLD(f) abuf->fields.sfmt_fbne.f
8636 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8637 int UNUSED written = 0;
8638 IADDR UNUSED pc = abuf->addr;
8639 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8640
8641frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8642
8643 return vpc;
8644#undef FLD
8645}
8646
8647/* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8648
8649static SEM_PC
8650SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8651{
8652#define FLD(f) abuf->fields.sfmt_fbne.f
8653 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8654 int UNUSED written = 0;
8655 IADDR UNUSED pc = abuf->addr;
8656 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8657
8658{
8659frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8660if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
8661 {
8662 USI opval = FLD (i_label16);
8663 sim_queue_pc_write (current_cpu, opval);
8664 written |= (1 << 3);
8665 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8666 }
8667}
8668}
8669
8670 abuf->written = written;
8671 return vpc;
8672#undef FLD
8673}
8674
8675/* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8676
8677static SEM_PC
8678SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8679{
8680#define FLD(f) abuf->fields.sfmt_fbne.f
8681 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8682 int UNUSED written = 0;
8683 IADDR UNUSED pc = abuf->addr;
8684 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8685
8686{
8687frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8688if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8689 {
8690 USI opval = FLD (i_label16);
8691 sim_queue_pc_write (current_cpu, opval);
8692 written |= (1 << 3);
8693 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8694 }
8695}
8696}
8697
8698 abuf->written = written;
8699 return vpc;
8700#undef FLD
8701}
8702
8703/* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8704
8705static SEM_PC
8706SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8707{
8708#define FLD(f) abuf->fields.sfmt_fbne.f
8709 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8710 int UNUSED written = 0;
8711 IADDR UNUSED pc = abuf->addr;
8712 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8713
8714{
8715frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8716if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
8717 {
8718 USI opval = FLD (i_label16);
8719 sim_queue_pc_write (current_cpu, opval);
8720 written |= (1 << 3);
8721 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8722 }
8723}
8724}
8725
8726 abuf->written = written;
8727 return vpc;
8728#undef FLD
8729}
8730
8731/* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8732
8733static SEM_PC
8734SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8735{
8736#define FLD(f) abuf->fields.sfmt_fbne.f
8737 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8738 int UNUSED written = 0;
8739 IADDR UNUSED pc = abuf->addr;
8740 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8741
8742{
8743frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8744if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8745 {
8746 USI opval = FLD (i_label16);
8747 sim_queue_pc_write (current_cpu, opval);
8748 written |= (1 << 3);
8749 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8750 }
8751}
8752}
8753
8754 abuf->written = written;
8755 return vpc;
8756#undef FLD
8757}
8758
8759/* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8760
8761static SEM_PC
8762SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8763{
8764#define FLD(f) abuf->fields.sfmt_fbne.f
8765 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8766 int UNUSED written = 0;
8767 IADDR UNUSED pc = abuf->addr;
8768 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8769
8770{
8771frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8772if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8773 {
8774 USI opval = FLD (i_label16);
8775 sim_queue_pc_write (current_cpu, opval);
8776 written |= (1 << 3);
8777 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8778 }
8779}
8780}
8781
8782 abuf->written = written;
8783 return vpc;
8784#undef FLD
8785}
8786
8787/* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8788
8789static SEM_PC
8790SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8791{
8792#define FLD(f) abuf->fields.sfmt_fbne.f
8793 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8794 int UNUSED written = 0;
8795 IADDR UNUSED pc = abuf->addr;
8796 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8797
8798{
8799frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8800if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
8801 {
8802 USI opval = FLD (i_label16);
8803 sim_queue_pc_write (current_cpu, opval);
8804 written |= (1 << 3);
8805 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8806 }
8807}
8808}
8809
8810 abuf->written = written;
8811 return vpc;
8812#undef FLD
8813}
8814
8815/* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8816
8817static SEM_PC
8818SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8819{
8820#define FLD(f) abuf->fields.sfmt_fbne.f
8821 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8822 int UNUSED written = 0;
8823 IADDR UNUSED pc = abuf->addr;
8824 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8825
8826{
8827frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8828if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8829 {
8830 USI opval = FLD (i_label16);
8831 sim_queue_pc_write (current_cpu, opval);
8832 written |= (1 << 3);
8833 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8834 }
8835}
8836}
8837
8838 abuf->written = written;
8839 return vpc;
8840#undef FLD
8841}
8842
8843/* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8844
8845static SEM_PC
8846SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8847{
8848#define FLD(f) abuf->fields.sfmt_fbne.f
8849 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8850 int UNUSED written = 0;
8851 IADDR UNUSED pc = abuf->addr;
8852 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8853
8854{
8855frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8856if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
8857 {
8858 USI opval = FLD (i_label16);
8859 sim_queue_pc_write (current_cpu, opval);
8860 written |= (1 << 3);
8861 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8862 }
8863}
8864}
8865
8866 abuf->written = written;
8867 return vpc;
8868#undef FLD
8869}
8870
8871/* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8872
8873static SEM_PC
8874SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8875{
8876#define FLD(f) abuf->fields.sfmt_fbne.f
8877 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8878 int UNUSED written = 0;
8879 IADDR UNUSED pc = abuf->addr;
8880 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8881
8882{
8883frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8884if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8885 {
8886 USI opval = FLD (i_label16);
8887 sim_queue_pc_write (current_cpu, opval);
8888 written |= (1 << 3);
8889 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8890 }
8891}
8892}
8893
8894 abuf->written = written;
8895 return vpc;
8896#undef FLD
8897}
8898
8899/* fble: fble$pack $FCCi_2,$hint,$label16 */
8900
8901static SEM_PC
8902SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8903{
8904#define FLD(f) abuf->fields.sfmt_fbne.f
8905 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8906 int UNUSED written = 0;
8907 IADDR UNUSED pc = abuf->addr;
8908 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8909
8910{
8911frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8912if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
8913 {
8914 USI opval = FLD (i_label16);
8915 sim_queue_pc_write (current_cpu, opval);
8916 written |= (1 << 3);
8917 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8918 }
8919}
8920}
8921
8922 abuf->written = written;
8923 return vpc;
8924#undef FLD
8925}
8926
8927/* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8928
8929static SEM_PC
8930SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8931{
8932#define FLD(f) abuf->fields.sfmt_fbne.f
8933 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8934 int UNUSED written = 0;
8935 IADDR UNUSED pc = abuf->addr;
8936 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8937
8938{
8939frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8940if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8941 {
8942 USI opval = FLD (i_label16);
8943 sim_queue_pc_write (current_cpu, opval);
8944 written |= (1 << 3);
8945 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8946 }
8947}
8948}
8949
8950 abuf->written = written;
8951 return vpc;
8952#undef FLD
8953}
8954
8955/* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8956
8957static SEM_PC
8958SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8959{
8960#define FLD(f) abuf->fields.sfmt_fbne.f
8961 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8962 int UNUSED written = 0;
8963 IADDR UNUSED pc = abuf->addr;
8964 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8965
8966{
8967frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8968if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
8969 {
8970 USI opval = FLD (i_label16);
8971 sim_queue_pc_write (current_cpu, opval);
8972 written |= (1 << 3);
8973 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8974 }
8975}
8976}
8977
8978 abuf->written = written;
8979 return vpc;
8980#undef FLD
8981}
8982
8983/* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8984
8985static SEM_PC
8986SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8987{
8988#define FLD(f) abuf->fields.sfmt_fbne.f
8989 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8990 int UNUSED written = 0;
8991 IADDR UNUSED pc = abuf->addr;
8992 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8993
8994{
8995frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8996if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8997 {
8998 USI opval = FLD (i_label16);
8999 sim_queue_pc_write (current_cpu, opval);
9000 written |= (1 << 3);
9001 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9002 }
9003}
9004}
9005
9006 abuf->written = written;
9007 return vpc;
9008#undef FLD
9009}
9010
9011/* fbo: fbo$pack $FCCi_2,$hint,$label16 */
9012
9013static SEM_PC
9014SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9015{
9016#define FLD(f) abuf->fields.sfmt_fbne.f
9017 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9018 int UNUSED written = 0;
9019 IADDR UNUSED pc = abuf->addr;
9020 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9021
9022{
9023frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
9024if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
9025 {
9026 USI opval = FLD (i_label16);
9027 sim_queue_pc_write (current_cpu, opval);
9028 written |= (1 << 3);
9029 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9030 }
9031}
9032}
9033
9034 abuf->written = written;
9035 return vpc;
9036#undef FLD
9037}
9038
9039/* bctrlr: bctrlr$pack $ccond,$hint */
9040
9041static SEM_PC
9042SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9043{
9044#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9045 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9046 int UNUSED written = 0;
9047 IADDR UNUSED pc = abuf->addr;
9048 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9049
9050{
9051frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9052{
9053 SI tmp_tmp;
9054 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9055 {
9056 USI opval = tmp_tmp;
9057 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9058 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9059 }
9060if (EQSI (FLD (f_ccond), 0)) {
9061if (NESI (tmp_tmp, 0)) {
9062 {
9063 USI opval = GET_H_SPR (((UINT) 272));
9064 sim_queue_pc_write (current_cpu, opval);
9065 written |= (1 << 5);
9066 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9067 }
9068}
9069} else {
9070if (EQSI (tmp_tmp, 0)) {
9071 {
9072 USI opval = GET_H_SPR (((UINT) 272));
9073 sim_queue_pc_write (current_cpu, opval);
9074 written |= (1 << 5);
9075 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9076 }
9077}
9078}
9079}
9080}
9081
9082 abuf->written = written;
9083 return vpc;
9084#undef FLD
9085}
9086
9087/* bralr: bralr$pack$hint_taken */
9088
9089static SEM_PC
9090SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9091{
9092#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9093 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9094 int UNUSED written = 0;
9095 IADDR UNUSED pc = abuf->addr;
9096 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9097
9098{
9099frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9100 {
9101 USI opval = GET_H_SPR (((UINT) 272));
9102 sim_queue_pc_write (current_cpu, opval);
9103 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9104 }
9105}
9106
9107 return vpc;
9108#undef FLD
9109}
9110
9111/* bnolr: bnolr$pack$hint_not_taken */
9112
9113static SEM_PC
9114SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9115{
9116#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9117 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9118 int UNUSED written = 0;
9119 IADDR UNUSED pc = abuf->addr;
9120 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9121
9122frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9123
9124 return vpc;
9125#undef FLD
9126}
9127
9128/* beqlr: beqlr$pack $ICCi_2,$hint */
9129
9130static SEM_PC
9131SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9132{
9133#define FLD(f) abuf->fields.sfmt_bceqlr.f
9134 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9135 int UNUSED written = 0;
9136 IADDR UNUSED pc = abuf->addr;
9137 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9138
9139{
9140frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9141if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9142 {
9143 USI opval = GET_H_SPR (((UINT) 272));
9144 sim_queue_pc_write (current_cpu, opval);
9145 written |= (1 << 3);
9146 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9147 }
9148}
9149}
9150
9151 abuf->written = written;
9152 return vpc;
9153#undef FLD
9154}
9155
9156/* bnelr: bnelr$pack $ICCi_2,$hint */
9157
9158static SEM_PC
9159SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9160{
9161#define FLD(f) abuf->fields.sfmt_bceqlr.f
9162 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9163 int UNUSED written = 0;
9164 IADDR UNUSED pc = abuf->addr;
9165 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9166
9167{
9168frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9169if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9170 {
9171 USI opval = GET_H_SPR (((UINT) 272));
9172 sim_queue_pc_write (current_cpu, opval);
9173 written |= (1 << 3);
9174 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9175 }
9176}
9177}
9178
9179 abuf->written = written;
9180 return vpc;
9181#undef FLD
9182}
9183
9184/* blelr: blelr$pack $ICCi_2,$hint */
9185
9186static SEM_PC
9187SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9188{
9189#define FLD(f) abuf->fields.sfmt_bceqlr.f
9190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9191 int UNUSED written = 0;
9192 IADDR UNUSED pc = abuf->addr;
9193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9194
9195{
9196frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9197if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
9198 {
9199 USI opval = GET_H_SPR (((UINT) 272));
9200 sim_queue_pc_write (current_cpu, opval);
9201 written |= (1 << 3);
9202 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9203 }
9204}
9205}
9206
9207 abuf->written = written;
9208 return vpc;
9209#undef FLD
9210}
9211
9212/* bgtlr: bgtlr$pack $ICCi_2,$hint */
9213
9214static SEM_PC
9215SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9216{
9217#define FLD(f) abuf->fields.sfmt_bceqlr.f
9218 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9219 int UNUSED written = 0;
9220 IADDR UNUSED pc = abuf->addr;
9221 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9222
9223{
9224frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9225if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
9226 {
9227 USI opval = GET_H_SPR (((UINT) 272));
9228 sim_queue_pc_write (current_cpu, opval);
9229 written |= (1 << 3);
9230 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9231 }
9232}
9233}
9234
9235 abuf->written = written;
9236 return vpc;
9237#undef FLD
9238}
9239
9240/* bltlr: bltlr$pack $ICCi_2,$hint */
9241
9242static SEM_PC
9243SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9244{
9245#define FLD(f) abuf->fields.sfmt_bceqlr.f
9246 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9247 int UNUSED written = 0;
9248 IADDR UNUSED pc = abuf->addr;
9249 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9250
9251{
9252frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9253if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9254 {
9255 USI opval = GET_H_SPR (((UINT) 272));
9256 sim_queue_pc_write (current_cpu, opval);
9257 written |= (1 << 3);
9258 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9259 }
9260}
9261}
9262
9263 abuf->written = written;
9264 return vpc;
9265#undef FLD
9266}
9267
9268/* bgelr: bgelr$pack $ICCi_2,$hint */
9269
9270static SEM_PC
9271SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9272{
9273#define FLD(f) abuf->fields.sfmt_bceqlr.f
9274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9275 int UNUSED written = 0;
9276 IADDR UNUSED pc = abuf->addr;
9277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9278
9279{
9280frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9281if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
9282 {
9283 USI opval = GET_H_SPR (((UINT) 272));
9284 sim_queue_pc_write (current_cpu, opval);
9285 written |= (1 << 3);
9286 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9287 }
9288}
9289}
9290
9291 abuf->written = written;
9292 return vpc;
9293#undef FLD
9294}
9295
9296/* blslr: blslr$pack $ICCi_2,$hint */
9297
9298static SEM_PC
9299SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9300{
9301#define FLD(f) abuf->fields.sfmt_bceqlr.f
9302 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9303 int UNUSED written = 0;
9304 IADDR UNUSED pc = abuf->addr;
9305 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9306
9307{
9308frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9309if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9310 {
9311 USI opval = GET_H_SPR (((UINT) 272));
9312 sim_queue_pc_write (current_cpu, opval);
9313 written |= (1 << 3);
9314 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9315 }
9316}
9317}
9318
9319 abuf->written = written;
9320 return vpc;
9321#undef FLD
9322}
9323
9324/* bhilr: bhilr$pack $ICCi_2,$hint */
9325
9326static SEM_PC
9327SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9328{
9329#define FLD(f) abuf->fields.sfmt_bceqlr.f
9330 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9331 int UNUSED written = 0;
9332 IADDR UNUSED pc = abuf->addr;
9333 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9334
9335{
9336frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9337if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
9338 {
9339 USI opval = GET_H_SPR (((UINT) 272));
9340 sim_queue_pc_write (current_cpu, opval);
9341 written |= (1 << 3);
9342 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9343 }
9344}
9345}
9346
9347 abuf->written = written;
9348 return vpc;
9349#undef FLD
9350}
9351
9352/* bclr: bclr$pack $ICCi_2,$hint */
9353
9354static SEM_PC
9355SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9356{
9357#define FLD(f) abuf->fields.sfmt_bceqlr.f
9358 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9359 int UNUSED written = 0;
9360 IADDR UNUSED pc = abuf->addr;
9361 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9362
9363{
9364frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9365if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9366 {
9367 USI opval = GET_H_SPR (((UINT) 272));
9368 sim_queue_pc_write (current_cpu, opval);
9369 written |= (1 << 3);
9370 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9371 }
9372}
9373}
9374
9375 abuf->written = written;
9376 return vpc;
9377#undef FLD
9378}
9379
9380/* bnclr: bnclr$pack $ICCi_2,$hint */
9381
9382static SEM_PC
9383SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9384{
9385#define FLD(f) abuf->fields.sfmt_bceqlr.f
9386 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9387 int UNUSED written = 0;
9388 IADDR UNUSED pc = abuf->addr;
9389 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9390
9391{
9392frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9393if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9394 {
9395 USI opval = GET_H_SPR (((UINT) 272));
9396 sim_queue_pc_write (current_cpu, opval);
9397 written |= (1 << 3);
9398 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9399 }
9400}
9401}
9402
9403 abuf->written = written;
9404 return vpc;
9405#undef FLD
9406}
9407
9408/* bnlr: bnlr$pack $ICCi_2,$hint */
9409
9410static SEM_PC
9411SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9412{
9413#define FLD(f) abuf->fields.sfmt_bceqlr.f
9414 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9415 int UNUSED written = 0;
9416 IADDR UNUSED pc = abuf->addr;
9417 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9418
9419{
9420frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9421if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9422 {
9423 USI opval = GET_H_SPR (((UINT) 272));
9424 sim_queue_pc_write (current_cpu, opval);
9425 written |= (1 << 3);
9426 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9427 }
9428}
9429}
9430
9431 abuf->written = written;
9432 return vpc;
9433#undef FLD
9434}
9435
9436/* bplr: bplr$pack $ICCi_2,$hint */
9437
9438static SEM_PC
9439SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9440{
9441#define FLD(f) abuf->fields.sfmt_bceqlr.f
9442 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9443 int UNUSED written = 0;
9444 IADDR UNUSED pc = abuf->addr;
9445 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9446
9447{
9448frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9449if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9450 {
9451 USI opval = GET_H_SPR (((UINT) 272));
9452 sim_queue_pc_write (current_cpu, opval);
9453 written |= (1 << 3);
9454 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9455 }
9456}
9457}
9458
9459 abuf->written = written;
9460 return vpc;
9461#undef FLD
9462}
9463
9464/* bvlr: bvlr$pack $ICCi_2,$hint */
9465
9466static SEM_PC
9467SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9468{
9469#define FLD(f) abuf->fields.sfmt_bceqlr.f
9470 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9471 int UNUSED written = 0;
9472 IADDR UNUSED pc = abuf->addr;
9473 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9474
9475{
9476frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9477if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9478 {
9479 USI opval = GET_H_SPR (((UINT) 272));
9480 sim_queue_pc_write (current_cpu, opval);
9481 written |= (1 << 3);
9482 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9483 }
9484}
9485}
9486
9487 abuf->written = written;
9488 return vpc;
9489#undef FLD
9490}
9491
9492/* bnvlr: bnvlr$pack $ICCi_2,$hint */
9493
9494static SEM_PC
9495SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9496{
9497#define FLD(f) abuf->fields.sfmt_bceqlr.f
9498 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9499 int UNUSED written = 0;
9500 IADDR UNUSED pc = abuf->addr;
9501 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9502
9503{
9504frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9505if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9506 {
9507 USI opval = GET_H_SPR (((UINT) 272));
9508 sim_queue_pc_write (current_cpu, opval);
9509 written |= (1 << 3);
9510 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9511 }
9512}
9513}
9514
9515 abuf->written = written;
9516 return vpc;
9517#undef FLD
9518}
9519
9520/* fbralr: fbralr$pack$hint_taken */
9521
9522static SEM_PC
9523SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9524{
9525#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9526 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9527 int UNUSED written = 0;
9528 IADDR UNUSED pc = abuf->addr;
9529 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9530
9531{
9532frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9533 {
9534 USI opval = GET_H_SPR (((UINT) 272));
9535 sim_queue_pc_write (current_cpu, opval);
9536 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9537 }
9538}
9539
9540 return vpc;
9541#undef FLD
9542}
9543
9544/* fbnolr: fbnolr$pack$hint_not_taken */
9545
9546static SEM_PC
9547SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9548{
9549#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9550 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9551 int UNUSED written = 0;
9552 IADDR UNUSED pc = abuf->addr;
9553 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9554
9555frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9556
9557 return vpc;
9558#undef FLD
9559}
9560
9561/* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9562
9563static SEM_PC
9564SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9565{
9566#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9567 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9568 int UNUSED written = 0;
9569 IADDR UNUSED pc = abuf->addr;
9570 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9571
9572{
9573frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9574if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9575 {
9576 USI opval = GET_H_SPR (((UINT) 272));
9577 sim_queue_pc_write (current_cpu, opval);
9578 written |= (1 << 3);
9579 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9580 }
9581}
9582}
9583
9584 abuf->written = written;
9585 return vpc;
9586#undef FLD
9587}
9588
9589/* fbnelr: fbnelr$pack $FCCi_2,$hint */
9590
9591static SEM_PC
9592SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9593{
9594#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9595 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9596 int UNUSED written = 0;
9597 IADDR UNUSED pc = abuf->addr;
9598 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9599
9600{
9601frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9602if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
9603 {
9604 USI opval = GET_H_SPR (((UINT) 272));
9605 sim_queue_pc_write (current_cpu, opval);
9606 written |= (1 << 3);
9607 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9608 }
9609}
9610}
9611
9612 abuf->written = written;
9613 return vpc;
9614#undef FLD
9615}
9616
9617/* fblglr: fblglr$pack $FCCi_2,$hint */
9618
9619static SEM_PC
9620SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9621{
9622#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9623 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9624 int UNUSED written = 0;
9625 IADDR UNUSED pc = abuf->addr;
9626 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9627
9628{
9629frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9630if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
9631 {
9632 USI opval = GET_H_SPR (((UINT) 272));
9633 sim_queue_pc_write (current_cpu, opval);
9634 written |= (1 << 3);
9635 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9636 }
9637}
9638}
9639
9640 abuf->written = written;
9641 return vpc;
9642#undef FLD
9643}
9644
9645/* fbuelr: fbuelr$pack $FCCi_2,$hint */
9646
9647static SEM_PC
9648SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9649{
9650#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9651 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9652 int UNUSED written = 0;
9653 IADDR UNUSED pc = abuf->addr;
9654 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9655
9656{
9657frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9658if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9659 {
9660 USI opval = GET_H_SPR (((UINT) 272));
9661 sim_queue_pc_write (current_cpu, opval);
9662 written |= (1 << 3);
9663 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9664 }
9665}
9666}
9667
9668 abuf->written = written;
9669 return vpc;
9670#undef FLD
9671}
9672
9673/* fbullr: fbullr$pack $FCCi_2,$hint */
9674
9675static SEM_PC
9676SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9677{
9678#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9679 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9680 int UNUSED written = 0;
9681 IADDR UNUSED pc = abuf->addr;
9682 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9683
9684{
9685frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9686if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9687 {
9688 USI opval = GET_H_SPR (((UINT) 272));
9689 sim_queue_pc_write (current_cpu, opval);
9690 written |= (1 << 3);
9691 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9692 }
9693}
9694}
9695
9696 abuf->written = written;
9697 return vpc;
9698#undef FLD
9699}
9700
9701/* fbgelr: fbgelr$pack $FCCi_2,$hint */
9702
9703static SEM_PC
9704SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9705{
9706#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9707 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9708 int UNUSED written = 0;
9709 IADDR UNUSED pc = abuf->addr;
9710 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9711
9712{
9713frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9714if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
9715 {
9716 USI opval = GET_H_SPR (((UINT) 272));
9717 sim_queue_pc_write (current_cpu, opval);
9718 written |= (1 << 3);
9719 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9720 }
9721}
9722}
9723
9724 abuf->written = written;
9725 return vpc;
9726#undef FLD
9727}
9728
9729/* fbltlr: fbltlr$pack $FCCi_2,$hint */
9730
9731static SEM_PC
9732SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9733{
9734#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9735 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9736 int UNUSED written = 0;
9737 IADDR UNUSED pc = abuf->addr;
9738 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9739
9740{
9741frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9742if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9743 {
9744 USI opval = GET_H_SPR (((UINT) 272));
9745 sim_queue_pc_write (current_cpu, opval);
9746 written |= (1 << 3);
9747 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9748 }
9749}
9750}
9751
9752 abuf->written = written;
9753 return vpc;
9754#undef FLD
9755}
9756
9757/* fbugelr: fbugelr$pack $FCCi_2,$hint */
9758
9759static SEM_PC
9760SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9761{
9762#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9763 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9764 int UNUSED written = 0;
9765 IADDR UNUSED pc = abuf->addr;
9766 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9767
9768{
9769frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9770if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
9771 {
9772 USI opval = GET_H_SPR (((UINT) 272));
9773 sim_queue_pc_write (current_cpu, opval);
9774 written |= (1 << 3);
9775 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9776 }
9777}
9778}
9779
9780 abuf->written = written;
9781 return vpc;
9782#undef FLD
9783}
9784
9785/* fbuglr: fbuglr$pack $FCCi_2,$hint */
9786
9787static SEM_PC
9788SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9789{
9790#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9791 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9792 int UNUSED written = 0;
9793 IADDR UNUSED pc = abuf->addr;
9794 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9795
9796{
9797frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9798if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9799 {
9800 USI opval = GET_H_SPR (((UINT) 272));
9801 sim_queue_pc_write (current_cpu, opval);
9802 written |= (1 << 3);
9803 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9804 }
9805}
9806}
9807
9808 abuf->written = written;
9809 return vpc;
9810#undef FLD
9811}
9812
9813/* fblelr: fblelr$pack $FCCi_2,$hint */
9814
9815static SEM_PC
9816SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9817{
9818#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9819 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9820 int UNUSED written = 0;
9821 IADDR UNUSED pc = abuf->addr;
9822 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9823
9824{
9825frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9826if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
9827 {
9828 USI opval = GET_H_SPR (((UINT) 272));
9829 sim_queue_pc_write (current_cpu, opval);
9830 written |= (1 << 3);
9831 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9832 }
9833}
9834}
9835
9836 abuf->written = written;
9837 return vpc;
9838#undef FLD
9839}
9840
9841/* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9842
9843static SEM_PC
9844SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9845{
9846#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9847 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9848 int UNUSED written = 0;
9849 IADDR UNUSED pc = abuf->addr;
9850 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9851
9852{
9853frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9854if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9855 {
9856 USI opval = GET_H_SPR (((UINT) 272));
9857 sim_queue_pc_write (current_cpu, opval);
9858 written |= (1 << 3);
9859 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9860 }
9861}
9862}
9863
9864 abuf->written = written;
9865 return vpc;
9866#undef FLD
9867}
9868
9869/* fbulelr: fbulelr$pack $FCCi_2,$hint */
9870
9871static SEM_PC
9872SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9873{
9874#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9875 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9876 int UNUSED written = 0;
9877 IADDR UNUSED pc = abuf->addr;
9878 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9879
9880{
9881frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9882if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
9883 {
9884 USI opval = GET_H_SPR (((UINT) 272));
9885 sim_queue_pc_write (current_cpu, opval);
9886 written |= (1 << 3);
9887 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9888 }
9889}
9890}
9891
9892 abuf->written = written;
9893 return vpc;
9894#undef FLD
9895}
9896
9897/* fbulr: fbulr$pack $FCCi_2,$hint */
9898
9899static SEM_PC
9900SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9901{
9902#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9903 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9904 int UNUSED written = 0;
9905 IADDR UNUSED pc = abuf->addr;
9906 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9907
9908{
9909frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9910if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9911 {
9912 USI opval = GET_H_SPR (((UINT) 272));
9913 sim_queue_pc_write (current_cpu, opval);
9914 written |= (1 << 3);
9915 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9916 }
9917}
9918}
9919
9920 abuf->written = written;
9921 return vpc;
9922#undef FLD
9923}
9924
9925/* fbolr: fbolr$pack $FCCi_2,$hint */
9926
9927static SEM_PC
9928SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9929{
9930#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9931 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9932 int UNUSED written = 0;
9933 IADDR UNUSED pc = abuf->addr;
9934 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9935
9936{
9937frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9938if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
9939 {
9940 USI opval = GET_H_SPR (((UINT) 272));
9941 sim_queue_pc_write (current_cpu, opval);
9942 written |= (1 << 3);
9943 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9944 }
9945}
9946}
9947
9948 abuf->written = written;
9949 return vpc;
9950#undef FLD
9951}
9952
9953/* bcralr: bcralr$pack $ccond$hint_taken */
9954
9955static SEM_PC
9956SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9957{
9958#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9959 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9960 int UNUSED written = 0;
9961 IADDR UNUSED pc = abuf->addr;
9962 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9963
9964{
9965frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9966{
9967 SI tmp_tmp;
9968 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9969 {
9970 USI opval = tmp_tmp;
9971 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9972 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9973 }
9974if (EQSI (FLD (f_ccond), 0)) {
9975if (NESI (tmp_tmp, 0)) {
9976 {
9977 USI opval = GET_H_SPR (((UINT) 272));
9978 sim_queue_pc_write (current_cpu, opval);
9979 written |= (1 << 5);
9980 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9981 }
9982}
9983} else {
9984if (EQSI (tmp_tmp, 0)) {
9985 {
9986 USI opval = GET_H_SPR (((UINT) 272));
9987 sim_queue_pc_write (current_cpu, opval);
9988 written |= (1 << 5);
9989 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9990 }
9991}
9992}
9993}
9994}
9995
9996 abuf->written = written;
9997 return vpc;
9998#undef FLD
9999}
10000
10001/* bcnolr: bcnolr$pack$hint_not_taken */
10002
10003static SEM_PC
10004SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10005{
10006#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10007 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10008 int UNUSED written = 0;
10009 IADDR UNUSED pc = abuf->addr;
10010 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10011
10012{
10013frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10014{
10015 SI tmp_tmp;
10016 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10017 {
10018 USI opval = tmp_tmp;
10019 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10020 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10021 }
10022((void) 0); /*nop*/
10023}
10024}
10025
10026 return vpc;
10027#undef FLD
10028}
10029
10030/* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
10031
10032static SEM_PC
10033SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10034{
10035#define FLD(f) abuf->fields.sfmt_bceqlr.f
10036 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10037 int UNUSED written = 0;
10038 IADDR UNUSED pc = abuf->addr;
10039 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10040
10041{
10042frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10043{
10044 SI tmp_tmp;
10045 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10046 {
10047 USI opval = tmp_tmp;
10048 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10049 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10050 }
10051if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
10052if (EQSI (FLD (f_ccond), 0)) {
10053if (NESI (tmp_tmp, 0)) {
10054 {
10055 USI opval = GET_H_SPR (((UINT) 272));
10056 sim_queue_pc_write (current_cpu, opval);
10057 written |= (1 << 6);
10058 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10059 }
10060}
10061} else {
10062if (EQSI (tmp_tmp, 0)) {
10063 {
10064 USI opval = GET_H_SPR (((UINT) 272));
10065 sim_queue_pc_write (current_cpu, opval);
10066 written |= (1 << 6);
10067 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10068 }
10069}
10070}
10071}
10072}
10073}
10074
10075 abuf->written = written;
10076 return vpc;
10077#undef FLD
10078}
10079
10080/* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
10081
10082static SEM_PC
10083SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10084{
10085#define FLD(f) abuf->fields.sfmt_bceqlr.f
10086 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10087 int UNUSED written = 0;
10088 IADDR UNUSED pc = abuf->addr;
10089 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10090
10091{
10092frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10093{
10094 SI tmp_tmp;
10095 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10096 {
10097 USI opval = tmp_tmp;
10098 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10099 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10100 }
10101if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10102if (EQSI (FLD (f_ccond), 0)) {
10103if (NESI (tmp_tmp, 0)) {
10104 {
10105 USI opval = GET_H_SPR (((UINT) 272));
10106 sim_queue_pc_write (current_cpu, opval);
10107 written |= (1 << 6);
10108 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10109 }
10110}
10111} else {
10112if (EQSI (tmp_tmp, 0)) {
10113 {
10114 USI opval = GET_H_SPR (((UINT) 272));
10115 sim_queue_pc_write (current_cpu, opval);
10116 written |= (1 << 6);
10117 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10118 }
10119}
10120}
10121}
10122}
10123}
10124
10125 abuf->written = written;
10126 return vpc;
10127#undef FLD
10128}
10129
10130/* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
10131
10132static SEM_PC
10133SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10134{
10135#define FLD(f) abuf->fields.sfmt_bceqlr.f
10136 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10137 int UNUSED written = 0;
10138 IADDR UNUSED pc = abuf->addr;
10139 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10140
10141{
10142frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10143{
10144 SI tmp_tmp;
10145 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10146 {
10147 USI opval = tmp_tmp;
10148 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10149 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10150 }
10151if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
10152if (EQSI (FLD (f_ccond), 0)) {
10153if (NESI (tmp_tmp, 0)) {
10154 {
10155 USI opval = GET_H_SPR (((UINT) 272));
10156 sim_queue_pc_write (current_cpu, opval);
10157 written |= (1 << 6);
10158 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10159 }
10160}
10161} else {
10162if (EQSI (tmp_tmp, 0)) {
10163 {
10164 USI opval = GET_H_SPR (((UINT) 272));
10165 sim_queue_pc_write (current_cpu, opval);
10166 written |= (1 << 6);
10167 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10168 }
10169}
10170}
10171}
10172}
10173}
10174
10175 abuf->written = written;
10176 return vpc;
10177#undef FLD
10178}
10179
10180/* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10181
10182static SEM_PC
10183SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10184{
10185#define FLD(f) abuf->fields.sfmt_bceqlr.f
10186 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10187 int UNUSED written = 0;
10188 IADDR UNUSED pc = abuf->addr;
10189 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10190
10191{
10192frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10193{
10194 SI tmp_tmp;
10195 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10196 {
10197 USI opval = tmp_tmp;
10198 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10199 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10200 }
10201if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
10202if (EQSI (FLD (f_ccond), 0)) {
10203if (NESI (tmp_tmp, 0)) {
10204 {
10205 USI opval = GET_H_SPR (((UINT) 272));
10206 sim_queue_pc_write (current_cpu, opval);
10207 written |= (1 << 6);
10208 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10209 }
10210}
10211} else {
10212if (EQSI (tmp_tmp, 0)) {
10213 {
10214 USI opval = GET_H_SPR (((UINT) 272));
10215 sim_queue_pc_write (current_cpu, opval);
10216 written |= (1 << 6);
10217 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10218 }
10219}
10220}
10221}
10222}
10223}
10224
10225 abuf->written = written;
10226 return vpc;
10227#undef FLD
10228}
10229
10230/* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10231
10232static SEM_PC
10233SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10234{
10235#define FLD(f) abuf->fields.sfmt_bceqlr.f
10236 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10237 int UNUSED written = 0;
10238 IADDR UNUSED pc = abuf->addr;
10239 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10240
10241{
10242frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10243{
10244 SI tmp_tmp;
10245 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10246 {
10247 USI opval = tmp_tmp;
10248 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10249 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10250 }
10251if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10252if (EQSI (FLD (f_ccond), 0)) {
10253if (NESI (tmp_tmp, 0)) {
10254 {
10255 USI opval = GET_H_SPR (((UINT) 272));
10256 sim_queue_pc_write (current_cpu, opval);
10257 written |= (1 << 6);
10258 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10259 }
10260}
10261} else {
10262if (EQSI (tmp_tmp, 0)) {
10263 {
10264 USI opval = GET_H_SPR (((UINT) 272));
10265 sim_queue_pc_write (current_cpu, opval);
10266 written |= (1 << 6);
10267 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10268 }
10269}
10270}
10271}
10272}
10273}
10274
10275 abuf->written = written;
10276 return vpc;
10277#undef FLD
10278}
10279
10280/* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10281
10282static SEM_PC
10283SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10284{
10285#define FLD(f) abuf->fields.sfmt_bceqlr.f
10286 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10287 int UNUSED written = 0;
10288 IADDR UNUSED pc = abuf->addr;
10289 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10290
10291{
10292frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10293{
10294 SI tmp_tmp;
10295 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10296 {
10297 USI opval = tmp_tmp;
10298 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10299 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10300 }
10301if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
10302if (EQSI (FLD (f_ccond), 0)) {
10303if (NESI (tmp_tmp, 0)) {
10304 {
10305 USI opval = GET_H_SPR (((UINT) 272));
10306 sim_queue_pc_write (current_cpu, opval);
10307 written |= (1 << 6);
10308 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10309 }
10310}
10311} else {
10312if (EQSI (tmp_tmp, 0)) {
10313 {
10314 USI opval = GET_H_SPR (((UINT) 272));
10315 sim_queue_pc_write (current_cpu, opval);
10316 written |= (1 << 6);
10317 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10318 }
10319}
10320}
10321}
10322}
10323}
10324
10325 abuf->written = written;
10326 return vpc;
10327#undef FLD
10328}
10329
10330/* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10331
10332static SEM_PC
10333SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10334{
10335#define FLD(f) abuf->fields.sfmt_bceqlr.f
10336 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10337 int UNUSED written = 0;
10338 IADDR UNUSED pc = abuf->addr;
10339 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10340
10341{
10342frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10343{
10344 SI tmp_tmp;
10345 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10346 {
10347 USI opval = tmp_tmp;
10348 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10349 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10350 }
10351if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10352if (EQSI (FLD (f_ccond), 0)) {
10353if (NESI (tmp_tmp, 0)) {
10354 {
10355 USI opval = GET_H_SPR (((UINT) 272));
10356 sim_queue_pc_write (current_cpu, opval);
10357 written |= (1 << 6);
10358 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10359 }
10360}
10361} else {
10362if (EQSI (tmp_tmp, 0)) {
10363 {
10364 USI opval = GET_H_SPR (((UINT) 272));
10365 sim_queue_pc_write (current_cpu, opval);
10366 written |= (1 << 6);
10367 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10368 }
10369}
10370}
10371}
10372}
10373}
10374
10375 abuf->written = written;
10376 return vpc;
10377#undef FLD
10378}
10379
10380/* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10381
10382static SEM_PC
10383SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10384{
10385#define FLD(f) abuf->fields.sfmt_bceqlr.f
10386 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10387 int UNUSED written = 0;
10388 IADDR UNUSED pc = abuf->addr;
10389 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10390
10391{
10392frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10393{
10394 SI tmp_tmp;
10395 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10396 {
10397 USI opval = tmp_tmp;
10398 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10399 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10400 }
10401if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
10402if (EQSI (FLD (f_ccond), 0)) {
10403if (NESI (tmp_tmp, 0)) {
10404 {
10405 USI opval = GET_H_SPR (((UINT) 272));
10406 sim_queue_pc_write (current_cpu, opval);
10407 written |= (1 << 6);
10408 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10409 }
10410}
10411} else {
10412if (EQSI (tmp_tmp, 0)) {
10413 {
10414 USI opval = GET_H_SPR (((UINT) 272));
10415 sim_queue_pc_write (current_cpu, opval);
10416 written |= (1 << 6);
10417 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10418 }
10419}
10420}
10421}
10422}
10423}
10424
10425 abuf->written = written;
10426 return vpc;
10427#undef FLD
10428}
10429
10430/* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10431
10432static SEM_PC
10433SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10434{
10435#define FLD(f) abuf->fields.sfmt_bceqlr.f
10436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10437 int UNUSED written = 0;
10438 IADDR UNUSED pc = abuf->addr;
10439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10440
10441{
10442frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10443{
10444 SI tmp_tmp;
10445 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10446 {
10447 USI opval = tmp_tmp;
10448 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10449 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10450 }
10451if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10452if (EQSI (FLD (f_ccond), 0)) {
10453if (NESI (tmp_tmp, 0)) {
10454 {
10455 USI opval = GET_H_SPR (((UINT) 272));
10456 sim_queue_pc_write (current_cpu, opval);
10457 written |= (1 << 6);
10458 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10459 }
10460}
10461} else {
10462if (EQSI (tmp_tmp, 0)) {
10463 {
10464 USI opval = GET_H_SPR (((UINT) 272));
10465 sim_queue_pc_write (current_cpu, opval);
10466 written |= (1 << 6);
10467 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10468 }
10469}
10470}
10471}
10472}
10473}
10474
10475 abuf->written = written;
10476 return vpc;
10477#undef FLD
10478}
10479
10480/* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10481
10482static SEM_PC
10483SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10484{
10485#define FLD(f) abuf->fields.sfmt_bceqlr.f
10486 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10487 int UNUSED written = 0;
10488 IADDR UNUSED pc = abuf->addr;
10489 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10490
10491{
10492frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10493{
10494 SI tmp_tmp;
10495 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10496 {
10497 USI opval = tmp_tmp;
10498 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10499 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10500 }
10501if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10502if (EQSI (FLD (f_ccond), 0)) {
10503if (NESI (tmp_tmp, 0)) {
10504 {
10505 USI opval = GET_H_SPR (((UINT) 272));
10506 sim_queue_pc_write (current_cpu, opval);
10507 written |= (1 << 6);
10508 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10509 }
10510}
10511} else {
10512if (EQSI (tmp_tmp, 0)) {
10513 {
10514 USI opval = GET_H_SPR (((UINT) 272));
10515 sim_queue_pc_write (current_cpu, opval);
10516 written |= (1 << 6);
10517 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10518 }
10519}
10520}
10521}
10522}
10523}
10524
10525 abuf->written = written;
10526 return vpc;
10527#undef FLD
10528}
10529
10530/* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10531
10532static SEM_PC
10533SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10534{
10535#define FLD(f) abuf->fields.sfmt_bceqlr.f
10536 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10537 int UNUSED written = 0;
10538 IADDR UNUSED pc = abuf->addr;
10539 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10540
10541{
10542frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10543{
10544 SI tmp_tmp;
10545 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10546 {
10547 USI opval = tmp_tmp;
10548 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10549 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10550 }
10551if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10552if (EQSI (FLD (f_ccond), 0)) {
10553if (NESI (tmp_tmp, 0)) {
10554 {
10555 USI opval = GET_H_SPR (((UINT) 272));
10556 sim_queue_pc_write (current_cpu, opval);
10557 written |= (1 << 6);
10558 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10559 }
10560}
10561} else {
10562if (EQSI (tmp_tmp, 0)) {
10563 {
10564 USI opval = GET_H_SPR (((UINT) 272));
10565 sim_queue_pc_write (current_cpu, opval);
10566 written |= (1 << 6);
10567 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10568 }
10569}
10570}
10571}
10572}
10573}
10574
10575 abuf->written = written;
10576 return vpc;
10577#undef FLD
10578}
10579
10580/* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10581
10582static SEM_PC
10583SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10584{
10585#define FLD(f) abuf->fields.sfmt_bceqlr.f
10586 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10587 int UNUSED written = 0;
10588 IADDR UNUSED pc = abuf->addr;
10589 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10590
10591{
10592frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10593{
10594 SI tmp_tmp;
10595 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10596 {
10597 USI opval = tmp_tmp;
10598 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10599 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10600 }
10601if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10602if (EQSI (FLD (f_ccond), 0)) {
10603if (NESI (tmp_tmp, 0)) {
10604 {
10605 USI opval = GET_H_SPR (((UINT) 272));
10606 sim_queue_pc_write (current_cpu, opval);
10607 written |= (1 << 6);
10608 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10609 }
10610}
10611} else {
10612if (EQSI (tmp_tmp, 0)) {
10613 {
10614 USI opval = GET_H_SPR (((UINT) 272));
10615 sim_queue_pc_write (current_cpu, opval);
10616 written |= (1 << 6);
10617 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10618 }
10619}
10620}
10621}
10622}
10623}
10624
10625 abuf->written = written;
10626 return vpc;
10627#undef FLD
10628}
10629
10630/* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10631
10632static SEM_PC
10633SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10634{
10635#define FLD(f) abuf->fields.sfmt_bceqlr.f
10636 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10637 int UNUSED written = 0;
10638 IADDR UNUSED pc = abuf->addr;
10639 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10640
10641{
10642frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10643{
10644 SI tmp_tmp;
10645 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10646 {
10647 USI opval = tmp_tmp;
10648 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10649 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10650 }
10651if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10652if (EQSI (FLD (f_ccond), 0)) {
10653if (NESI (tmp_tmp, 0)) {
10654 {
10655 USI opval = GET_H_SPR (((UINT) 272));
10656 sim_queue_pc_write (current_cpu, opval);
10657 written |= (1 << 6);
10658 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10659 }
10660}
10661} else {
10662if (EQSI (tmp_tmp, 0)) {
10663 {
10664 USI opval = GET_H_SPR (((UINT) 272));
10665 sim_queue_pc_write (current_cpu, opval);
10666 written |= (1 << 6);
10667 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10668 }
10669}
10670}
10671}
10672}
10673}
10674
10675 abuf->written = written;
10676 return vpc;
10677#undef FLD
10678}
10679
10680/* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10681
10682static SEM_PC
10683SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10684{
10685#define FLD(f) abuf->fields.sfmt_bceqlr.f
10686 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10687 int UNUSED written = 0;
10688 IADDR UNUSED pc = abuf->addr;
10689 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10690
10691{
10692frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10693{
10694 SI tmp_tmp;
10695 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10696 {
10697 USI opval = tmp_tmp;
10698 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10699 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10700 }
10701if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10702if (EQSI (FLD (f_ccond), 0)) {
10703if (NESI (tmp_tmp, 0)) {
10704 {
10705 USI opval = GET_H_SPR (((UINT) 272));
10706 sim_queue_pc_write (current_cpu, opval);
10707 written |= (1 << 6);
10708 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10709 }
10710}
10711} else {
10712if (EQSI (tmp_tmp, 0)) {
10713 {
10714 USI opval = GET_H_SPR (((UINT) 272));
10715 sim_queue_pc_write (current_cpu, opval);
10716 written |= (1 << 6);
10717 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10718 }
10719}
10720}
10721}
10722}
10723}
10724
10725 abuf->written = written;
10726 return vpc;
10727#undef FLD
10728}
10729
10730/* fcbralr: fcbralr$pack $ccond$hint_taken */
10731
10732static SEM_PC
10733SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10734{
10735#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10736 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10737 int UNUSED written = 0;
10738 IADDR UNUSED pc = abuf->addr;
10739 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10740
10741{
10742frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10743{
10744 SI tmp_tmp;
10745 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10746 {
10747 USI opval = tmp_tmp;
10748 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10749 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10750 }
10751if (EQSI (FLD (f_ccond), 0)) {
10752if (NESI (tmp_tmp, 0)) {
10753 {
10754 USI opval = GET_H_SPR (((UINT) 272));
10755 sim_queue_pc_write (current_cpu, opval);
10756 written |= (1 << 5);
10757 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10758 }
10759}
10760} else {
10761if (EQSI (tmp_tmp, 0)) {
10762 {
10763 USI opval = GET_H_SPR (((UINT) 272));
10764 sim_queue_pc_write (current_cpu, opval);
10765 written |= (1 << 5);
10766 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10767 }
10768}
10769}
10770}
10771}
10772
10773 abuf->written = written;
10774 return vpc;
10775#undef FLD
10776}
10777
10778/* fcbnolr: fcbnolr$pack$hint_not_taken */
10779
10780static SEM_PC
10781SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10782{
10783#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10784 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10785 int UNUSED written = 0;
10786 IADDR UNUSED pc = abuf->addr;
10787 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10788
10789{
10790frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10791{
10792 SI tmp_tmp;
10793 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10794 {
10795 USI opval = tmp_tmp;
10796 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10797 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10798 }
10799((void) 0); /*nop*/
10800}
10801}
10802
10803 return vpc;
10804#undef FLD
10805}
10806
10807/* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10808
10809static SEM_PC
10810SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10811{
10812#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10814 int UNUSED written = 0;
10815 IADDR UNUSED pc = abuf->addr;
10816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10817
10818{
10819frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10820{
10821 SI tmp_tmp;
10822 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10823 {
10824 USI opval = tmp_tmp;
10825 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10826 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10827 }
10828if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10829if (EQSI (FLD (f_ccond), 0)) {
10830if (NESI (tmp_tmp, 0)) {
10831 {
10832 USI opval = GET_H_SPR (((UINT) 272));
10833 sim_queue_pc_write (current_cpu, opval);
10834 written |= (1 << 6);
10835 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10836 }
10837}
10838} else {
10839if (EQSI (tmp_tmp, 0)) {
10840 {
10841 USI opval = GET_H_SPR (((UINT) 272));
10842 sim_queue_pc_write (current_cpu, opval);
10843 written |= (1 << 6);
10844 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10845 }
10846}
10847}
10848}
10849}
10850}
10851
10852 abuf->written = written;
10853 return vpc;
10854#undef FLD
10855}
10856
10857/* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10858
10859static SEM_PC
10860SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10861{
10862#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10863 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10864 int UNUSED written = 0;
10865 IADDR UNUSED pc = abuf->addr;
10866 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10867
10868{
10869frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10870{
10871 SI tmp_tmp;
10872 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10873 {
10874 USI opval = tmp_tmp;
10875 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10876 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10877 }
10878if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
10879if (EQSI (FLD (f_ccond), 0)) {
10880if (NESI (tmp_tmp, 0)) {
10881 {
10882 USI opval = GET_H_SPR (((UINT) 272));
10883 sim_queue_pc_write (current_cpu, opval);
10884 written |= (1 << 6);
10885 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10886 }
10887}
10888} else {
10889if (EQSI (tmp_tmp, 0)) {
10890 {
10891 USI opval = GET_H_SPR (((UINT) 272));
10892 sim_queue_pc_write (current_cpu, opval);
10893 written |= (1 << 6);
10894 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10895 }
10896}
10897}
10898}
10899}
10900}
10901
10902 abuf->written = written;
10903 return vpc;
10904#undef FLD
10905}
10906
10907/* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10908
10909static SEM_PC
10910SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10911{
10912#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10913 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10914 int UNUSED written = 0;
10915 IADDR UNUSED pc = abuf->addr;
10916 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10917
10918{
10919frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10920{
10921 SI tmp_tmp;
10922 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10923 {
10924 USI opval = tmp_tmp;
10925 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10926 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10927 }
10928if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
10929if (EQSI (FLD (f_ccond), 0)) {
10930if (NESI (tmp_tmp, 0)) {
10931 {
10932 USI opval = GET_H_SPR (((UINT) 272));
10933 sim_queue_pc_write (current_cpu, opval);
10934 written |= (1 << 6);
10935 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10936 }
10937}
10938} else {
10939if (EQSI (tmp_tmp, 0)) {
10940 {
10941 USI opval = GET_H_SPR (((UINT) 272));
10942 sim_queue_pc_write (current_cpu, opval);
10943 written |= (1 << 6);
10944 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10945 }
10946}
10947}
10948}
10949}
10950}
10951
10952 abuf->written = written;
10953 return vpc;
10954#undef FLD
10955}
10956
10957/* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10958
10959static SEM_PC
10960SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10961{
10962#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10963 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10964 int UNUSED written = 0;
10965 IADDR UNUSED pc = abuf->addr;
10966 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10967
10968{
10969frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10970{
10971 SI tmp_tmp;
10972 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10973 {
10974 USI opval = tmp_tmp;
10975 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10976 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10977 }
10978if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10979if (EQSI (FLD (f_ccond), 0)) {
10980if (NESI (tmp_tmp, 0)) {
10981 {
10982 USI opval = GET_H_SPR (((UINT) 272));
10983 sim_queue_pc_write (current_cpu, opval);
10984 written |= (1 << 6);
10985 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10986 }
10987}
10988} else {
10989if (EQSI (tmp_tmp, 0)) {
10990 {
10991 USI opval = GET_H_SPR (((UINT) 272));
10992 sim_queue_pc_write (current_cpu, opval);
10993 written |= (1 << 6);
10994 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10995 }
10996}
10997}
10998}
10999}
11000}
11001
11002 abuf->written = written;
11003 return vpc;
11004#undef FLD
11005}
11006
11007/* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
11008
11009static SEM_PC
11010SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11011{
11012#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11013 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11014 int UNUSED written = 0;
11015 IADDR UNUSED pc = abuf->addr;
11016 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11017
11018{
11019frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11020{
11021 SI tmp_tmp;
11022 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11023 {
11024 USI opval = tmp_tmp;
11025 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11026 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11027 }
11028if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11029if (EQSI (FLD (f_ccond), 0)) {
11030if (NESI (tmp_tmp, 0)) {
11031 {
11032 USI opval = GET_H_SPR (((UINT) 272));
11033 sim_queue_pc_write (current_cpu, opval);
11034 written |= (1 << 6);
11035 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11036 }
11037}
11038} else {
11039if (EQSI (tmp_tmp, 0)) {
11040 {
11041 USI opval = GET_H_SPR (((UINT) 272));
11042 sim_queue_pc_write (current_cpu, opval);
11043 written |= (1 << 6);
11044 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11045 }
11046}
11047}
11048}
11049}
11050}
11051
11052 abuf->written = written;
11053 return vpc;
11054#undef FLD
11055}
11056
11057/* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
11058
11059static SEM_PC
11060SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11061{
11062#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11063 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11064 int UNUSED written = 0;
11065 IADDR UNUSED pc = abuf->addr;
11066 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11067
11068{
11069frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11070{
11071 SI tmp_tmp;
11072 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11073 {
11074 USI opval = tmp_tmp;
11075 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11076 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11077 }
11078if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
11079if (EQSI (FLD (f_ccond), 0)) {
11080if (NESI (tmp_tmp, 0)) {
11081 {
11082 USI opval = GET_H_SPR (((UINT) 272));
11083 sim_queue_pc_write (current_cpu, opval);
11084 written |= (1 << 6);
11085 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11086 }
11087}
11088} else {
11089if (EQSI (tmp_tmp, 0)) {
11090 {
11091 USI opval = GET_H_SPR (((UINT) 272));
11092 sim_queue_pc_write (current_cpu, opval);
11093 written |= (1 << 6);
11094 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11095 }
11096}
11097}
11098}
11099}
11100}
11101
11102 abuf->written = written;
11103 return vpc;
11104#undef FLD
11105}
11106
11107/* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
11108
11109static SEM_PC
11110SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11111{
11112#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11113 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11114 int UNUSED written = 0;
11115 IADDR UNUSED pc = abuf->addr;
11116 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11117
11118{
11119frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11120{
11121 SI tmp_tmp;
11122 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11123 {
11124 USI opval = tmp_tmp;
11125 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11126 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11127 }
11128if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
11129if (EQSI (FLD (f_ccond), 0)) {
11130if (NESI (tmp_tmp, 0)) {
11131 {
11132 USI opval = GET_H_SPR (((UINT) 272));
11133 sim_queue_pc_write (current_cpu, opval);
11134 written |= (1 << 6);
11135 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11136 }
11137}
11138} else {
11139if (EQSI (tmp_tmp, 0)) {
11140 {
11141 USI opval = GET_H_SPR (((UINT) 272));
11142 sim_queue_pc_write (current_cpu, opval);
11143 written |= (1 << 6);
11144 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11145 }
11146}
11147}
11148}
11149}
11150}
11151
11152 abuf->written = written;
11153 return vpc;
11154#undef FLD
11155}
11156
11157/* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
11158
11159static SEM_PC
11160SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11161{
11162#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11163 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11164 int UNUSED written = 0;
11165 IADDR UNUSED pc = abuf->addr;
11166 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11167
11168{
11169frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11170{
11171 SI tmp_tmp;
11172 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11173 {
11174 USI opval = tmp_tmp;
11175 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11176 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11177 }
11178if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
11179if (EQSI (FLD (f_ccond), 0)) {
11180if (NESI (tmp_tmp, 0)) {
11181 {
11182 USI opval = GET_H_SPR (((UINT) 272));
11183 sim_queue_pc_write (current_cpu, opval);
11184 written |= (1 << 6);
11185 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11186 }
11187}
11188} else {
11189if (EQSI (tmp_tmp, 0)) {
11190 {
11191 USI opval = GET_H_SPR (((UINT) 272));
11192 sim_queue_pc_write (current_cpu, opval);
11193 written |= (1 << 6);
11194 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11195 }
11196}
11197}
11198}
11199}
11200}
11201
11202 abuf->written = written;
11203 return vpc;
11204#undef FLD
11205}
11206
11207/* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11208
11209static SEM_PC
11210SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11211{
11212#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11214 int UNUSED written = 0;
11215 IADDR UNUSED pc = abuf->addr;
11216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11217
11218{
11219frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11220{
11221 SI tmp_tmp;
11222 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11223 {
11224 USI opval = tmp_tmp;
11225 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11226 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11227 }
11228if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11229if (EQSI (FLD (f_ccond), 0)) {
11230if (NESI (tmp_tmp, 0)) {
11231 {
11232 USI opval = GET_H_SPR (((UINT) 272));
11233 sim_queue_pc_write (current_cpu, opval);
11234 written |= (1 << 6);
11235 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11236 }
11237}
11238} else {
11239if (EQSI (tmp_tmp, 0)) {
11240 {
11241 USI opval = GET_H_SPR (((UINT) 272));
11242 sim_queue_pc_write (current_cpu, opval);
11243 written |= (1 << 6);
11244 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11245 }
11246}
11247}
11248}
11249}
11250}
11251
11252 abuf->written = written;
11253 return vpc;
11254#undef FLD
11255}
11256
11257/* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11258
11259static SEM_PC
11260SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11261{
11262#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11263 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11264 int UNUSED written = 0;
11265 IADDR UNUSED pc = abuf->addr;
11266 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11267
11268{
11269frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11270{
11271 SI tmp_tmp;
11272 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11273 {
11274 USI opval = tmp_tmp;
11275 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11276 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11277 }
11278if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
11279if (EQSI (FLD (f_ccond), 0)) {
11280if (NESI (tmp_tmp, 0)) {
11281 {
11282 USI opval = GET_H_SPR (((UINT) 272));
11283 sim_queue_pc_write (current_cpu, opval);
11284 written |= (1 << 6);
11285 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11286 }
11287}
11288} else {
11289if (EQSI (tmp_tmp, 0)) {
11290 {
11291 USI opval = GET_H_SPR (((UINT) 272));
11292 sim_queue_pc_write (current_cpu, opval);
11293 written |= (1 << 6);
11294 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11295 }
11296}
11297}
11298}
11299}
11300}
11301
11302 abuf->written = written;
11303 return vpc;
11304#undef FLD
11305}
11306
11307/* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11308
11309static SEM_PC
11310SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11311{
11312#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11313 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11314 int UNUSED written = 0;
11315 IADDR UNUSED pc = abuf->addr;
11316 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11317
11318{
11319frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11320{
11321 SI tmp_tmp;
11322 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11323 {
11324 USI opval = tmp_tmp;
11325 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11326 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11327 }
11328if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11329if (EQSI (FLD (f_ccond), 0)) {
11330if (NESI (tmp_tmp, 0)) {
11331 {
11332 USI opval = GET_H_SPR (((UINT) 272));
11333 sim_queue_pc_write (current_cpu, opval);
11334 written |= (1 << 6);
11335 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11336 }
11337}
11338} else {
11339if (EQSI (tmp_tmp, 0)) {
11340 {
11341 USI opval = GET_H_SPR (((UINT) 272));
11342 sim_queue_pc_write (current_cpu, opval);
11343 written |= (1 << 6);
11344 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11345 }
11346}
11347}
11348}
11349}
11350}
11351
11352 abuf->written = written;
11353 return vpc;
11354#undef FLD
11355}
11356
11357/* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11358
11359static SEM_PC
11360SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11361{
11362#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11363 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11364 int UNUSED written = 0;
11365 IADDR UNUSED pc = abuf->addr;
11366 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11367
11368{
11369frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11370{
11371 SI tmp_tmp;
11372 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11373 {
11374 USI opval = tmp_tmp;
11375 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11376 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11377 }
11378if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
11379if (EQSI (FLD (f_ccond), 0)) {
11380if (NESI (tmp_tmp, 0)) {
11381 {
11382 USI opval = GET_H_SPR (((UINT) 272));
11383 sim_queue_pc_write (current_cpu, opval);
11384 written |= (1 << 6);
11385 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11386 }
11387}
11388} else {
11389if (EQSI (tmp_tmp, 0)) {
11390 {
11391 USI opval = GET_H_SPR (((UINT) 272));
11392 sim_queue_pc_write (current_cpu, opval);
11393 written |= (1 << 6);
11394 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11395 }
11396}
11397}
11398}
11399}
11400}
11401
11402 abuf->written = written;
11403 return vpc;
11404#undef FLD
11405}
11406
11407/* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11408
11409static SEM_PC
11410SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11411{
11412#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11414 int UNUSED written = 0;
11415 IADDR UNUSED pc = abuf->addr;
11416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11417
11418{
11419frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11420{
11421 SI tmp_tmp;
11422 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11423 {
11424 USI opval = tmp_tmp;
11425 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11426 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11427 }
11428if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11429if (EQSI (FLD (f_ccond), 0)) {
11430if (NESI (tmp_tmp, 0)) {
11431 {
11432 USI opval = GET_H_SPR (((UINT) 272));
11433 sim_queue_pc_write (current_cpu, opval);
11434 written |= (1 << 6);
11435 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11436 }
11437}
11438} else {
11439if (EQSI (tmp_tmp, 0)) {
11440 {
11441 USI opval = GET_H_SPR (((UINT) 272));
11442 sim_queue_pc_write (current_cpu, opval);
11443 written |= (1 << 6);
11444 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11445 }
11446}
11447}
11448}
11449}
11450}
11451
11452 abuf->written = written;
11453 return vpc;
11454#undef FLD
11455}
11456
11457/* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11458
11459static SEM_PC
11460SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11461{
11462#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11463 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11464 int UNUSED written = 0;
11465 IADDR UNUSED pc = abuf->addr;
11466 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11467
11468{
11469frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11470{
11471 SI tmp_tmp;
11472 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11473 {
11474 USI opval = tmp_tmp;
11475 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11476 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11477 }
11478if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
11479if (EQSI (FLD (f_ccond), 0)) {
11480if (NESI (tmp_tmp, 0)) {
11481 {
11482 USI opval = GET_H_SPR (((UINT) 272));
11483 sim_queue_pc_write (current_cpu, opval);
11484 written |= (1 << 6);
11485 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11486 }
11487}
11488} else {
11489if (EQSI (tmp_tmp, 0)) {
11490 {
11491 USI opval = GET_H_SPR (((UINT) 272));
11492 sim_queue_pc_write (current_cpu, opval);
11493 written |= (1 << 6);
11494 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11495 }
11496}
11497}
11498}
11499}
11500}
11501
11502 abuf->written = written;
11503 return vpc;
11504#undef FLD
11505}
11506
11507/* jmpl: jmpl$pack @($GRi,$GRj) */
11508
11509static SEM_PC
11510SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11511{
11512#define FLD(f) abuf->fields.sfmt_cjmpl.f
11513 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11514 int UNUSED written = 0;
11515 IADDR UNUSED pc = abuf->addr;
11516 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11517
11518{
11519if (EQSI (FLD (f_LI), 1)) {
11520frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11521}
11522 {
11523 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11524 sim_queue_pc_write (current_cpu, opval);
11525 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11526 }
11527frvbf_model_branch (current_cpu, pc, 2);
11528}
11529
11530 return vpc;
11531#undef FLD
11532}
11533
11534/* calll: calll$pack @($GRi,$GRj) */
11535
11536static SEM_PC
11537SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11538{
11539#define FLD(f) abuf->fields.sfmt_cjmpl.f
11540 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11541 int UNUSED written = 0;
11542 IADDR UNUSED pc = abuf->addr;
11543 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11544
11545{
11546if (EQSI (FLD (f_LI), 1)) {
11547frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11548}
11549 {
11550 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11551 sim_queue_pc_write (current_cpu, opval);
11552 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11553 }
11554frvbf_model_branch (current_cpu, pc, 2);
11555}
11556
11557 return vpc;
11558#undef FLD
11559}
11560
11561/* jmpil: jmpil$pack @($GRi,$s12) */
11562
11563static SEM_PC
11564SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11565{
11566#define FLD(f) abuf->fields.sfmt_jmpil.f
11567 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11568 int UNUSED written = 0;
11569 IADDR UNUSED pc = abuf->addr;
11570 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11571
11572{
11573if (EQSI (FLD (f_LI), 1)) {
11574frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11575}
11576 {
11577 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11578 sim_queue_pc_write (current_cpu, opval);
11579 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11580 }
11581frvbf_model_branch (current_cpu, pc, 2);
11582}
11583
11584 return vpc;
11585#undef FLD
11586}
11587
11588/* callil: callil$pack @($GRi,$s12) */
11589
11590static SEM_PC
11591SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11592{
11593#define FLD(f) abuf->fields.sfmt_jmpil.f
11594 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11595 int UNUSED written = 0;
11596 IADDR UNUSED pc = abuf->addr;
11597 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11598
11599{
11600if (EQSI (FLD (f_LI), 1)) {
11601frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11602}
11603 {
11604 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11605 sim_queue_pc_write (current_cpu, opval);
11606 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11607 }
11608frvbf_model_branch (current_cpu, pc, 2);
11609}
11610
11611 return vpc;
11612#undef FLD
11613}
11614
11615/* call: call$pack $label24 */
11616
11617static SEM_PC
11618SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11619{
11620#define FLD(f) abuf->fields.sfmt_call.f
11621 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11622 int UNUSED written = 0;
11623 IADDR UNUSED pc = abuf->addr;
11624 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11625
11626{
11627frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11628 {
11629 USI opval = FLD (i_label24);
11630 sim_queue_pc_write (current_cpu, opval);
11631 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11632 }
11633frvbf_model_branch (current_cpu, pc, 2);
11634}
11635
11636 return vpc;
11637#undef FLD
11638}
11639
11640/* rett: rett$pack $debug */
11641
11642static SEM_PC
11643SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11644{
11645#define FLD(f) abuf->fields.sfmt_rett.f
11646 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11647 int UNUSED written = 0;
11648 IADDR UNUSED pc = abuf->addr;
11649 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11650
11651{
11652 {
11653 USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11654 sim_queue_pc_write (current_cpu, opval);
11655 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11656 }
11657frvbf_model_branch (current_cpu, pc, 2);
11658}
11659
11660 return vpc;
11661#undef FLD
11662}
11663
11664/* rei: rei$pack $eir */
11665
11666static SEM_PC
11667SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11668{
11669#define FLD(f) abuf->fields.fmt_empty.f
11670 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11671 int UNUSED written = 0;
11672 IADDR UNUSED pc = abuf->addr;
11673 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11674
11675((void) 0); /*nop*/
11676
11677 return vpc;
11678#undef FLD
11679}
11680
11681/* tra: tra$pack $GRi,$GRj */
11682
11683static SEM_PC
11684SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11685{
11686#define FLD(f) abuf->fields.sfmt_ftne.f
11687 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11688 int UNUSED written = 0;
11689 IADDR UNUSED pc = abuf->addr;
11690 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11691
11692{
11693; /*clobber*/
11694; /*clobber*/
11695; /*clobber*/
11696; /*clobber*/
11697if (NEBI (CPU (h_psr_esr), 0)) {
11698{
11699; /*clobber*/
11700; /*clobber*/
11701; /*clobber*/
11702; /*clobber*/
11703}
11704}
11705frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11706}
11707
11708 abuf->written = written;
11709 return vpc;
11710#undef FLD
11711}
11712
11713/* tno: tno$pack */
11714
11715static SEM_PC
11716SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11717{
11718#define FLD(f) abuf->fields.fmt_empty.f
11719 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11720 int UNUSED written = 0;
11721 IADDR UNUSED pc = abuf->addr;
11722 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11723
11724((void) 0); /*nop*/
11725
11726 return vpc;
11727#undef FLD
11728}
11729
11730/* teq: teq$pack $ICCi_2,$GRi,$GRj */
11731
11732static SEM_PC
11733SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11734{
11735#define FLD(f) abuf->fields.sfmt_teq.f
11736 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11737 int UNUSED written = 0;
11738 IADDR UNUSED pc = abuf->addr;
11739 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11740
11741if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11742{
11743; /*clobber*/
11744; /*clobber*/
11745; /*clobber*/
11746; /*clobber*/
11747if (NEBI (CPU (h_psr_esr), 0)) {
11748{
11749; /*clobber*/
11750; /*clobber*/
11751; /*clobber*/
11752; /*clobber*/
11753}
11754}
11755frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11756}
11757}
11758
11759 abuf->written = written;
11760 return vpc;
11761#undef FLD
11762}
11763
11764/* tne: tne$pack $ICCi_2,$GRi,$GRj */
11765
11766static SEM_PC
11767SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11768{
11769#define FLD(f) abuf->fields.sfmt_teq.f
11770 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11771 int UNUSED written = 0;
11772 IADDR UNUSED pc = abuf->addr;
11773 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11774
11775if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11776{
11777; /*clobber*/
11778; /*clobber*/
11779; /*clobber*/
11780; /*clobber*/
11781if (NEBI (CPU (h_psr_esr), 0)) {
11782{
11783; /*clobber*/
11784; /*clobber*/
11785; /*clobber*/
11786; /*clobber*/
11787}
11788}
11789frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11790}
11791}
11792
11793 abuf->written = written;
11794 return vpc;
11795#undef FLD
11796}
11797
11798/* tle: tle$pack $ICCi_2,$GRi,$GRj */
11799
11800static SEM_PC
11801SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11802{
11803#define FLD(f) abuf->fields.sfmt_teq.f
11804 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11805 int UNUSED written = 0;
11806 IADDR UNUSED pc = abuf->addr;
11807 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11808
11809if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
11810{
11811; /*clobber*/
11812; /*clobber*/
11813; /*clobber*/
11814; /*clobber*/
11815if (NEBI (CPU (h_psr_esr), 0)) {
11816{
11817; /*clobber*/
11818; /*clobber*/
11819; /*clobber*/
11820; /*clobber*/
11821}
11822}
11823frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11824}
11825}
11826
11827 abuf->written = written;
11828 return vpc;
11829#undef FLD
11830}
11831
11832/* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11833
11834static SEM_PC
11835SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11836{
11837#define FLD(f) abuf->fields.sfmt_teq.f
11838 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11839 int UNUSED written = 0;
11840 IADDR UNUSED pc = abuf->addr;
11841 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11842
11843if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
11844{
11845; /*clobber*/
11846; /*clobber*/
11847; /*clobber*/
11848; /*clobber*/
11849if (NEBI (CPU (h_psr_esr), 0)) {
11850{
11851; /*clobber*/
11852; /*clobber*/
11853; /*clobber*/
11854; /*clobber*/
11855}
11856}
11857frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11858}
11859}
11860
11861 abuf->written = written;
11862 return vpc;
11863#undef FLD
11864}
11865
11866/* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11867
11868static SEM_PC
11869SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11870{
11871#define FLD(f) abuf->fields.sfmt_teq.f
11872 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11873 int UNUSED written = 0;
11874 IADDR UNUSED pc = abuf->addr;
11875 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11876
11877if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
11878{
11879; /*clobber*/
11880; /*clobber*/
11881; /*clobber*/
11882; /*clobber*/
11883if (NEBI (CPU (h_psr_esr), 0)) {
11884{
11885; /*clobber*/
11886; /*clobber*/
11887; /*clobber*/
11888; /*clobber*/
11889}
11890}
11891frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11892}
11893}
11894
11895 abuf->written = written;
11896 return vpc;
11897#undef FLD
11898}
11899
11900/* tge: tge$pack $ICCi_2,$GRi,$GRj */
11901
11902static SEM_PC
11903SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11904{
11905#define FLD(f) abuf->fields.sfmt_teq.f
11906 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11907 int UNUSED written = 0;
11908 IADDR UNUSED pc = abuf->addr;
11909 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11910
11911if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
11912{
11913; /*clobber*/
11914; /*clobber*/
11915; /*clobber*/
11916; /*clobber*/
11917if (NEBI (CPU (h_psr_esr), 0)) {
11918{
11919; /*clobber*/
11920; /*clobber*/
11921; /*clobber*/
11922; /*clobber*/
11923}
11924}
11925frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11926}
11927}
11928
11929 abuf->written = written;
11930 return vpc;
11931#undef FLD
11932}
11933
11934/* tls: tls$pack $ICCi_2,$GRi,$GRj */
11935
11936static SEM_PC
11937SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11938{
11939#define FLD(f) abuf->fields.sfmt_teq.f
11940 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11941 int UNUSED written = 0;
11942 IADDR UNUSED pc = abuf->addr;
11943 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11944
11945if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11946{
11947; /*clobber*/
11948; /*clobber*/
11949; /*clobber*/
11950; /*clobber*/
11951if (NEBI (CPU (h_psr_esr), 0)) {
11952{
11953; /*clobber*/
11954; /*clobber*/
11955; /*clobber*/
11956; /*clobber*/
11957}
11958}
11959frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11960}
11961}
11962
11963 abuf->written = written;
11964 return vpc;
11965#undef FLD
11966}
11967
11968/* thi: thi$pack $ICCi_2,$GRi,$GRj */
11969
11970static SEM_PC
11971SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11972{
11973#define FLD(f) abuf->fields.sfmt_teq.f
11974 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11975 int UNUSED written = 0;
11976 IADDR UNUSED pc = abuf->addr;
11977 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11978
11979if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
11980{
11981; /*clobber*/
11982; /*clobber*/
11983; /*clobber*/
11984; /*clobber*/
11985if (NEBI (CPU (h_psr_esr), 0)) {
11986{
11987; /*clobber*/
11988; /*clobber*/
11989; /*clobber*/
11990; /*clobber*/
11991}
11992}
11993frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11994}
11995}
11996
11997 abuf->written = written;
11998 return vpc;
11999#undef FLD
12000}
12001
12002/* tc: tc$pack $ICCi_2,$GRi,$GRj */
12003
12004static SEM_PC
12005SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12006{
12007#define FLD(f) abuf->fields.sfmt_teq.f
12008 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12009 int UNUSED written = 0;
12010 IADDR UNUSED pc = abuf->addr;
12011 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12012
12013if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12014{
12015; /*clobber*/
12016; /*clobber*/
12017; /*clobber*/
12018; /*clobber*/
12019if (NEBI (CPU (h_psr_esr), 0)) {
12020{
12021; /*clobber*/
12022; /*clobber*/
12023; /*clobber*/
12024; /*clobber*/
12025}
12026}
12027frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12028}
12029}
12030
12031 abuf->written = written;
12032 return vpc;
12033#undef FLD
12034}
12035
12036/* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
12037
12038static SEM_PC
12039SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12040{
12041#define FLD(f) abuf->fields.sfmt_teq.f
12042 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12043 int UNUSED written = 0;
12044 IADDR UNUSED pc = abuf->addr;
12045 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12046
12047if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12048{
12049; /*clobber*/
12050; /*clobber*/
12051; /*clobber*/
12052; /*clobber*/
12053if (NEBI (CPU (h_psr_esr), 0)) {
12054{
12055; /*clobber*/
12056; /*clobber*/
12057; /*clobber*/
12058; /*clobber*/
12059}
12060}
12061frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12062}
12063}
12064
12065 abuf->written = written;
12066 return vpc;
12067#undef FLD
12068}
12069
12070/* tn: tn$pack $ICCi_2,$GRi,$GRj */
12071
12072static SEM_PC
12073SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12074{
12075#define FLD(f) abuf->fields.sfmt_teq.f
12076 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12077 int UNUSED written = 0;
12078 IADDR UNUSED pc = abuf->addr;
12079 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12080
12081if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12082{
12083; /*clobber*/
12084; /*clobber*/
12085; /*clobber*/
12086; /*clobber*/
12087if (NEBI (CPU (h_psr_esr), 0)) {
12088{
12089; /*clobber*/
12090; /*clobber*/
12091; /*clobber*/
12092; /*clobber*/
12093}
12094}
12095frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12096}
12097}
12098
12099 abuf->written = written;
12100 return vpc;
12101#undef FLD
12102}
12103
12104/* tp: tp$pack $ICCi_2,$GRi,$GRj */
12105
12106static SEM_PC
12107SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12108{
12109#define FLD(f) abuf->fields.sfmt_teq.f
12110 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12111 int UNUSED written = 0;
12112 IADDR UNUSED pc = abuf->addr;
12113 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12114
12115if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
12116{
12117; /*clobber*/
12118; /*clobber*/
12119; /*clobber*/
12120; /*clobber*/
12121if (NEBI (CPU (h_psr_esr), 0)) {
12122{
12123; /*clobber*/
12124; /*clobber*/
12125; /*clobber*/
12126; /*clobber*/
12127}
12128}
12129frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12130}
12131}
12132
12133 abuf->written = written;
12134 return vpc;
12135#undef FLD
12136}
12137
12138/* tv: tv$pack $ICCi_2,$GRi,$GRj */
12139
12140static SEM_PC
12141SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12142{
12143#define FLD(f) abuf->fields.sfmt_teq.f
12144 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12145 int UNUSED written = 0;
12146 IADDR UNUSED pc = abuf->addr;
12147 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12148
12149if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12150{
12151; /*clobber*/
12152; /*clobber*/
12153; /*clobber*/
12154; /*clobber*/
12155if (NEBI (CPU (h_psr_esr), 0)) {
12156{
12157; /*clobber*/
12158; /*clobber*/
12159; /*clobber*/
12160; /*clobber*/
12161}
12162}
12163frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12164}
12165}
12166
12167 abuf->written = written;
12168 return vpc;
12169#undef FLD
12170}
12171
12172/* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12173
12174static SEM_PC
12175SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12176{
12177#define FLD(f) abuf->fields.sfmt_teq.f
12178 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12179 int UNUSED written = 0;
12180 IADDR UNUSED pc = abuf->addr;
12181 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12182
12183if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12184{
12185; /*clobber*/
12186; /*clobber*/
12187; /*clobber*/
12188; /*clobber*/
12189if (NEBI (CPU (h_psr_esr), 0)) {
12190{
12191; /*clobber*/
12192; /*clobber*/
12193; /*clobber*/
12194; /*clobber*/
12195}
12196}
12197frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12198}
12199}
12200
12201 abuf->written = written;
12202 return vpc;
12203#undef FLD
12204}
12205
12206/* ftra: ftra$pack $GRi,$GRj */
12207
12208static SEM_PC
12209SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12210{
12211#define FLD(f) abuf->fields.sfmt_ftne.f
12212 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12213 int UNUSED written = 0;
12214 IADDR UNUSED pc = abuf->addr;
12215 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12216
12217{
12218; /*clobber*/
12219; /*clobber*/
12220; /*clobber*/
12221; /*clobber*/
12222if (NEBI (CPU (h_psr_esr), 0)) {
12223{
12224; /*clobber*/
12225; /*clobber*/
12226; /*clobber*/
12227; /*clobber*/
12228}
12229}
12230frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12231}
12232
12233 abuf->written = written;
12234 return vpc;
12235#undef FLD
12236}
12237
12238/* ftno: ftno$pack */
12239
12240static SEM_PC
12241SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12242{
12243#define FLD(f) abuf->fields.fmt_empty.f
12244 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12245 int UNUSED written = 0;
12246 IADDR UNUSED pc = abuf->addr;
12247 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12248
12249((void) 0); /*nop*/
12250
12251 return vpc;
12252#undef FLD
12253}
12254
12255/* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12256
12257static SEM_PC
12258SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12259{
12260#define FLD(f) abuf->fields.sfmt_ftne.f
12261 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12262 int UNUSED written = 0;
12263 IADDR UNUSED pc = abuf->addr;
12264 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12265
12266if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
12267{
12268; /*clobber*/
12269; /*clobber*/
12270; /*clobber*/
12271; /*clobber*/
12272if (NEBI (CPU (h_psr_esr), 0)) {
12273{
12274; /*clobber*/
12275; /*clobber*/
12276; /*clobber*/
12277; /*clobber*/
12278}
12279}
12280frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12281}
12282}
12283
12284 abuf->written = written;
12285 return vpc;
12286#undef FLD
12287}
12288
12289/* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12290
12291static SEM_PC
12292SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12293{
12294#define FLD(f) abuf->fields.sfmt_ftne.f
12295 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12296 int UNUSED written = 0;
12297 IADDR UNUSED pc = abuf->addr;
12298 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12299
12300if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12301{
12302; /*clobber*/
12303; /*clobber*/
12304; /*clobber*/
12305; /*clobber*/
12306if (NEBI (CPU (h_psr_esr), 0)) {
12307{
12308; /*clobber*/
12309; /*clobber*/
12310; /*clobber*/
12311; /*clobber*/
12312}
12313}
12314frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12315}
12316}
12317
12318 abuf->written = written;
12319 return vpc;
12320#undef FLD
12321}
12322
12323/* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12324
12325static SEM_PC
12326SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12327{
12328#define FLD(f) abuf->fields.sfmt_ftne.f
12329 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12330 int UNUSED written = 0;
12331 IADDR UNUSED pc = abuf->addr;
12332 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12333
12334if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
12335{
12336; /*clobber*/
12337; /*clobber*/
12338; /*clobber*/
12339; /*clobber*/
12340if (NEBI (CPU (h_psr_esr), 0)) {
12341{
12342; /*clobber*/
12343; /*clobber*/
12344; /*clobber*/
12345; /*clobber*/
12346}
12347}
12348frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12349}
12350}
12351
12352 abuf->written = written;
12353 return vpc;
12354#undef FLD
12355}
12356
12357/* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12358
12359static SEM_PC
12360SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12361{
12362#define FLD(f) abuf->fields.sfmt_ftne.f
12363 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12364 int UNUSED written = 0;
12365 IADDR UNUSED pc = abuf->addr;
12366 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12367
12368if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12369{
12370; /*clobber*/
12371; /*clobber*/
12372; /*clobber*/
12373; /*clobber*/
12374if (NEBI (CPU (h_psr_esr), 0)) {
12375{
12376; /*clobber*/
12377; /*clobber*/
12378; /*clobber*/
12379; /*clobber*/
12380}
12381}
12382frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12383}
12384}
12385
12386 abuf->written = written;
12387 return vpc;
12388#undef FLD
12389}
12390
12391/* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12392
12393static SEM_PC
12394SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12395{
12396#define FLD(f) abuf->fields.sfmt_ftne.f
12397 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12398 int UNUSED written = 0;
12399 IADDR UNUSED pc = abuf->addr;
12400 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12401
12402if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12403{
12404; /*clobber*/
12405; /*clobber*/
12406; /*clobber*/
12407; /*clobber*/
12408if (NEBI (CPU (h_psr_esr), 0)) {
12409{
12410; /*clobber*/
12411; /*clobber*/
12412; /*clobber*/
12413; /*clobber*/
12414}
12415}
12416frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12417}
12418}
12419
12420 abuf->written = written;
12421 return vpc;
12422#undef FLD
12423}
12424
12425/* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12426
12427static SEM_PC
12428SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12429{
12430#define FLD(f) abuf->fields.sfmt_ftne.f
12431 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12432 int UNUSED written = 0;
12433 IADDR UNUSED pc = abuf->addr;
12434 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12435
12436if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
12437{
12438; /*clobber*/
12439; /*clobber*/
12440; /*clobber*/
12441; /*clobber*/
12442if (NEBI (CPU (h_psr_esr), 0)) {
12443{
12444; /*clobber*/
12445; /*clobber*/
12446; /*clobber*/
12447; /*clobber*/
12448}
12449}
12450frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12451}
12452}
12453
12454 abuf->written = written;
12455 return vpc;
12456#undef FLD
12457}
12458
12459/* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12460
12461static SEM_PC
12462SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12463{
12464#define FLD(f) abuf->fields.sfmt_ftne.f
12465 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12466 int UNUSED written = 0;
12467 IADDR UNUSED pc = abuf->addr;
12468 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12469
12470if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12471{
12472; /*clobber*/
12473; /*clobber*/
12474; /*clobber*/
12475; /*clobber*/
12476if (NEBI (CPU (h_psr_esr), 0)) {
12477{
12478; /*clobber*/
12479; /*clobber*/
12480; /*clobber*/
12481; /*clobber*/
12482}
12483}
12484frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12485}
12486}
12487
12488 abuf->written = written;
12489 return vpc;
12490#undef FLD
12491}
12492
12493/* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12494
12495static SEM_PC
12496SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12497{
12498#define FLD(f) abuf->fields.sfmt_ftne.f
12499 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12500 int UNUSED written = 0;
12501 IADDR UNUSED pc = abuf->addr;
12502 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12503
12504if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
12505{
12506; /*clobber*/
12507; /*clobber*/
12508; /*clobber*/
12509; /*clobber*/
12510if (NEBI (CPU (h_psr_esr), 0)) {
12511{
12512; /*clobber*/
12513; /*clobber*/
12514; /*clobber*/
12515; /*clobber*/
12516}
12517}
12518frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12519}
12520}
12521
12522 abuf->written = written;
12523 return vpc;
12524#undef FLD
12525}
12526
12527/* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12528
12529static SEM_PC
12530SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12531{
12532#define FLD(f) abuf->fields.sfmt_ftne.f
12533 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12534 int UNUSED written = 0;
12535 IADDR UNUSED pc = abuf->addr;
12536 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12537
12538if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12539{
12540; /*clobber*/
12541; /*clobber*/
12542; /*clobber*/
12543; /*clobber*/
12544if (NEBI (CPU (h_psr_esr), 0)) {
12545{
12546; /*clobber*/
12547; /*clobber*/
12548; /*clobber*/
12549; /*clobber*/
12550}
12551}
12552frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12553}
12554}
12555
12556 abuf->written = written;
12557 return vpc;
12558#undef FLD
12559}
12560
12561/* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12562
12563static SEM_PC
12564SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12565{
12566#define FLD(f) abuf->fields.sfmt_ftne.f
12567 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12568 int UNUSED written = 0;
12569 IADDR UNUSED pc = abuf->addr;
12570 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12571
12572if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
12573{
12574; /*clobber*/
12575; /*clobber*/
12576; /*clobber*/
12577; /*clobber*/
12578if (NEBI (CPU (h_psr_esr), 0)) {
12579{
12580; /*clobber*/
12581; /*clobber*/
12582; /*clobber*/
12583; /*clobber*/
12584}
12585}
12586frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12587}
12588}
12589
12590 abuf->written = written;
12591 return vpc;
12592#undef FLD
12593}
12594
12595/* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12596
12597static SEM_PC
12598SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12599{
12600#define FLD(f) abuf->fields.sfmt_ftne.f
12601 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12602 int UNUSED written = 0;
12603 IADDR UNUSED pc = abuf->addr;
12604 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12605
12606if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12607{
12608; /*clobber*/
12609; /*clobber*/
12610; /*clobber*/
12611; /*clobber*/
12612if (NEBI (CPU (h_psr_esr), 0)) {
12613{
12614; /*clobber*/
12615; /*clobber*/
12616; /*clobber*/
12617; /*clobber*/
12618}
12619}
12620frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12621}
12622}
12623
12624 abuf->written = written;
12625 return vpc;
12626#undef FLD
12627}
12628
12629/* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12630
12631static SEM_PC
12632SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12633{
12634#define FLD(f) abuf->fields.sfmt_ftne.f
12635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12636 int UNUSED written = 0;
12637 IADDR UNUSED pc = abuf->addr;
12638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12639
12640if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
12641{
12642; /*clobber*/
12643; /*clobber*/
12644; /*clobber*/
12645; /*clobber*/
12646if (NEBI (CPU (h_psr_esr), 0)) {
12647{
12648; /*clobber*/
12649; /*clobber*/
12650; /*clobber*/
12651; /*clobber*/
12652}
12653}
12654frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12655}
12656}
12657
12658 abuf->written = written;
12659 return vpc;
12660#undef FLD
12661}
12662
12663/* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12664
12665static SEM_PC
12666SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12667{
12668#define FLD(f) abuf->fields.sfmt_ftne.f
12669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12670 int UNUSED written = 0;
12671 IADDR UNUSED pc = abuf->addr;
12672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12673
12674if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12675{
12676; /*clobber*/
12677; /*clobber*/
12678; /*clobber*/
12679; /*clobber*/
12680if (NEBI (CPU (h_psr_esr), 0)) {
12681{
12682; /*clobber*/
12683; /*clobber*/
12684; /*clobber*/
12685; /*clobber*/
12686}
12687}
12688frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12689}
12690}
12691
12692 abuf->written = written;
12693 return vpc;
12694#undef FLD
12695}
12696
12697/* fto: fto$pack $FCCi_2,$GRi,$GRj */
12698
12699static SEM_PC
12700SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12701{
12702#define FLD(f) abuf->fields.sfmt_ftne.f
12703 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12704 int UNUSED written = 0;
12705 IADDR UNUSED pc = abuf->addr;
12706 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12707
12708if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
12709{
12710; /*clobber*/
12711; /*clobber*/
12712; /*clobber*/
12713; /*clobber*/
12714if (NEBI (CPU (h_psr_esr), 0)) {
12715{
12716; /*clobber*/
12717; /*clobber*/
12718; /*clobber*/
12719; /*clobber*/
12720}
12721}
12722frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12723}
12724}
12725
12726 abuf->written = written;
12727 return vpc;
12728#undef FLD
12729}
12730
12731/* tira: tira$pack $GRi,$s12 */
12732
12733static SEM_PC
12734SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12735{
12736#define FLD(f) abuf->fields.sfmt_ftine.f
12737 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12738 int UNUSED written = 0;
12739 IADDR UNUSED pc = abuf->addr;
12740 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12741
12742{
12743; /*clobber*/
12744; /*clobber*/
12745; /*clobber*/
12746; /*clobber*/
12747if (NEBI (CPU (h_psr_esr), 0)) {
12748{
12749; /*clobber*/
12750; /*clobber*/
12751; /*clobber*/
12752; /*clobber*/
12753}
12754}
12755frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12756}
12757
12758 abuf->written = written;
12759 return vpc;
12760#undef FLD
12761}
12762
12763/* tino: tino$pack */
12764
12765static SEM_PC
12766SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12767{
12768#define FLD(f) abuf->fields.fmt_empty.f
12769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12770 int UNUSED written = 0;
12771 IADDR UNUSED pc = abuf->addr;
12772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12773
12774((void) 0); /*nop*/
12775
12776 return vpc;
12777#undef FLD
12778}
12779
12780/* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12781
12782static SEM_PC
12783SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12784{
12785#define FLD(f) abuf->fields.sfmt_tieq.f
12786 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12787 int UNUSED written = 0;
12788 IADDR UNUSED pc = abuf->addr;
12789 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12790
12791if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12792{
12793; /*clobber*/
12794; /*clobber*/
12795; /*clobber*/
12796; /*clobber*/
12797if (NEBI (CPU (h_psr_esr), 0)) {
12798{
12799; /*clobber*/
12800; /*clobber*/
12801; /*clobber*/
12802; /*clobber*/
12803}
12804}
12805frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12806}
12807}
12808
12809 abuf->written = written;
12810 return vpc;
12811#undef FLD
12812}
12813
12814/* tine: tine$pack $ICCi_2,$GRi,$s12 */
12815
12816static SEM_PC
12817SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12818{
12819#define FLD(f) abuf->fields.sfmt_tieq.f
12820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12821 int UNUSED written = 0;
12822 IADDR UNUSED pc = abuf->addr;
12823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12824
12825if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12826{
12827; /*clobber*/
12828; /*clobber*/
12829; /*clobber*/
12830; /*clobber*/
12831if (NEBI (CPU (h_psr_esr), 0)) {
12832{
12833; /*clobber*/
12834; /*clobber*/
12835; /*clobber*/
12836; /*clobber*/
12837}
12838}
12839frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12840}
12841}
12842
12843 abuf->written = written;
12844 return vpc;
12845#undef FLD
12846}
12847
12848/* tile: tile$pack $ICCi_2,$GRi,$s12 */
12849
12850static SEM_PC
12851SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12852{
12853#define FLD(f) abuf->fields.sfmt_tieq.f
12854 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12855 int UNUSED written = 0;
12856 IADDR UNUSED pc = abuf->addr;
12857 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12858
12859if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
12860{
12861; /*clobber*/
12862; /*clobber*/
12863; /*clobber*/
12864; /*clobber*/
12865if (NEBI (CPU (h_psr_esr), 0)) {
12866{
12867; /*clobber*/
12868; /*clobber*/
12869; /*clobber*/
12870; /*clobber*/
12871}
12872}
12873frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12874}
12875}
12876
12877 abuf->written = written;
12878 return vpc;
12879#undef FLD
12880}
12881
12882/* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12883
12884static SEM_PC
12885SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12886{
12887#define FLD(f) abuf->fields.sfmt_tieq.f
12888 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12889 int UNUSED written = 0;
12890 IADDR UNUSED pc = abuf->addr;
12891 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12892
12893if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))))) {
12894{
12895; /*clobber*/
12896; /*clobber*/
12897; /*clobber*/
12898; /*clobber*/
12899if (NEBI (CPU (h_psr_esr), 0)) {
12900{
12901; /*clobber*/
12902; /*clobber*/
12903; /*clobber*/
12904; /*clobber*/
12905}
12906}
12907frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12908}
12909}
12910
12911 abuf->written = written;
12912 return vpc;
12913#undef FLD
12914}
12915
12916/* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12917
12918static SEM_PC
12919SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12920{
12921#define FLD(f) abuf->fields.sfmt_tieq.f
12922 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12923 int UNUSED written = 0;
12924 IADDR UNUSED pc = abuf->addr;
12925 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12926
12927if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12928{
12929; /*clobber*/
12930; /*clobber*/
12931; /*clobber*/
12932; /*clobber*/
12933if (NEBI (CPU (h_psr_esr), 0)) {
12934{
12935; /*clobber*/
12936; /*clobber*/
12937; /*clobber*/
12938; /*clobber*/
12939}
12940}
12941frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12942}
12943}
12944
12945 abuf->written = written;
12946 return vpc;
12947#undef FLD
12948}
12949
12950/* tige: tige$pack $ICCi_2,$GRi,$s12 */
12951
12952static SEM_PC
12953SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12954{
12955#define FLD(f) abuf->fields.sfmt_tieq.f
12956 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12957 int UNUSED written = 0;
12958 IADDR UNUSED pc = abuf->addr;
12959 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12960
12961if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))))) {
12962{
12963; /*clobber*/
12964; /*clobber*/
12965; /*clobber*/
12966; /*clobber*/
12967if (NEBI (CPU (h_psr_esr), 0)) {
12968{
12969; /*clobber*/
12970; /*clobber*/
12971; /*clobber*/
12972; /*clobber*/
12973}
12974}
12975frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12976}
12977}
12978
12979 abuf->written = written;
12980 return vpc;
12981#undef FLD
12982}
12983
12984/* tils: tils$pack $ICCi_2,$GRi,$s12 */
12985
12986static SEM_PC
12987SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12988{
12989#define FLD(f) abuf->fields.sfmt_tieq.f
12990 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12991 int UNUSED written = 0;
12992 IADDR UNUSED pc = abuf->addr;
12993 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12994
12995if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12996{
12997; /*clobber*/
12998; /*clobber*/
12999; /*clobber*/
13000; /*clobber*/
13001if (NEBI (CPU (h_psr_esr), 0)) {
13002{
13003; /*clobber*/
13004; /*clobber*/
13005; /*clobber*/
13006; /*clobber*/
13007}
13008}
13009frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13010}
13011}
13012
13013 abuf->written = written;
13014 return vpc;
13015#undef FLD
13016}
13017
13018/* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
13019
13020static SEM_PC
13021SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13022{
13023#define FLD(f) abuf->fields.sfmt_tieq.f
13024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13025 int UNUSED written = 0;
13026 IADDR UNUSED pc = abuf->addr;
13027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13028
13029if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
13030{
13031; /*clobber*/
13032; /*clobber*/
13033; /*clobber*/
13034; /*clobber*/
13035if (NEBI (CPU (h_psr_esr), 0)) {
13036{
13037; /*clobber*/
13038; /*clobber*/
13039; /*clobber*/
13040; /*clobber*/
13041}
13042}
13043frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13044}
13045}
13046
13047 abuf->written = written;
13048 return vpc;
13049#undef FLD
13050}
13051
13052/* tic: tic$pack $ICCi_2,$GRi,$s12 */
13053
13054static SEM_PC
13055SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13056{
13057#define FLD(f) abuf->fields.sfmt_tieq.f
13058 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13059 int UNUSED written = 0;
13060 IADDR UNUSED pc = abuf->addr;
13061 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13062
13063if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
13064{
13065; /*clobber*/
13066; /*clobber*/
13067; /*clobber*/
13068; /*clobber*/
13069if (NEBI (CPU (h_psr_esr), 0)) {
13070{
13071; /*clobber*/
13072; /*clobber*/
13073; /*clobber*/
13074; /*clobber*/
13075}
13076}
13077frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13078}
13079}
13080
13081 abuf->written = written;
13082 return vpc;
13083#undef FLD
13084}
13085
13086/* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
13087
13088static SEM_PC
13089SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13090{
13091#define FLD(f) abuf->fields.sfmt_tieq.f
13092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13093 int UNUSED written = 0;
13094 IADDR UNUSED pc = abuf->addr;
13095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13096
13097if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
13098{
13099; /*clobber*/
13100; /*clobber*/
13101; /*clobber*/
13102; /*clobber*/
13103if (NEBI (CPU (h_psr_esr), 0)) {
13104{
13105; /*clobber*/
13106; /*clobber*/
13107; /*clobber*/
13108; /*clobber*/
13109}
13110}
13111frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13112}
13113}
13114
13115 abuf->written = written;
13116 return vpc;
13117#undef FLD
13118}
13119
13120/* tin: tin$pack $ICCi_2,$GRi,$s12 */
13121
13122static SEM_PC
13123SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13124{
13125#define FLD(f) abuf->fields.sfmt_tieq.f
13126 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13127 int UNUSED written = 0;
13128 IADDR UNUSED pc = abuf->addr;
13129 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13130
13131if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
13132{
13133; /*clobber*/
13134; /*clobber*/
13135; /*clobber*/
13136; /*clobber*/
13137if (NEBI (CPU (h_psr_esr), 0)) {
13138{
13139; /*clobber*/
13140; /*clobber*/
13141; /*clobber*/
13142; /*clobber*/
13143}
13144}
13145frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13146}
13147}
13148
13149 abuf->written = written;
13150 return vpc;
13151#undef FLD
13152}
13153
13154/* tip: tip$pack $ICCi_2,$GRi,$s12 */
13155
13156static SEM_PC
13157SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13158{
13159#define FLD(f) abuf->fields.sfmt_tieq.f
13160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13161 int UNUSED written = 0;
13162 IADDR UNUSED pc = abuf->addr;
13163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13164
13165if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
13166{
13167; /*clobber*/
13168; /*clobber*/
13169; /*clobber*/
13170; /*clobber*/
13171if (NEBI (CPU (h_psr_esr), 0)) {
13172{
13173; /*clobber*/
13174; /*clobber*/
13175; /*clobber*/
13176; /*clobber*/
13177}
13178}
13179frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13180}
13181}
13182
13183 abuf->written = written;
13184 return vpc;
13185#undef FLD
13186}
13187
13188/* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13189
13190static SEM_PC
13191SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13192{
13193#define FLD(f) abuf->fields.sfmt_tieq.f
13194 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13195 int UNUSED written = 0;
13196 IADDR UNUSED pc = abuf->addr;
13197 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13198
13199if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
13200{
13201; /*clobber*/
13202; /*clobber*/
13203; /*clobber*/
13204; /*clobber*/
13205if (NEBI (CPU (h_psr_esr), 0)) {
13206{
13207; /*clobber*/
13208; /*clobber*/
13209; /*clobber*/
13210; /*clobber*/
13211}
13212}
13213frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13214}
13215}
13216
13217 abuf->written = written;
13218 return vpc;
13219#undef FLD
13220}
13221
13222/* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13223
13224static SEM_PC
13225SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13226{
13227#define FLD(f) abuf->fields.sfmt_tieq.f
13228 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13229 int UNUSED written = 0;
13230 IADDR UNUSED pc = abuf->addr;
13231 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13232
13233if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13234{
13235; /*clobber*/
13236; /*clobber*/
13237; /*clobber*/
13238; /*clobber*/
13239if (NEBI (CPU (h_psr_esr), 0)) {
13240{
13241; /*clobber*/
13242; /*clobber*/
13243; /*clobber*/
13244; /*clobber*/
13245}
13246}
13247frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13248}
13249}
13250
13251 abuf->written = written;
13252 return vpc;
13253#undef FLD
13254}
13255
13256/* ftira: ftira$pack $GRi,$s12 */
13257
13258static SEM_PC
13259SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13260{
13261#define FLD(f) abuf->fields.sfmt_ftine.f
13262 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13263 int UNUSED written = 0;
13264 IADDR UNUSED pc = abuf->addr;
13265 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13266
13267{
13268; /*clobber*/
13269; /*clobber*/
13270; /*clobber*/
13271; /*clobber*/
13272if (NEBI (CPU (h_psr_esr), 0)) {
13273{
13274; /*clobber*/
13275; /*clobber*/
13276; /*clobber*/
13277; /*clobber*/
13278}
13279}
13280frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13281}
13282
13283 abuf->written = written;
13284 return vpc;
13285#undef FLD
13286}
13287
13288/* ftino: ftino$pack */
13289
13290static SEM_PC
13291SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13292{
13293#define FLD(f) abuf->fields.fmt_empty.f
13294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13295 int UNUSED written = 0;
13296 IADDR UNUSED pc = abuf->addr;
13297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13298
13299((void) 0); /*nop*/
13300
13301 return vpc;
13302#undef FLD
13303}
13304
13305/* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13306
13307static SEM_PC
13308SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13309{
13310#define FLD(f) abuf->fields.sfmt_ftine.f
13311 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13312 int UNUSED written = 0;
13313 IADDR UNUSED pc = abuf->addr;
13314 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13315
13316if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
13317{
13318; /*clobber*/
13319; /*clobber*/
13320; /*clobber*/
13321; /*clobber*/
13322if (NEBI (CPU (h_psr_esr), 0)) {
13323{
13324; /*clobber*/
13325; /*clobber*/
13326; /*clobber*/
13327; /*clobber*/
13328}
13329}
13330frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13331}
13332}
13333
13334 abuf->written = written;
13335 return vpc;
13336#undef FLD
13337}
13338
13339/* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13340
13341static SEM_PC
13342SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13343{
13344#define FLD(f) abuf->fields.sfmt_ftine.f
13345 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13346 int UNUSED written = 0;
13347 IADDR UNUSED pc = abuf->addr;
13348 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13349
13350if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13351{
13352; /*clobber*/
13353; /*clobber*/
13354; /*clobber*/
13355; /*clobber*/
13356if (NEBI (CPU (h_psr_esr), 0)) {
13357{
13358; /*clobber*/
13359; /*clobber*/
13360; /*clobber*/
13361; /*clobber*/
13362}
13363}
13364frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13365}
13366}
13367
13368 abuf->written = written;
13369 return vpc;
13370#undef FLD
13371}
13372
13373/* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13374
13375static SEM_PC
13376SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13377{
13378#define FLD(f) abuf->fields.sfmt_ftine.f
13379 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13380 int UNUSED written = 0;
13381 IADDR UNUSED pc = abuf->addr;
13382 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13383
13384if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
13385{
13386; /*clobber*/
13387; /*clobber*/
13388; /*clobber*/
13389; /*clobber*/
13390if (NEBI (CPU (h_psr_esr), 0)) {
13391{
13392; /*clobber*/
13393; /*clobber*/
13394; /*clobber*/
13395; /*clobber*/
13396}
13397}
13398frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13399}
13400}
13401
13402 abuf->written = written;
13403 return vpc;
13404#undef FLD
13405}
13406
13407/* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13408
13409static SEM_PC
13410SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13411{
13412#define FLD(f) abuf->fields.sfmt_ftine.f
13413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13414 int UNUSED written = 0;
13415 IADDR UNUSED pc = abuf->addr;
13416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13417
13418if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13419{
13420; /*clobber*/
13421; /*clobber*/
13422; /*clobber*/
13423; /*clobber*/
13424if (NEBI (CPU (h_psr_esr), 0)) {
13425{
13426; /*clobber*/
13427; /*clobber*/
13428; /*clobber*/
13429; /*clobber*/
13430}
13431}
13432frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13433}
13434}
13435
13436 abuf->written = written;
13437 return vpc;
13438#undef FLD
13439}
13440
13441/* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13442
13443static SEM_PC
13444SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13445{
13446#define FLD(f) abuf->fields.sfmt_ftine.f
13447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13448 int UNUSED written = 0;
13449 IADDR UNUSED pc = abuf->addr;
13450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13451
13452if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13453{
13454; /*clobber*/
13455; /*clobber*/
13456; /*clobber*/
13457; /*clobber*/
13458if (NEBI (CPU (h_psr_esr), 0)) {
13459{
13460; /*clobber*/
13461; /*clobber*/
13462; /*clobber*/
13463; /*clobber*/
13464}
13465}
13466frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13467}
13468}
13469
13470 abuf->written = written;
13471 return vpc;
13472#undef FLD
13473}
13474
13475/* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13476
13477static SEM_PC
13478SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13479{
13480#define FLD(f) abuf->fields.sfmt_ftine.f
13481 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13482 int UNUSED written = 0;
13483 IADDR UNUSED pc = abuf->addr;
13484 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13485
13486if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)))) {
13487{
13488; /*clobber*/
13489; /*clobber*/
13490; /*clobber*/
13491; /*clobber*/
13492if (NEBI (CPU (h_psr_esr), 0)) {
13493{
13494; /*clobber*/
13495; /*clobber*/
13496; /*clobber*/
13497; /*clobber*/
13498}
13499}
13500frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13501}
13502}
13503
13504 abuf->written = written;
13505 return vpc;
13506#undef FLD
13507}
13508
13509/* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13510
13511static SEM_PC
13512SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13513{
13514#define FLD(f) abuf->fields.sfmt_ftine.f
13515 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13516 int UNUSED written = 0;
13517 IADDR UNUSED pc = abuf->addr;
13518 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13519
13520if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13521{
13522; /*clobber*/
13523; /*clobber*/
13524; /*clobber*/
13525; /*clobber*/
13526if (NEBI (CPU (h_psr_esr), 0)) {
13527{
13528; /*clobber*/
13529; /*clobber*/
13530; /*clobber*/
13531; /*clobber*/
13532}
13533}
13534frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13535}
13536}
13537
13538 abuf->written = written;
13539 return vpc;
13540#undef FLD
13541}
13542
13543/* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13544
13545static SEM_PC
13546SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13547{
13548#define FLD(f) abuf->fields.sfmt_ftine.f
13549 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13550 int UNUSED written = 0;
13551 IADDR UNUSED pc = abuf->addr;
13552 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13553
13554if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
13555{
13556; /*clobber*/
13557; /*clobber*/
13558; /*clobber*/
13559; /*clobber*/
13560if (NEBI (CPU (h_psr_esr), 0)) {
13561{
13562; /*clobber*/
13563; /*clobber*/
13564; /*clobber*/
13565; /*clobber*/
13566}
13567}
13568frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13569}
13570}
13571
13572 abuf->written = written;
13573 return vpc;
13574#undef FLD
13575}
13576
13577/* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13578
13579static SEM_PC
13580SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13581{
13582#define FLD(f) abuf->fields.sfmt_ftine.f
13583 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13584 int UNUSED written = 0;
13585 IADDR UNUSED pc = abuf->addr;
13586 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13587
13588if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13589{
13590; /*clobber*/
13591; /*clobber*/
13592; /*clobber*/
13593; /*clobber*/
13594if (NEBI (CPU (h_psr_esr), 0)) {
13595{
13596; /*clobber*/
13597; /*clobber*/
13598; /*clobber*/
13599; /*clobber*/
13600}
13601}
13602frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13603}
13604}
13605
13606 abuf->written = written;
13607 return vpc;
13608#undef FLD
13609}
13610
13611/* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13612
13613static SEM_PC
13614SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13615{
13616#define FLD(f) abuf->fields.sfmt_ftine.f
13617 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13618 int UNUSED written = 0;
13619 IADDR UNUSED pc = abuf->addr;
13620 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13621
13622if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)))) {
13623{
13624; /*clobber*/
13625; /*clobber*/
13626; /*clobber*/
13627; /*clobber*/
13628if (NEBI (CPU (h_psr_esr), 0)) {
13629{
13630; /*clobber*/
13631; /*clobber*/
13632; /*clobber*/
13633; /*clobber*/
13634}
13635}
13636frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13637}
13638}
13639
13640 abuf->written = written;
13641 return vpc;
13642#undef FLD
13643}
13644
13645/* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13646
13647static SEM_PC
13648SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13649{
13650#define FLD(f) abuf->fields.sfmt_ftine.f
13651 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13652 int UNUSED written = 0;
13653 IADDR UNUSED pc = abuf->addr;
13654 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13655
13656if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13657{
13658; /*clobber*/
13659; /*clobber*/
13660; /*clobber*/
13661; /*clobber*/
13662if (NEBI (CPU (h_psr_esr), 0)) {
13663{
13664; /*clobber*/
13665; /*clobber*/
13666; /*clobber*/
13667; /*clobber*/
13668}
13669}
13670frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13671}
13672}
13673
13674 abuf->written = written;
13675 return vpc;
13676#undef FLD
13677}
13678
13679/* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13680
13681static SEM_PC
13682SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13683{
13684#define FLD(f) abuf->fields.sfmt_ftine.f
13685 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13686 int UNUSED written = 0;
13687 IADDR UNUSED pc = abuf->addr;
13688 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13689
13690if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))))) {
13691{
13692; /*clobber*/
13693; /*clobber*/
13694; /*clobber*/
13695; /*clobber*/
13696if (NEBI (CPU (h_psr_esr), 0)) {
13697{
13698; /*clobber*/
13699; /*clobber*/
13700; /*clobber*/
13701; /*clobber*/
13702}
13703}
13704frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13705}
13706}
13707
13708 abuf->written = written;
13709 return vpc;
13710#undef FLD
13711}
13712
13713/* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13714
13715static SEM_PC
13716SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13717{
13718#define FLD(f) abuf->fields.sfmt_ftine.f
13719 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13720 int UNUSED written = 0;
13721 IADDR UNUSED pc = abuf->addr;
13722 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13723
13724if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13725{
13726; /*clobber*/
13727; /*clobber*/
13728; /*clobber*/
13729; /*clobber*/
13730if (NEBI (CPU (h_psr_esr), 0)) {
13731{
13732; /*clobber*/
13733; /*clobber*/
13734; /*clobber*/
13735; /*clobber*/
13736}
13737}
13738frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13739}
13740}
13741
13742 abuf->written = written;
13743 return vpc;
13744#undef FLD
13745}
13746
13747/* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13748
13749static SEM_PC
13750SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13751{
13752#define FLD(f) abuf->fields.sfmt_ftine.f
13753 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13754 int UNUSED written = 0;
13755 IADDR UNUSED pc = abuf->addr;
13756 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13757
13758if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))))) {
13759{
13760; /*clobber*/
13761; /*clobber*/
13762; /*clobber*/
13763; /*clobber*/
13764if (NEBI (CPU (h_psr_esr), 0)) {
13765{
13766; /*clobber*/
13767; /*clobber*/
13768; /*clobber*/
13769; /*clobber*/
13770}
13771}
13772frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13773}
13774}
13775
13776 abuf->written = written;
13777 return vpc;
13778#undef FLD
13779}
13780
13781/* break: break$pack */
13782
13783static SEM_PC
13784SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13785{
13786#define FLD(f) abuf->fields.sfmt_break.f
13787 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13788 int UNUSED written = 0;
13789 IADDR UNUSED pc = abuf->addr;
13790 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13791
13792{
13793; /*clobber*/
13794; /*clobber*/
13795; /*clobber*/
13796; /*clobber*/
13797; /*clobber*/
13798; /*clobber*/
13799frv_break (current_cpu);
13800}
13801
13802 return vpc;
13803#undef FLD
13804}
13805
13806/* mtrap: mtrap$pack */
13807
13808static SEM_PC
13809SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13810{
13811#define FLD(f) abuf->fields.fmt_empty.f
13812 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13813 int UNUSED written = 0;
13814 IADDR UNUSED pc = abuf->addr;
13815 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13816
13817frv_mtrap (current_cpu);
13818
13819 return vpc;
13820#undef FLD
13821}
13822
13823/* andcr: andcr$pack $CRi,$CRj,$CRk */
13824
13825static SEM_PC
13826SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13827{
13828#define FLD(f) abuf->fields.sfmt_andcr.f
13829 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13830 int UNUSED written = 0;
13831 IADDR UNUSED pc = abuf->addr;
13832 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13833
13834 {
13835 UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13836 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13837 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13838 }
13839
13840 return vpc;
13841#undef FLD
13842}
13843
13844/* orcr: orcr$pack $CRi,$CRj,$CRk */
13845
13846static SEM_PC
13847SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13848{
13849#define FLD(f) abuf->fields.sfmt_andcr.f
13850 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13851 int UNUSED written = 0;
13852 IADDR UNUSED pc = abuf->addr;
13853 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13854
13855 {
13856 UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13857 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13858 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13859 }
13860
13861 return vpc;
13862#undef FLD
13863}
13864
13865/* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13866
13867static SEM_PC
13868SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13869{
13870#define FLD(f) abuf->fields.sfmt_andcr.f
13871 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13872 int UNUSED written = 0;
13873 IADDR UNUSED pc = abuf->addr;
13874 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13875
13876 {
13877 UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13878 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13879 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13880 }
13881
13882 return vpc;
13883#undef FLD
13884}
13885
13886/* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13887
13888static SEM_PC
13889SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13890{
13891#define FLD(f) abuf->fields.sfmt_andcr.f
13892 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13893 int UNUSED written = 0;
13894 IADDR UNUSED pc = abuf->addr;
13895 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13896
13897 {
13898 UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13899 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13900 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13901 }
13902
13903 return vpc;
13904#undef FLD
13905}
13906
13907/* norcr: norcr$pack $CRi,$CRj,$CRk */
13908
13909static SEM_PC
13910SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13911{
13912#define FLD(f) abuf->fields.sfmt_andcr.f
13913 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13914 int UNUSED written = 0;
13915 IADDR UNUSED pc = abuf->addr;
13916 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13917
13918 {
13919 UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13920 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13921 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13922 }
13923
13924 return vpc;
13925#undef FLD
13926}
13927
13928/* andncr: andncr$pack $CRi,$CRj,$CRk */
13929
13930static SEM_PC
13931SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13932{
13933#define FLD(f) abuf->fields.sfmt_andcr.f
13934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13935 int UNUSED written = 0;
13936 IADDR UNUSED pc = abuf->addr;
13937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13938
13939 {
13940 UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13941 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13942 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13943 }
13944
13945 return vpc;
13946#undef FLD
13947}
13948
13949/* orncr: orncr$pack $CRi,$CRj,$CRk */
13950
13951static SEM_PC
13952SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13953{
13954#define FLD(f) abuf->fields.sfmt_andcr.f
13955 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13956 int UNUSED written = 0;
13957 IADDR UNUSED pc = abuf->addr;
13958 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13959
13960 {
13961 UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13962 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13963 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13964 }
13965
13966 return vpc;
13967#undef FLD
13968}
13969
13970/* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13971
13972static SEM_PC
13973SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13974{
13975#define FLD(f) abuf->fields.sfmt_andcr.f
13976 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13977 int UNUSED written = 0;
13978 IADDR UNUSED pc = abuf->addr;
13979 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13980
13981 {
13982 UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13983 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13984 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13985 }
13986
13987 return vpc;
13988#undef FLD
13989}
13990
13991/* norncr: norncr$pack $CRi,$CRj,$CRk */
13992
13993static SEM_PC
13994SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13995{
13996#define FLD(f) abuf->fields.sfmt_andcr.f
13997 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13998 int UNUSED written = 0;
13999 IADDR UNUSED pc = abuf->addr;
14000 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14001
14002 {
14003 UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
14004 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
14005 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14006 }
14007
14008 return vpc;
14009#undef FLD
14010}
14011
14012/* notcr: notcr$pack $CRj,$CRk */
14013
14014static SEM_PC
14015SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14016{
14017#define FLD(f) abuf->fields.sfmt_andcr.f
14018 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14019 int UNUSED written = 0;
14020 IADDR UNUSED pc = abuf->addr;
14021 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14022
14023 {
14024 UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
14025 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
14026 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14027 }
14028
14029 return vpc;
14030#undef FLD
14031}
14032
14033/* ckra: ckra$pack $CRj_int */
14034
14035static SEM_PC
14036SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14037{
14038#define FLD(f) abuf->fields.sfmt_cckeq.f
14039 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14040 int UNUSED written = 0;
14041 IADDR UNUSED pc = abuf->addr;
14042 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14043
14044 {
14045 UQI opval = 3;
14046 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14047 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14048 }
14049
14050 return vpc;
14051#undef FLD
14052}
14053
14054/* ckno: ckno$pack $CRj_int */
14055
14056static SEM_PC
14057SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14058{
14059#define FLD(f) abuf->fields.sfmt_cckeq.f
14060 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14061 int UNUSED written = 0;
14062 IADDR UNUSED pc = abuf->addr;
14063 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14064
14065 {
14066 UQI opval = 2;
14067 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14068 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14069 }
14070
14071 return vpc;
14072#undef FLD
14073}
14074
14075/* ckeq: ckeq$pack $ICCi_3,$CRj_int */
14076
14077static SEM_PC
14078SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14079{
14080#define FLD(f) abuf->fields.sfmt_cckeq.f
14081 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14082 int UNUSED written = 0;
14083 IADDR UNUSED pc = abuf->addr;
14084 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14085
14086if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14087 {
14088 UQI opval = 3;
14089 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14090 written |= (1 << 1);
14091 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14092 }
14093} else {
14094 {
14095 UQI opval = 2;
14096 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14097 written |= (1 << 1);
14098 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14099 }
14100}
14101
14102 abuf->written = written;
14103 return vpc;
14104#undef FLD
14105}
14106
14107/* ckne: ckne$pack $ICCi_3,$CRj_int */
14108
14109static SEM_PC
14110SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14111{
14112#define FLD(f) abuf->fields.sfmt_cckeq.f
14113 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14114 int UNUSED written = 0;
14115 IADDR UNUSED pc = abuf->addr;
14116 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14117
14118if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14119 {
14120 UQI opval = 3;
14121 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14122 written |= (1 << 1);
14123 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14124 }
14125} else {
14126 {
14127 UQI opval = 2;
14128 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14129 written |= (1 << 1);
14130 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14131 }
14132}
14133
14134 abuf->written = written;
14135 return vpc;
14136#undef FLD
14137}
14138
14139/* ckle: ckle$pack $ICCi_3,$CRj_int */
14140
14141static SEM_PC
14142SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14143{
14144#define FLD(f) abuf->fields.sfmt_cckeq.f
14145 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14146 int UNUSED written = 0;
14147 IADDR UNUSED pc = abuf->addr;
14148 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14149
14150if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))))) {
14151 {
14152 UQI opval = 3;
14153 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14154 written |= (1 << 1);
14155 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14156 }
14157} else {
14158 {
14159 UQI opval = 2;
14160 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14161 written |= (1 << 1);
14162 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14163 }
14164}
14165
14166 abuf->written = written;
14167 return vpc;
14168#undef FLD
14169}
14170
14171/* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14172
14173static SEM_PC
14174SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14175{
14176#define FLD(f) abuf->fields.sfmt_cckeq.f
14177 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14178 int UNUSED written = 0;
14179 IADDR UNUSED pc = abuf->addr;
14180 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14181
14182if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))))) {
14183 {
14184 UQI opval = 3;
14185 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14186 written |= (1 << 1);
14187 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14188 }
14189} else {
14190 {
14191 UQI opval = 2;
14192 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14193 written |= (1 << 1);
14194 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14195 }
14196}
14197
14198 abuf->written = written;
14199 return vpc;
14200#undef FLD
14201}
14202
14203/* cklt: cklt$pack $ICCi_3,$CRj_int */
14204
14205static SEM_PC
14206SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14207{
14208#define FLD(f) abuf->fields.sfmt_cckeq.f
14209 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14210 int UNUSED written = 0;
14211 IADDR UNUSED pc = abuf->addr;
14212 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14213
14214if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14215 {
14216 UQI opval = 3;
14217 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14218 written |= (1 << 1);
14219 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14220 }
14221} else {
14222 {
14223 UQI opval = 2;
14224 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14225 written |= (1 << 1);
14226 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14227 }
14228}
14229
14230 abuf->written = written;
14231 return vpc;
14232#undef FLD
14233}
14234
14235/* ckge: ckge$pack $ICCi_3,$CRj_int */
14236
14237static SEM_PC
14238SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14239{
14240#define FLD(f) abuf->fields.sfmt_cckeq.f
14241 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14242 int UNUSED written = 0;
14243 IADDR UNUSED pc = abuf->addr;
14244 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14245
14246if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))))) {
14247 {
14248 UQI opval = 3;
14249 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14250 written |= (1 << 1);
14251 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14252 }
14253} else {
14254 {
14255 UQI opval = 2;
14256 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14257 written |= (1 << 1);
14258 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14259 }
14260}
14261
14262 abuf->written = written;
14263 return vpc;
14264#undef FLD
14265}
14266
14267/* ckls: ckls$pack $ICCi_3,$CRj_int */
14268
14269static SEM_PC
14270SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14271{
14272#define FLD(f) abuf->fields.sfmt_cckeq.f
14273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14274 int UNUSED written = 0;
14275 IADDR UNUSED pc = abuf->addr;
14276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14277
14278if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14279 {
14280 UQI opval = 3;
14281 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14282 written |= (1 << 1);
14283 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14284 }
14285} else {
14286 {
14287 UQI opval = 2;
14288 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14289 written |= (1 << 1);
14290 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14291 }
14292}
14293
14294 abuf->written = written;
14295 return vpc;
14296#undef FLD
14297}
14298
14299/* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14300
14301static SEM_PC
14302SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14303{
14304#define FLD(f) abuf->fields.sfmt_cckeq.f
14305 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14306 int UNUSED written = 0;
14307 IADDR UNUSED pc = abuf->addr;
14308 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14309
14310if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
14311 {
14312 UQI opval = 3;
14313 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14314 written |= (1 << 1);
14315 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14316 }
14317} else {
14318 {
14319 UQI opval = 2;
14320 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14321 written |= (1 << 1);
14322 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14323 }
14324}
14325
14326 abuf->written = written;
14327 return vpc;
14328#undef FLD
14329}
14330
14331/* ckc: ckc$pack $ICCi_3,$CRj_int */
14332
14333static SEM_PC
14334SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14335{
14336#define FLD(f) abuf->fields.sfmt_cckeq.f
14337 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14338 int UNUSED written = 0;
14339 IADDR UNUSED pc = abuf->addr;
14340 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14341
14342if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14343 {
14344 UQI opval = 3;
14345 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14346 written |= (1 << 1);
14347 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14348 }
14349} else {
14350 {
14351 UQI opval = 2;
14352 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14353 written |= (1 << 1);
14354 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14355 }
14356}
14357
14358 abuf->written = written;
14359 return vpc;
14360#undef FLD
14361}
14362
14363/* cknc: cknc$pack $ICCi_3,$CRj_int */
14364
14365static SEM_PC
14366SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14367{
14368#define FLD(f) abuf->fields.sfmt_cckeq.f
14369 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14370 int UNUSED written = 0;
14371 IADDR UNUSED pc = abuf->addr;
14372 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14373
14374if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14375 {
14376 UQI opval = 3;
14377 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14378 written |= (1 << 1);
14379 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14380 }
14381} else {
14382 {
14383 UQI opval = 2;
14384 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14385 written |= (1 << 1);
14386 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14387 }
14388}
14389
14390 abuf->written = written;
14391 return vpc;
14392#undef FLD
14393}
14394
14395/* ckn: ckn$pack $ICCi_3,$CRj_int */
14396
14397static SEM_PC
14398SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14399{
14400#define FLD(f) abuf->fields.sfmt_cckeq.f
14401 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14402 int UNUSED written = 0;
14403 IADDR UNUSED pc = abuf->addr;
14404 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14405
14406if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14407 {
14408 UQI opval = 3;
14409 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14410 written |= (1 << 1);
14411 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14412 }
14413} else {
14414 {
14415 UQI opval = 2;
14416 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14417 written |= (1 << 1);
14418 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14419 }
14420}
14421
14422 abuf->written = written;
14423 return vpc;
14424#undef FLD
14425}
14426
14427/* ckp: ckp$pack $ICCi_3,$CRj_int */
14428
14429static SEM_PC
14430SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14431{
14432#define FLD(f) abuf->fields.sfmt_cckeq.f
14433 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14434 int UNUSED written = 0;
14435 IADDR UNUSED pc = abuf->addr;
14436 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14437
14438if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14439 {
14440 UQI opval = 3;
14441 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14442 written |= (1 << 1);
14443 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14444 }
14445} else {
14446 {
14447 UQI opval = 2;
14448 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14449 written |= (1 << 1);
14450 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14451 }
14452}
14453
14454 abuf->written = written;
14455 return vpc;
14456#undef FLD
14457}
14458
14459/* ckv: ckv$pack $ICCi_3,$CRj_int */
14460
14461static SEM_PC
14462SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14463{
14464#define FLD(f) abuf->fields.sfmt_cckeq.f
14465 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14466 int UNUSED written = 0;
14467 IADDR UNUSED pc = abuf->addr;
14468 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14469
14470if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14471 {
14472 UQI opval = 3;
14473 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14474 written |= (1 << 1);
14475 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14476 }
14477} else {
14478 {
14479 UQI opval = 2;
14480 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14481 written |= (1 << 1);
14482 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14483 }
14484}
14485
14486 abuf->written = written;
14487 return vpc;
14488#undef FLD
14489}
14490
14491/* cknv: cknv$pack $ICCi_3,$CRj_int */
14492
14493static SEM_PC
14494SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14495{
14496#define FLD(f) abuf->fields.sfmt_cckeq.f
14497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14498 int UNUSED written = 0;
14499 IADDR UNUSED pc = abuf->addr;
14500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14501
14502if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14503 {
14504 UQI opval = 3;
14505 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14506 written |= (1 << 1);
14507 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14508 }
14509} else {
14510 {
14511 UQI opval = 2;
14512 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14513 written |= (1 << 1);
14514 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14515 }
14516}
14517
14518 abuf->written = written;
14519 return vpc;
14520#undef FLD
14521}
14522
14523/* fckra: fckra$pack $CRj_float */
14524
14525static SEM_PC
14526SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14527{
14528#define FLD(f) abuf->fields.sfmt_cfckne.f
14529 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14530 int UNUSED written = 0;
14531 IADDR UNUSED pc = abuf->addr;
14532 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14533
14534 {
14535 UQI opval = 3;
14536 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14537 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14538 }
14539
14540 return vpc;
14541#undef FLD
14542}
14543
14544/* fckno: fckno$pack $CRj_float */
14545
14546static SEM_PC
14547SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14548{
14549#define FLD(f) abuf->fields.sfmt_cfckne.f
14550 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14551 int UNUSED written = 0;
14552 IADDR UNUSED pc = abuf->addr;
14553 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14554
14555 {
14556 UQI opval = 2;
14557 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14558 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14559 }
14560
14561 return vpc;
14562#undef FLD
14563}
14564
14565/* fckne: fckne$pack $FCCi_3,$CRj_float */
14566
14567static SEM_PC
14568SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14569{
14570#define FLD(f) abuf->fields.sfmt_cfckne.f
14571 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14572 int UNUSED written = 0;
14573 IADDR UNUSED pc = abuf->addr;
14574 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14575
14576if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
14577 {
14578 UQI opval = 3;
14579 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14580 written |= (1 << 1);
14581 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14582 }
14583} else {
14584 {
14585 UQI opval = 2;
14586 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14587 written |= (1 << 1);
14588 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14589 }
14590}
14591
14592 abuf->written = written;
14593 return vpc;
14594#undef FLD
14595}
14596
14597/* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14598
14599static SEM_PC
14600SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14601{
14602#define FLD(f) abuf->fields.sfmt_cfckne.f
14603 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14604 int UNUSED written = 0;
14605 IADDR UNUSED pc = abuf->addr;
14606 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14607
14608if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14609 {
14610 UQI opval = 3;
14611 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14612 written |= (1 << 1);
14613 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14614 }
14615} else {
14616 {
14617 UQI opval = 2;
14618 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14619 written |= (1 << 1);
14620 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14621 }
14622}
14623
14624 abuf->written = written;
14625 return vpc;
14626#undef FLD
14627}
14628
14629/* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14630
14631static SEM_PC
14632SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14633{
14634#define FLD(f) abuf->fields.sfmt_cfckne.f
14635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14636 int UNUSED written = 0;
14637 IADDR UNUSED pc = abuf->addr;
14638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14639
14640if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
14641 {
14642 UQI opval = 3;
14643 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14644 written |= (1 << 1);
14645 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14646 }
14647} else {
14648 {
14649 UQI opval = 2;
14650 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14651 written |= (1 << 1);
14652 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14653 }
14654}
14655
14656 abuf->written = written;
14657 return vpc;
14658#undef FLD
14659}
14660
14661/* fckue: fckue$pack $FCCi_3,$CRj_float */
14662
14663static SEM_PC
14664SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14665{
14666#define FLD(f) abuf->fields.sfmt_cfckne.f
14667 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14668 int UNUSED written = 0;
14669 IADDR UNUSED pc = abuf->addr;
14670 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14671
14672if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14673 {
14674 UQI opval = 3;
14675 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14676 written |= (1 << 1);
14677 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14678 }
14679} else {
14680 {
14681 UQI opval = 2;
14682 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14683 written |= (1 << 1);
14684 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14685 }
14686}
14687
14688 abuf->written = written;
14689 return vpc;
14690#undef FLD
14691}
14692
14693/* fckul: fckul$pack $FCCi_3,$CRj_float */
14694
14695static SEM_PC
14696SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14697{
14698#define FLD(f) abuf->fields.sfmt_cfckne.f
14699 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14700 int UNUSED written = 0;
14701 IADDR UNUSED pc = abuf->addr;
14702 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14703
14704if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14705 {
14706 UQI opval = 3;
14707 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14708 written |= (1 << 1);
14709 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14710 }
14711} else {
14712 {
14713 UQI opval = 2;
14714 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14715 written |= (1 << 1);
14716 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14717 }
14718}
14719
14720 abuf->written = written;
14721 return vpc;
14722#undef FLD
14723}
14724
14725/* fckge: fckge$pack $FCCi_3,$CRj_float */
14726
14727static SEM_PC
14728SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14729{
14730#define FLD(f) abuf->fields.sfmt_cfckne.f
14731 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14732 int UNUSED written = 0;
14733 IADDR UNUSED pc = abuf->addr;
14734 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14735
14736if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
14737 {
14738 UQI opval = 3;
14739 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14740 written |= (1 << 1);
14741 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14742 }
14743} else {
14744 {
14745 UQI opval = 2;
14746 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14747 written |= (1 << 1);
14748 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14749 }
14750}
14751
14752 abuf->written = written;
14753 return vpc;
14754#undef FLD
14755}
14756
14757/* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14758
14759static SEM_PC
14760SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14761{
14762#define FLD(f) abuf->fields.sfmt_cfckne.f
14763 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14764 int UNUSED written = 0;
14765 IADDR UNUSED pc = abuf->addr;
14766 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14767
14768if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14769 {
14770 UQI opval = 3;
14771 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14772 written |= (1 << 1);
14773 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14774 }
14775} else {
14776 {
14777 UQI opval = 2;
14778 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14779 written |= (1 << 1);
14780 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14781 }
14782}
14783
14784 abuf->written = written;
14785 return vpc;
14786#undef FLD
14787}
14788
14789/* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14790
14791static SEM_PC
14792SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14793{
14794#define FLD(f) abuf->fields.sfmt_cfckne.f
14795 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14796 int UNUSED written = 0;
14797 IADDR UNUSED pc = abuf->addr;
14798 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14799
14800if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
14801 {
14802 UQI opval = 3;
14803 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14804 written |= (1 << 1);
14805 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14806 }
14807} else {
14808 {
14809 UQI opval = 2;
14810 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14811 written |= (1 << 1);
14812 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14813 }
14814}
14815
14816 abuf->written = written;
14817 return vpc;
14818#undef FLD
14819}
14820
14821/* fckug: fckug$pack $FCCi_3,$CRj_float */
14822
14823static SEM_PC
14824SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14825{
14826#define FLD(f) abuf->fields.sfmt_cfckne.f
14827 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14828 int UNUSED written = 0;
14829 IADDR UNUSED pc = abuf->addr;
14830 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14831
14832if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14833 {
14834 UQI opval = 3;
14835 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14836 written |= (1 << 1);
14837 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14838 }
14839} else {
14840 {
14841 UQI opval = 2;
14842 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14843 written |= (1 << 1);
14844 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14845 }
14846}
14847
14848 abuf->written = written;
14849 return vpc;
14850#undef FLD
14851}
14852
14853/* fckle: fckle$pack $FCCi_3,$CRj_float */
14854
14855static SEM_PC
14856SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14857{
14858#define FLD(f) abuf->fields.sfmt_cfckne.f
14859 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14860 int UNUSED written = 0;
14861 IADDR UNUSED pc = abuf->addr;
14862 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14863
14864if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)))) {
14865 {
14866 UQI opval = 3;
14867 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14868 written |= (1 << 1);
14869 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14870 }
14871} else {
14872 {
14873 UQI opval = 2;
14874 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14875 written |= (1 << 1);
14876 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14877 }
14878}
14879
14880 abuf->written = written;
14881 return vpc;
14882#undef FLD
14883}
14884
14885/* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14886
14887static SEM_PC
14888SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14889{
14890#define FLD(f) abuf->fields.sfmt_cfckne.f
14891 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14892 int UNUSED written = 0;
14893 IADDR UNUSED pc = abuf->addr;
14894 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14895
14896if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14897 {
14898 UQI opval = 3;
14899 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14900 written |= (1 << 1);
14901 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14902 }
14903} else {
14904 {
14905 UQI opval = 2;
14906 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14907 written |= (1 << 1);
14908 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14909 }
14910}
14911
14912 abuf->written = written;
14913 return vpc;
14914#undef FLD
14915}
14916
14917/* fckule: fckule$pack $FCCi_3,$CRj_float */
14918
14919static SEM_PC
14920SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14921{
14922#define FLD(f) abuf->fields.sfmt_cfckne.f
14923 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14924 int UNUSED written = 0;
14925 IADDR UNUSED pc = abuf->addr;
14926 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14927
14928if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
14929 {
14930 UQI opval = 3;
14931 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14932 written |= (1 << 1);
14933 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14934 }
14935} else {
14936 {
14937 UQI opval = 2;
14938 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14939 written |= (1 << 1);
14940 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14941 }
14942}
14943
14944 abuf->written = written;
14945 return vpc;
14946#undef FLD
14947}
14948
14949/* fcku: fcku$pack $FCCi_3,$CRj_float */
14950
14951static SEM_PC
14952SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14953{
14954#define FLD(f) abuf->fields.sfmt_cfckne.f
14955 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14956 int UNUSED written = 0;
14957 IADDR UNUSED pc = abuf->addr;
14958 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14959
14960if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14961 {
14962 UQI opval = 3;
14963 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14964 written |= (1 << 1);
14965 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14966 }
14967} else {
14968 {
14969 UQI opval = 2;
14970 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14971 written |= (1 << 1);
14972 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14973 }
14974}
14975
14976 abuf->written = written;
14977 return vpc;
14978#undef FLD
14979}
14980
14981/* fcko: fcko$pack $FCCi_3,$CRj_float */
14982
14983static SEM_PC
14984SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14985{
14986#define FLD(f) abuf->fields.sfmt_cfckne.f
14987 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14988 int UNUSED written = 0;
14989 IADDR UNUSED pc = abuf->addr;
14990 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14991
14992if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))))) {
14993 {
14994 UQI opval = 3;
14995 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14996 written |= (1 << 1);
14997 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14998 }
14999} else {
15000 {
15001 UQI opval = 2;
15002 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15003 written |= (1 << 1);
15004 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15005 }
15006}
15007
15008 abuf->written = written;
15009 return vpc;
15010#undef FLD
15011}
15012
15013/* cckra: cckra$pack $CRj_int,$CCi,$cond */
15014
15015static SEM_PC
15016SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15017{
15018#define FLD(f) abuf->fields.sfmt_cckeq.f
15019 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15020 int UNUSED written = 0;
15021 IADDR UNUSED pc = abuf->addr;
15022 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15023
15024if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15025 {
15026 UQI opval = 3;
15027 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15028 written |= (1 << 2);
15029 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15030 }
15031} else {
15032 {
15033 UQI opval = 0;
15034 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15035 written |= (1 << 2);
15036 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15037 }
15038}
15039
15040 abuf->written = written;
15041 return vpc;
15042#undef FLD
15043}
15044
15045/* cckno: cckno$pack $CRj_int,$CCi,$cond */
15046
15047static SEM_PC
15048SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15049{
15050#define FLD(f) abuf->fields.sfmt_cckeq.f
15051 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15052 int UNUSED written = 0;
15053 IADDR UNUSED pc = abuf->addr;
15054 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15055
15056if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15057 {
15058 UQI opval = 2;
15059 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15060 written |= (1 << 2);
15061 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15062 }
15063} else {
15064 {
15065 UQI opval = 0;
15066 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15067 written |= (1 << 2);
15068 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15069 }
15070}
15071
15072 abuf->written = written;
15073 return vpc;
15074#undef FLD
15075}
15076
15077/* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
15078
15079static SEM_PC
15080SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15081{
15082#define FLD(f) abuf->fields.sfmt_cckeq.f
15083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15084 int UNUSED written = 0;
15085 IADDR UNUSED pc = abuf->addr;
15086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15087
15088if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15089if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
15090 {
15091 UQI opval = 3;
15092 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15093 written |= (1 << 3);
15094 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15095 }
15096} else {
15097 {
15098 UQI opval = 2;
15099 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15100 written |= (1 << 3);
15101 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15102 }
15103}
15104} else {
15105 {
15106 UQI opval = 0;
15107 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15108 written |= (1 << 3);
15109 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15110 }
15111}
15112
15113 abuf->written = written;
15114 return vpc;
15115#undef FLD
15116}
15117
15118/* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
15119
15120static SEM_PC
15121SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15122{
15123#define FLD(f) abuf->fields.sfmt_cckeq.f
15124 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15125 int UNUSED written = 0;
15126 IADDR UNUSED pc = abuf->addr;
15127 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15128
15129if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15130if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15131 {
15132 UQI opval = 3;
15133 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15134 written |= (1 << 3);
15135 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15136 }
15137} else {
15138 {
15139 UQI opval = 2;
15140 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15141 written |= (1 << 3);
15142 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15143 }
15144}
15145} else {
15146 {
15147 UQI opval = 0;
15148 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15149 written |= (1 << 3);
15150 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15151 }
15152}
15153
15154 abuf->written = written;
15155 return vpc;
15156#undef FLD
15157}
15158
15159/* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
15160
15161static SEM_PC
15162SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15163{
15164#define FLD(f) abuf->fields.sfmt_cckeq.f
15165 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15166 int UNUSED written = 0;
15167 IADDR UNUSED pc = abuf->addr;
15168 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15169
15170if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15171if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))))) {
15172 {
15173 UQI opval = 3;
15174 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15175 written |= (1 << 3);
15176 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15177 }
15178} else {
15179 {
15180 UQI opval = 2;
15181 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15182 written |= (1 << 3);
15183 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15184 }
15185}
15186} else {
15187 {
15188 UQI opval = 0;
15189 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15190 written |= (1 << 3);
15191 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15192 }
15193}
15194
15195 abuf->written = written;
15196 return vpc;
15197#undef FLD
15198}
15199
15200/* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15201
15202static SEM_PC
15203SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15204{
15205#define FLD(f) abuf->fields.sfmt_cckeq.f
15206 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15207 int UNUSED written = 0;
15208 IADDR UNUSED pc = abuf->addr;
15209 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15210
15211if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15212if (NOTBI (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)), XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))))) {
15213 {
15214 UQI opval = 3;
15215 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15216 written |= (1 << 3);
15217 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15218 }
15219} else {
15220 {
15221 UQI opval = 2;
15222 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15223 written |= (1 << 3);
15224 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15225 }
15226}
15227} else {
15228 {
15229 UQI opval = 0;
15230 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15231 written |= (1 << 3);
15232 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15233 }
15234}
15235
15236 abuf->written = written;
15237 return vpc;
15238#undef FLD
15239}
15240
15241/* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15242
15243static SEM_PC
15244SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15245{
15246#define FLD(f) abuf->fields.sfmt_cckeq.f
15247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15248 int UNUSED written = 0;
15249 IADDR UNUSED pc = abuf->addr;
15250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15251
15252if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15253if (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15254 {
15255 UQI opval = 3;
15256 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15257 written |= (1 << 3);
15258 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15259 }
15260} else {
15261 {
15262 UQI opval = 2;
15263 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15264 written |= (1 << 3);
15265 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15266 }
15267}
15268} else {
15269 {
15270 UQI opval = 0;
15271 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15272 written |= (1 << 3);
15273 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15274 }
15275}
15276
15277 abuf->written = written;
15278 return vpc;
15279#undef FLD
15280}
15281
15282/* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15283
15284static SEM_PC
15285SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15286{
15287#define FLD(f) abuf->fields.sfmt_cckeq.f
15288 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15289 int UNUSED written = 0;
15290 IADDR UNUSED pc = abuf->addr;
15291 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15292
15293if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15294if (NOTBI (XORBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))))) {
15295 {
15296 UQI opval = 3;
15297 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15298 written |= (1 << 3);
15299 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15300 }
15301} else {
15302 {
15303 UQI opval = 2;
15304 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15305 written |= (1 << 3);
15306 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15307 }
15308}
15309} else {
15310 {
15311 UQI opval = 0;
15312 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15313 written |= (1 << 3);
15314 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15315 }
15316}
15317
15318 abuf->written = written;
15319 return vpc;
15320#undef FLD
15321}
15322
15323/* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15324
15325static SEM_PC
15326SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15327{
15328#define FLD(f) abuf->fields.sfmt_cckeq.f
15329 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15330 int UNUSED written = 0;
15331 IADDR UNUSED pc = abuf->addr;
15332 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15333
15334if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15335if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15336 {
15337 UQI opval = 3;
15338 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15339 written |= (1 << 3);
15340 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15341 }
15342} else {
15343 {
15344 UQI opval = 2;
15345 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15346 written |= (1 << 3);
15347 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15348 }
15349}
15350} else {
15351 {
15352 UQI opval = 0;
15353 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15354 written |= (1 << 3);
15355 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15356 }
15357}
15358
15359 abuf->written = written;
15360 return vpc;
15361#undef FLD
15362}
15363
15364/* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15365
15366static SEM_PC
15367SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15368{
15369#define FLD(f) abuf->fields.sfmt_cckeq.f
15370 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15371 int UNUSED written = 0;
15372 IADDR UNUSED pc = abuf->addr;
15373 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15374
15375if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15376if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
15377 {
15378 UQI opval = 3;
15379 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15380 written |= (1 << 3);
15381 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15382 }
15383} else {
15384 {
15385 UQI opval = 2;
15386 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15387 written |= (1 << 3);
15388 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15389 }
15390}
15391} else {
15392 {
15393 UQI opval = 0;
15394 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15395 written |= (1 << 3);
15396 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15397 }
15398}
15399
15400 abuf->written = written;
15401 return vpc;
15402#undef FLD
15403}
15404
15405/* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15406
15407static SEM_PC
15408SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15409{
15410#define FLD(f) abuf->fields.sfmt_cckeq.f
15411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15412 int UNUSED written = 0;
15413 IADDR UNUSED pc = abuf->addr;
15414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15415
15416if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15417if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15418 {
15419 UQI opval = 3;
15420 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15421 written |= (1 << 3);
15422 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15423 }
15424} else {
15425 {
15426 UQI opval = 2;
15427 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15428 written |= (1 << 3);
15429 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15430 }
15431}
15432} else {
15433 {
15434 UQI opval = 0;
15435 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15436 written |= (1 << 3);
15437 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15438 }
15439}
15440
15441 abuf->written = written;
15442 return vpc;
15443#undef FLD
15444}
15445
15446/* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15447
15448static SEM_PC
15449SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15450{
15451#define FLD(f) abuf->fields.sfmt_cckeq.f
15452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15453 int UNUSED written = 0;
15454 IADDR UNUSED pc = abuf->addr;
15455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15456
15457if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15458if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15459 {
15460 UQI opval = 3;
15461 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15462 written |= (1 << 3);
15463 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15464 }
15465} else {
15466 {
15467 UQI opval = 2;
15468 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15469 written |= (1 << 3);
15470 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15471 }
15472}
15473} else {
15474 {
15475 UQI opval = 0;
15476 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15477 written |= (1 << 3);
15478 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15479 }
15480}
15481
15482 abuf->written = written;
15483 return vpc;
15484#undef FLD
15485}
15486
15487/* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15488
15489static SEM_PC
15490SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15491{
15492#define FLD(f) abuf->fields.sfmt_cckeq.f
15493 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15494 int UNUSED written = 0;
15495 IADDR UNUSED pc = abuf->addr;
15496 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15497
15498if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15499if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15500 {
15501 UQI opval = 3;
15502 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15503 written |= (1 << 3);
15504 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15505 }
15506} else {
15507 {
15508 UQI opval = 2;
15509 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15510 written |= (1 << 3);
15511 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15512 }
15513}
15514} else {
15515 {
15516 UQI opval = 0;
15517 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15518 written |= (1 << 3);
15519 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15520 }
15521}
15522
15523 abuf->written = written;
15524 return vpc;
15525#undef FLD
15526}
15527
15528/* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15529
15530static SEM_PC
15531SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15532{
15533#define FLD(f) abuf->fields.sfmt_cckeq.f
15534 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15535 int UNUSED written = 0;
15536 IADDR UNUSED pc = abuf->addr;
15537 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15538
15539if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15540if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15541 {
15542 UQI opval = 3;
15543 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15544 written |= (1 << 3);
15545 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15546 }
15547} else {
15548 {
15549 UQI opval = 2;
15550 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15551 written |= (1 << 3);
15552 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15553 }
15554}
15555} else {
15556 {
15557 UQI opval = 0;
15558 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15559 written |= (1 << 3);
15560 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15561 }
15562}
15563
15564 abuf->written = written;
15565 return vpc;
15566#undef FLD
15567}
15568
15569/* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15570
15571static SEM_PC
15572SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15573{
15574#define FLD(f) abuf->fields.sfmt_cckeq.f
15575 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15576 int UNUSED written = 0;
15577 IADDR UNUSED pc = abuf->addr;
15578 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15579
15580if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15581if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15582 {
15583 UQI opval = 3;
15584 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15585 written |= (1 << 3);
15586 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15587 }
15588} else {
15589 {
15590 UQI opval = 2;
15591 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15592 written |= (1 << 3);
15593 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15594 }
15595}
15596} else {
15597 {
15598 UQI opval = 0;
15599 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15600 written |= (1 << 3);
15601 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15602 }
15603}
15604
15605 abuf->written = written;
15606 return vpc;
15607#undef FLD
15608}
15609
15610/* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15611
15612static SEM_PC
15613SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15614{
15615#define FLD(f) abuf->fields.sfmt_cckeq.f
15616 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15617 int UNUSED written = 0;
15618 IADDR UNUSED pc = abuf->addr;
15619 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15620
15621if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15622if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15623 {
15624 UQI opval = 3;
15625 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15626 written |= (1 << 3);
15627 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15628 }
15629} else {
15630 {
15631 UQI opval = 2;
15632 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15633 written |= (1 << 3);
15634 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15635 }
15636}
15637} else {
15638 {
15639 UQI opval = 0;
15640 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15641 written |= (1 << 3);
15642 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15643 }
15644}
15645
15646 abuf->written = written;
15647 return vpc;
15648#undef FLD
15649}
15650
15651/* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15652
15653static SEM_PC
15654SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15655{
15656#define FLD(f) abuf->fields.sfmt_cfckne.f
15657 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15658 int UNUSED written = 0;
15659 IADDR UNUSED pc = abuf->addr;
15660 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15661
15662if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15663 {
15664 UQI opval = 3;
15665 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15666 written |= (1 << 2);
15667 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15668 }
15669} else {
15670 {
15671 UQI opval = 0;
15672 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15673 written |= (1 << 2);
15674 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15675 }
15676}
15677
15678 abuf->written = written;
15679 return vpc;
15680#undef FLD
15681}
15682
15683/* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15684
15685static SEM_PC
15686SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15687{
15688#define FLD(f) abuf->fields.sfmt_cfckne.f
15689 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15690 int UNUSED written = 0;
15691 IADDR UNUSED pc = abuf->addr;
15692 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15693
15694if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15695 {
15696 UQI opval = 2;
15697 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15698 written |= (1 << 2);
15699 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15700 }
15701} else {
15702 {
15703 UQI opval = 0;
15704 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15705 written |= (1 << 2);
15706 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15707 }
15708}
15709
15710 abuf->written = written;
15711 return vpc;
15712#undef FLD
15713}
15714
15715/* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15716
15717static SEM_PC
15718SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15719{
15720#define FLD(f) abuf->fields.sfmt_cfckne.f
15721 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15722 int UNUSED written = 0;
15723 IADDR UNUSED pc = abuf->addr;
15724 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15725
15726if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15727if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
15728 {
15729 UQI opval = 3;
15730 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15731 written |= (1 << 3);
15732 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15733 }
15734} else {
15735 {
15736 UQI opval = 2;
15737 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15738 written |= (1 << 3);
15739 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15740 }
15741}
15742} else {
15743 {
15744 UQI opval = 0;
15745 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15746 written |= (1 << 3);
15747 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15748 }
15749}
15750
15751 abuf->written = written;
15752 return vpc;
15753#undef FLD
15754}
15755
15756/* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15757
15758static SEM_PC
15759SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15760{
15761#define FLD(f) abuf->fields.sfmt_cfckne.f
15762 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15763 int UNUSED written = 0;
15764 IADDR UNUSED pc = abuf->addr;
15765 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15766
15767if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15768if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15769 {
15770 UQI opval = 3;
15771 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15772 written |= (1 << 3);
15773 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15774 }
15775} else {
15776 {
15777 UQI opval = 2;
15778 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15779 written |= (1 << 3);
15780 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15781 }
15782}
15783} else {
15784 {
15785 UQI opval = 0;
15786 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15787 written |= (1 << 3);
15788 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15789 }
15790}
15791
15792 abuf->written = written;
15793 return vpc;
15794#undef FLD
15795}
15796
15797/* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15798
15799static SEM_PC
15800SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15801{
15802#define FLD(f) abuf->fields.sfmt_cfckne.f
15803 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15804 int UNUSED written = 0;
15805 IADDR UNUSED pc = abuf->addr;
15806 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15807
15808if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15809if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
15810 {
15811 UQI opval = 3;
15812 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15813 written |= (1 << 3);
15814 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15815 }
15816} else {
15817 {
15818 UQI opval = 2;
15819 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15820 written |= (1 << 3);
15821 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15822 }
15823}
15824} else {
15825 {
15826 UQI opval = 0;
15827 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15828 written |= (1 << 3);
15829 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15830 }
15831}
15832
15833 abuf->written = written;
15834 return vpc;
15835#undef FLD
15836}
15837
15838/* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15839
15840static SEM_PC
15841SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15842{
15843#define FLD(f) abuf->fields.sfmt_cfckne.f
15844 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15845 int UNUSED written = 0;
15846 IADDR UNUSED pc = abuf->addr;
15847 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15848
15849if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15850if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15851 {
15852 UQI opval = 3;
15853 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15854 written |= (1 << 3);
15855 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15856 }
15857} else {
15858 {
15859 UQI opval = 2;
15860 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15861 written |= (1 << 3);
15862 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15863 }
15864}
15865} else {
15866 {
15867 UQI opval = 0;
15868 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15869 written |= (1 << 3);
15870 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15871 }
15872}
15873
15874 abuf->written = written;
15875 return vpc;
15876#undef FLD
15877}
15878
15879/* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15880
15881static SEM_PC
15882SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15883{
15884#define FLD(f) abuf->fields.sfmt_cfckne.f
15885 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15886 int UNUSED written = 0;
15887 IADDR UNUSED pc = abuf->addr;
15888 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15889
15890if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15891if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15892 {
15893 UQI opval = 3;
15894 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15895 written |= (1 << 3);
15896 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15897 }
15898} else {
15899 {
15900 UQI opval = 2;
15901 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15902 written |= (1 << 3);
15903 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15904 }
15905}
15906} else {
15907 {
15908 UQI opval = 0;
15909 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15910 written |= (1 << 3);
15911 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15912 }
15913}
15914
15915 abuf->written = written;
15916 return vpc;
15917#undef FLD
15918}
15919
15920/* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15921
15922static SEM_PC
15923SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15924{
15925#define FLD(f) abuf->fields.sfmt_cfckne.f
15926 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15927 int UNUSED written = 0;
15928 IADDR UNUSED pc = abuf->addr;
15929 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15930
15931if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15932if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)))) {
15933 {
15934 UQI opval = 3;
15935 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15936 written |= (1 << 3);
15937 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15938 }
15939} else {
15940 {
15941 UQI opval = 2;
15942 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15943 written |= (1 << 3);
15944 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15945 }
15946}
15947} else {
15948 {
15949 UQI opval = 0;
15950 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15951 written |= (1 << 3);
15952 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15953 }
15954}
15955
15956 abuf->written = written;
15957 return vpc;
15958#undef FLD
15959}
15960
15961/* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15962
15963static SEM_PC
15964SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15965{
15966#define FLD(f) abuf->fields.sfmt_cfckne.f
15967 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15968 int UNUSED written = 0;
15969 IADDR UNUSED pc = abuf->addr;
15970 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15971
15972if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15973if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15974 {
15975 UQI opval = 3;
15976 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15977 written |= (1 << 3);
15978 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15979 }
15980} else {
15981 {
15982 UQI opval = 2;
15983 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15984 written |= (1 << 3);
15985 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15986 }
15987}
15988} else {
15989 {
15990 UQI opval = 0;
15991 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15992 written |= (1 << 3);
15993 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15994 }
15995}
15996
15997 abuf->written = written;
15998 return vpc;
15999#undef FLD
16000}
16001
16002/* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
16003
16004static SEM_PC
16005SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16006{
16007#define FLD(f) abuf->fields.sfmt_cfckne.f
16008 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16009 int UNUSED written = 0;
16010 IADDR UNUSED pc = abuf->addr;
16011 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16012
16013if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16014if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
16015 {
16016 UQI opval = 3;
16017 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16018 written |= (1 << 3);
16019 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16020 }
16021} else {
16022 {
16023 UQI opval = 2;
16024 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16025 written |= (1 << 3);
16026 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16027 }
16028}
16029} else {
16030 {
16031 UQI opval = 0;
16032 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16033 written |= (1 << 3);
16034 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16035 }
16036}
16037
16038 abuf->written = written;
16039 return vpc;
16040#undef FLD
16041}
16042
16043/* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
16044
16045static SEM_PC
16046SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16047{
16048#define FLD(f) abuf->fields.sfmt_cfckne.f
16049 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16050 int UNUSED written = 0;
16051 IADDR UNUSED pc = abuf->addr;
16052 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16053
16054if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16055if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
16056 {
16057 UQI opval = 3;
16058 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16059 written |= (1 << 3);
16060 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16061 }
16062} else {
16063 {
16064 UQI opval = 2;
16065 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16066 written |= (1 << 3);
16067 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16068 }
16069}
16070} else {
16071 {
16072 UQI opval = 0;
16073 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16074 written |= (1 << 3);
16075 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16076 }
16077}
16078
16079 abuf->written = written;
16080 return vpc;
16081#undef FLD
16082}
16083
16084/* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
16085
16086static SEM_PC
16087SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16088{
16089#define FLD(f) abuf->fields.sfmt_cfckne.f
16090 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16091 int UNUSED written = 0;
16092 IADDR UNUSED pc = abuf->addr;
16093 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16094
16095if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16096if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)))) {
16097 {
16098 UQI opval = 3;
16099 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16100 written |= (1 << 3);
16101 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16102 }
16103} else {
16104 {
16105 UQI opval = 2;
16106 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16107 written |= (1 << 3);
16108 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16109 }
16110}
16111} else {
16112 {
16113 UQI opval = 0;
16114 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16115 written |= (1 << 3);
16116 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16117 }
16118}
16119
16120 abuf->written = written;
16121 return vpc;
16122#undef FLD
16123}
16124
16125/* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
16126
16127static SEM_PC
16128SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16129{
16130#define FLD(f) abuf->fields.sfmt_cfckne.f
16131 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16132 int UNUSED written = 0;
16133 IADDR UNUSED pc = abuf->addr;
16134 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16135
16136if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16137if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
16138 {
16139 UQI opval = 3;
16140 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16141 written |= (1 << 3);
16142 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16143 }
16144} else {
16145 {
16146 UQI opval = 2;
16147 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16148 written |= (1 << 3);
16149 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16150 }
16151}
16152} else {
16153 {
16154 UQI opval = 0;
16155 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16156 written |= (1 << 3);
16157 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16158 }
16159}
16160
16161 abuf->written = written;
16162 return vpc;
16163#undef FLD
16164}
16165
16166/* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
16167
16168static SEM_PC
16169SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16170{
16171#define FLD(f) abuf->fields.sfmt_cfckne.f
16172 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16173 int UNUSED written = 0;
16174 IADDR UNUSED pc = abuf->addr;
16175 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16176
16177if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16178if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))))) {
16179 {
16180 UQI opval = 3;
16181 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16182 written |= (1 << 3);
16183 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16184 }
16185} else {
16186 {
16187 UQI opval = 2;
16188 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16189 written |= (1 << 3);
16190 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16191 }
16192}
16193} else {
16194 {
16195 UQI opval = 0;
16196 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16197 written |= (1 << 3);
16198 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16199 }
16200}
16201
16202 abuf->written = written;
16203 return vpc;
16204#undef FLD
16205}
16206
16207/* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16208
16209static SEM_PC
16210SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16211{
16212#define FLD(f) abuf->fields.sfmt_cfckne.f
16213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16214 int UNUSED written = 0;
16215 IADDR UNUSED pc = abuf->addr;
16216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16217
16218if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16219if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
16220 {
16221 UQI opval = 3;
16222 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16223 written |= (1 << 3);
16224 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16225 }
16226} else {
16227 {
16228 UQI opval = 2;
16229 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16230 written |= (1 << 3);
16231 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16232 }
16233}
16234} else {
16235 {
16236 UQI opval = 0;
16237 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16238 written |= (1 << 3);
16239 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16240 }
16241}
16242
16243 abuf->written = written;
16244 return vpc;
16245#undef FLD
16246}
16247
16248/* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16249
16250static SEM_PC
16251SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16252{
16253#define FLD(f) abuf->fields.sfmt_cfckne.f
16254 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16255 int UNUSED written = 0;
16256 IADDR UNUSED pc = abuf->addr;
16257 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16258
16259if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16260if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))))) {
16261 {
16262 UQI opval = 3;
16263 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16264 written |= (1 << 3);
16265 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16266 }
16267} else {
16268 {
16269 UQI opval = 2;
16270 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16271 written |= (1 << 3);
16272 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16273 }
16274}
16275} else {
16276 {
16277 UQI opval = 0;
16278 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16279 written |= (1 << 3);
16280 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16281 }
16282}
16283
16284 abuf->written = written;
16285 return vpc;
16286#undef FLD
16287}
16288
16289/* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16290
16291static SEM_PC
16292SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16293{
16294#define FLD(f) abuf->fields.sfmt_cjmpl.f
16295 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16296 int UNUSED written = 0;
16297 IADDR UNUSED pc = abuf->addr;
16298 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16299
16300if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16301{
16302if (EQSI (FLD (f_LI), 1)) {
16303frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16304}
16305 {
16306 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16307 sim_queue_pc_write (current_cpu, opval);
16308 written |= (1 << 6);
16309 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16310 }
16311frvbf_model_branch (current_cpu, pc, 2);
16312}
16313}
16314
16315 abuf->written = written;
16316 return vpc;
16317#undef FLD
16318}
16319
16320/* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16321
16322static SEM_PC
16323SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16324{
16325#define FLD(f) abuf->fields.sfmt_cjmpl.f
16326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16327 int UNUSED written = 0;
16328 IADDR UNUSED pc = abuf->addr;
16329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16330
16331if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16332{
16333if (EQSI (FLD (f_LI), 1)) {
16334frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16335}
16336 {
16337 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16338 sim_queue_pc_write (current_cpu, opval);
16339 written |= (1 << 6);
16340 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16341 }
16342frvbf_model_branch (current_cpu, pc, 2);
16343}
16344}
16345
16346 abuf->written = written;
16347 return vpc;
16348#undef FLD
16349}
16350
16351/* ici: ici$pack @($GRi,$GRj) */
16352
16353static SEM_PC
16354SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16355{
16356#define FLD(f) abuf->fields.sfmt_icpl.f
16357 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16358 int UNUSED written = 0;
16359 IADDR UNUSED pc = abuf->addr;
16360 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16361
16362frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16363
16364 return vpc;
16365#undef FLD
16366}
16367
16368/* dci: dci$pack @($GRi,$GRj) */
16369
16370static SEM_PC
16371SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16372{
16373#define FLD(f) abuf->fields.sfmt_icpl.f
16374 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16375 int UNUSED written = 0;
16376 IADDR UNUSED pc = abuf->addr;
16377 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16378
16379frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16380
16381 return vpc;
16382#undef FLD
16383}
16384
16385/* icei: icei$pack @($GRi,$GRj),$ae */
16386
16387static SEM_PC
16388SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16389{
16390#define FLD(f) abuf->fields.sfmt_icei.f
16391 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16392 int UNUSED written = 0;
16393 IADDR UNUSED pc = abuf->addr;
16394 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16395
16396if (EQSI (FLD (f_ae), 0)) {
16397frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16398} else {
16399frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16400}
16401
16402 return vpc;
16403#undef FLD
16404}
16405
16406/* dcei: dcei$pack @($GRi,$GRj),$ae */
16407
16408static SEM_PC
16409SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16410{
16411#define FLD(f) abuf->fields.sfmt_icei.f
16412 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16413 int UNUSED written = 0;
16414 IADDR UNUSED pc = abuf->addr;
16415 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16416
16417if (EQSI (FLD (f_ae), 0)) {
16418frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16419} else {
16420frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16421}
16422
16423 return vpc;
16424#undef FLD
16425}
16426
16427/* dcf: dcf$pack @($GRi,$GRj) */
16428
16429static SEM_PC
16430SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16431{
16432#define FLD(f) abuf->fields.sfmt_icpl.f
16433 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16434 int UNUSED written = 0;
16435 IADDR UNUSED pc = abuf->addr;
16436 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16437
16438frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16439
16440 return vpc;
16441#undef FLD
16442}
16443
16444/* dcef: dcef$pack @($GRi,$GRj),$ae */
16445
16446static SEM_PC
16447SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16448{
16449#define FLD(f) abuf->fields.sfmt_icei.f
16450 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16451 int UNUSED written = 0;
16452 IADDR UNUSED pc = abuf->addr;
16453 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16454
16455if (EQSI (FLD (f_ae), 0)) {
16456frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16457} else {
16458frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16459}
16460
16461 return vpc;
16462#undef FLD
16463}
16464
16465/* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16466
16467static SEM_PC
16468SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16469{
16470#define FLD(f) abuf->fields.fmt_empty.f
16471 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16472 int UNUSED written = 0;
16473 IADDR UNUSED pc = abuf->addr;
16474 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16475
16476((void) 0); /*nop*/
16477
16478 return vpc;
16479#undef FLD
16480}
16481
16482/* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16483
16484static SEM_PC
16485SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16486{
16487#define FLD(f) abuf->fields.fmt_empty.f
16488 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16489 int UNUSED written = 0;
16490 IADDR UNUSED pc = abuf->addr;
16491 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16492
16493((void) 0); /*nop*/
16494
16495 return vpc;
16496#undef FLD
16497}
16498
16499/* itlbi: itlbi$pack @($GRi,$GRj) */
16500
16501static SEM_PC
16502SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16503{
16504#define FLD(f) abuf->fields.fmt_empty.f
16505 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16506 int UNUSED written = 0;
16507 IADDR UNUSED pc = abuf->addr;
16508 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16509
16510((void) 0); /*nop*/
16511
16512 return vpc;
16513#undef FLD
16514}
16515
16516/* dtlbi: dtlbi$pack @($GRi,$GRj) */
16517
16518static SEM_PC
16519SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16520{
16521#define FLD(f) abuf->fields.fmt_empty.f
16522 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16523 int UNUSED written = 0;
16524 IADDR UNUSED pc = abuf->addr;
16525 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16526
16527((void) 0); /*nop*/
16528
16529 return vpc;
16530#undef FLD
16531}
16532
16533/* icpl: icpl$pack $GRi,$GRj,$lock */
16534
16535static SEM_PC
16536SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16537{
16538#define FLD(f) abuf->fields.sfmt_icpl.f
16539 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16540 int UNUSED written = 0;
16541 IADDR UNUSED pc = abuf->addr;
16542 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16543
16544frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16545
16546 return vpc;
16547#undef FLD
16548}
16549
16550/* dcpl: dcpl$pack $GRi,$GRj,$lock */
16551
16552static SEM_PC
16553SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16554{
16555#define FLD(f) abuf->fields.sfmt_icpl.f
16556 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16557 int UNUSED written = 0;
16558 IADDR UNUSED pc = abuf->addr;
16559 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16560
16561frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16562
16563 return vpc;
16564#undef FLD
16565}
16566
16567/* icul: icul$pack $GRi */
16568
16569static SEM_PC
16570SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16571{
16572#define FLD(f) abuf->fields.sfmt_jmpil.f
16573 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16574 int UNUSED written = 0;
16575 IADDR UNUSED pc = abuf->addr;
16576 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16577
16578frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16579
16580 return vpc;
16581#undef FLD
16582}
16583
16584/* dcul: dcul$pack $GRi */
16585
16586static SEM_PC
16587SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16588{
16589#define FLD(f) abuf->fields.sfmt_jmpil.f
16590 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16591 int UNUSED written = 0;
16592 IADDR UNUSED pc = abuf->addr;
16593 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16594
16595frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16596
16597 return vpc;
16598#undef FLD
16599}
16600
16601/* bar: bar$pack */
16602
16603static SEM_PC
16604SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16605{
16606#define FLD(f) abuf->fields.fmt_empty.f
16607 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16608 int UNUSED written = 0;
16609 IADDR UNUSED pc = abuf->addr;
16610 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16611
16612((void) 0); /*nop*/
16613
16614 return vpc;
16615#undef FLD
16616}
16617
16618/* membar: membar$pack */
16619
16620static SEM_PC
16621SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16622{
16623#define FLD(f) abuf->fields.fmt_empty.f
16624 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16625 int UNUSED written = 0;
16626 IADDR UNUSED pc = abuf->addr;
16627 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16628
16629((void) 0); /*nop*/
16630
16631 return vpc;
16632#undef FLD
16633}
16634
16635/* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16636
16637static SEM_PC
16638SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16639{
16640#define FLD(f) abuf->fields.fmt_empty.f
16641 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16642 int UNUSED written = 0;
16643 IADDR UNUSED pc = abuf->addr;
16644 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16645
16646((void) 0); /*nop*/
16647
16648 return vpc;
16649#undef FLD
16650}
16651
16652/* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16653
16654static SEM_PC
16655SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16656{
16657#define FLD(f) abuf->fields.fmt_empty.f
16658 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16659 int UNUSED written = 0;
16660 IADDR UNUSED pc = abuf->addr;
16661 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16662
16663((void) 0); /*nop*/
16664
16665 return vpc;
16666#undef FLD
16667}
16668
16669/* clrgr: clrgr$pack $GRk */
16670
16671static SEM_PC
16672SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16673{
153431d6 16674#define FLD(f) abuf->fields.sfmt_swapi.f
b34f6357
DB
16675 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16676 int UNUSED written = 0;
16677 IADDR UNUSED pc = abuf->addr;
16678 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16679
153431d6
DB
16680{
16681frv_ref_SI (GET_H_GR (FLD (f_GRk)));
b34f6357 16682frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
153431d6 16683}
b34f6357
DB
16684
16685 return vpc;
16686#undef FLD
16687}
16688
16689/* clrfr: clrfr$pack $FRk */
16690
16691static SEM_PC
16692SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16693{
153431d6 16694#define FLD(f) abuf->fields.sfmt_cfmadds.f
b34f6357
DB
16695 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16696 int UNUSED written = 0;
16697 IADDR UNUSED pc = abuf->addr;
16698 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16699
153431d6
DB
16700{
16701frv_ref_SI (GET_H_FR (FLD (f_FRk)));
b34f6357 16702frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
153431d6 16703}
b34f6357
DB
16704
16705 return vpc;
16706#undef FLD
16707}
16708
16709/* clrga: clrga$pack */
16710
16711static SEM_PC
16712SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16713{
16714#define FLD(f) abuf->fields.fmt_empty.f
16715 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16716 int UNUSED written = 0;
16717 IADDR UNUSED pc = abuf->addr;
16718 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16719
16720frvbf_clear_ne_flags (current_cpu, -1, 0);
16721
16722 return vpc;
16723#undef FLD
16724}
16725
16726/* clrfa: clrfa$pack */
16727
16728static SEM_PC
16729SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16730{
16731#define FLD(f) abuf->fields.fmt_empty.f
16732 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16733 int UNUSED written = 0;
16734 IADDR UNUSED pc = abuf->addr;
16735 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16736
16737frvbf_clear_ne_flags (current_cpu, -1, 1);
16738
16739 return vpc;
16740#undef FLD
16741}
16742
16743/* commitgr: commitgr$pack $GRk */
16744
16745static SEM_PC
16746SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16747{
16748#define FLD(f) abuf->fields.sfmt_setlos.f
16749 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16750 int UNUSED written = 0;
16751 IADDR UNUSED pc = abuf->addr;
16752 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16753
16754frvbf_commit (current_cpu, FLD (f_GRk), 0);
16755
16756 return vpc;
16757#undef FLD
16758}
16759
16760/* commitfr: commitfr$pack $FRk */
16761
16762static SEM_PC
16763SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16764{
16765#define FLD(f) abuf->fields.sfmt_mhsethis.f
16766 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16767 int UNUSED written = 0;
16768 IADDR UNUSED pc = abuf->addr;
16769 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16770
16771frvbf_commit (current_cpu, FLD (f_FRk), 1);
16772
16773 return vpc;
16774#undef FLD
16775}
16776
16777/* commitga: commitga$pack */
16778
16779static SEM_PC
16780SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16781{
16782#define FLD(f) abuf->fields.fmt_empty.f
16783 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16784 int UNUSED written = 0;
16785 IADDR UNUSED pc = abuf->addr;
16786 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16787
16788frvbf_commit (current_cpu, -1, 0);
16789
16790 return vpc;
16791#undef FLD
16792}
16793
16794/* commitfa: commitfa$pack */
16795
16796static SEM_PC
16797SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16798{
16799#define FLD(f) abuf->fields.fmt_empty.f
16800 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16801 int UNUSED written = 0;
16802 IADDR UNUSED pc = abuf->addr;
16803 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16804
16805frvbf_commit (current_cpu, -1, 1);
16806
16807 return vpc;
16808#undef FLD
16809}
16810
16811/* fitos: fitos$pack $FRintj,$FRk */
16812
16813static SEM_PC
16814SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16815{
16816#define FLD(f) abuf->fields.sfmt_fditos.f
16817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16818 int UNUSED written = 0;
16819 IADDR UNUSED pc = abuf->addr;
16820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16821
16822 {
16823 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16824 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16825 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16826 }
16827
16828 return vpc;
16829#undef FLD
16830}
16831
16832/* fstoi: fstoi$pack $FRj,$FRintk */
16833
16834static SEM_PC
16835SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16836{
16837#define FLD(f) abuf->fields.sfmt_fdstoi.f
16838 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16839 int UNUSED written = 0;
16840 IADDR UNUSED pc = abuf->addr;
16841 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16842
16843 {
16844 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16845 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16846 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16847 }
16848
16849 return vpc;
16850#undef FLD
16851}
16852
16853/* fitod: fitod$pack $FRintj,$FRdoublek */
16854
16855static SEM_PC
16856SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16857{
16858#define FLD(f) abuf->fields.sfmt_fitod.f
16859 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16860 int UNUSED written = 0;
16861 IADDR UNUSED pc = abuf->addr;
16862 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16863
16864 {
16865 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16866 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16867 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16868 }
16869
16870 return vpc;
16871#undef FLD
16872}
16873
16874/* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16875
16876static SEM_PC
16877SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16878{
16879#define FLD(f) abuf->fields.sfmt_fdtoi.f
16880 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16881 int UNUSED written = 0;
16882 IADDR UNUSED pc = abuf->addr;
16883 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16884
16885 {
16886 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16887 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16888 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16889 }
16890
16891 return vpc;
16892#undef FLD
16893}
16894
16895/* fditos: fditos$pack $FRintj,$FRk */
16896
16897static SEM_PC
16898SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16899{
16900#define FLD(f) abuf->fields.sfmt_fditos.f
16901 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16902 int UNUSED written = 0;
16903 IADDR UNUSED pc = abuf->addr;
16904 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16905
16906{
16907 {
16908 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16909 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16910 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16911 }
16912 {
16913 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16914 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16915 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16916 }
16917}
16918
16919 return vpc;
16920#undef FLD
16921}
16922
16923/* fdstoi: fdstoi$pack $FRj,$FRintk */
16924
16925static SEM_PC
16926SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16927{
16928#define FLD(f) abuf->fields.sfmt_fdstoi.f
16929 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16930 int UNUSED written = 0;
16931 IADDR UNUSED pc = abuf->addr;
16932 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16933
16934{
16935 {
16936 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16937 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16938 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16939 }
16940 {
16941 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16942 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16943 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16944 }
16945}
16946
16947 return vpc;
16948#undef FLD
16949}
16950
16951/* nfditos: nfditos$pack $FRintj,$FRk */
16952
16953static SEM_PC
16954SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16955{
16956#define FLD(f) abuf->fields.sfmt_fditos.f
16957 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16958 int UNUSED written = 0;
16959 IADDR UNUSED pc = abuf->addr;
16960 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16961
16962{
16963frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16964 {
16965 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16966 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16967 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16968 }
16969frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16970 {
16971 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16972 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16973 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16974 }
16975}
16976
16977 return vpc;
16978#undef FLD
16979}
16980
16981/* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16982
16983static SEM_PC
16984SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16985{
16986#define FLD(f) abuf->fields.sfmt_fdstoi.f
16987 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16988 int UNUSED written = 0;
16989 IADDR UNUSED pc = abuf->addr;
16990 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16991
16992{
16993frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16994 {
16995 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16996 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16997 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16998 }
16999frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17000 {
17001 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17002 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
17003 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
17004 }
17005}
17006
17007 return vpc;
17008#undef FLD
17009}
17010
17011/* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
17012
17013static SEM_PC
17014SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17015{
17016#define FLD(f) abuf->fields.sfmt_cfitos.f
17017 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17018 int UNUSED written = 0;
17019 IADDR UNUSED pc = abuf->addr;
17020 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17021
17022if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17023 {
17024 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
17025 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17026 written |= (1 << 3);
17027 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17028 }
17029}
17030
17031 abuf->written = written;
17032 return vpc;
17033#undef FLD
17034}
17035
17036/* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
17037
17038static SEM_PC
17039SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17040{
17041#define FLD(f) abuf->fields.sfmt_cfstoi.f
17042 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17043 int UNUSED written = 0;
17044 IADDR UNUSED pc = abuf->addr;
17045 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17046
17047if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17048 {
17049 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17050 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
17051 written |= (1 << 3);
17052 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
17053 }
17054}
17055
17056 abuf->written = written;
17057 return vpc;
17058#undef FLD
17059}
17060
17061/* nfitos: nfitos$pack $FRintj,$FRk */
17062
17063static SEM_PC
17064SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17065{
17066#define FLD(f) abuf->fields.sfmt_fditos.f
17067 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17068 int UNUSED written = 0;
17069 IADDR UNUSED pc = abuf->addr;
17070 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17071
17072{
17073frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17074 {
17075 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
17076 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17077 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17078 }
17079}
17080
17081 return vpc;
17082#undef FLD
17083}
17084
17085/* nfstoi: nfstoi$pack $FRj,$FRintk */
17086
17087static SEM_PC
17088SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17089{
17090#define FLD(f) abuf->fields.sfmt_fdstoi.f
17091 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17092 int UNUSED written = 0;
17093 IADDR UNUSED pc = abuf->addr;
17094 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17095
17096{
17097frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17098 {
17099 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17100 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
17101 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
17102 }
17103}
17104
17105 return vpc;
17106#undef FLD
17107}
17108
17109/* fmovs: fmovs$pack $FRj,$FRk */
17110
17111static SEM_PC
17112SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17113{
17114#define FLD(f) abuf->fields.sfmt_cfmadds.f
17115 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17116 int UNUSED written = 0;
17117 IADDR UNUSED pc = abuf->addr;
17118 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17119
17120 {
17121 SF opval = GET_H_FR (FLD (f_FRj));
17122 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17123 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17124 }
17125
17126 return vpc;
17127#undef FLD
17128}
17129
17130/* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
17131
17132static SEM_PC
17133SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17134{
17135#define FLD(f) abuf->fields.sfmt_fmaddd.f
17136 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17137 int UNUSED written = 0;
17138 IADDR UNUSED pc = abuf->addr;
17139 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17140
17141 {
17142 DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
17143 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17144 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17145 }
17146
17147 return vpc;
17148#undef FLD
17149}
17150
17151/* fdmovs: fdmovs$pack $FRj,$FRk */
17152
17153static SEM_PC
17154SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17155{
17156#define FLD(f) abuf->fields.sfmt_fdmadds.f
17157 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17158 int UNUSED written = 0;
17159 IADDR UNUSED pc = abuf->addr;
17160 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17161
17162{
17163 {
17164 SF opval = GET_H_FR (FLD (f_FRj));
17165 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17166 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17167 }
17168 {
17169 SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17170 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17171 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17172 }
17173}
17174
17175 return vpc;
17176#undef FLD
17177}
17178
17179/* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17180
17181static SEM_PC
17182SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17183{
17184#define FLD(f) abuf->fields.sfmt_cfmadds.f
17185 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17186 int UNUSED written = 0;
17187 IADDR UNUSED pc = abuf->addr;
17188 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17189
17190if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17191 {
17192 SF opval = GET_H_FR (FLD (f_FRj));
17193 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17194 written |= (1 << 3);
17195 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17196 }
17197}
17198
17199 abuf->written = written;
17200 return vpc;
17201#undef FLD
17202}
17203
17204/* fnegs: fnegs$pack $FRj,$FRk */
17205
17206static SEM_PC
17207SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17208{
17209#define FLD(f) abuf->fields.sfmt_cfmadds.f
17210 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17211 int UNUSED written = 0;
17212 IADDR UNUSED pc = abuf->addr;
17213 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17214
17215 {
17216 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17217 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17218 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17219 }
17220
17221 return vpc;
17222#undef FLD
17223}
17224
17225/* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17226
17227static SEM_PC
17228SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17229{
17230#define FLD(f) abuf->fields.sfmt_fmaddd.f
17231 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17232 int UNUSED written = 0;
17233 IADDR UNUSED pc = abuf->addr;
17234 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17235
17236 {
17237 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17238 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17239 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17240 }
17241
17242 return vpc;
17243#undef FLD
17244}
17245
17246/* fdnegs: fdnegs$pack $FRj,$FRk */
17247
17248static SEM_PC
17249SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17250{
17251#define FLD(f) abuf->fields.sfmt_fdmadds.f
17252 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17253 int UNUSED written = 0;
17254 IADDR UNUSED pc = abuf->addr;
17255 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17256
17257{
17258 {
17259 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17260 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17261 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17262 }
17263 {
17264 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17265 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17266 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17267 }
17268}
17269
17270 return vpc;
17271#undef FLD
17272}
17273
17274/* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17275
17276static SEM_PC
17277SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17278{
17279#define FLD(f) abuf->fields.sfmt_cfmadds.f
17280 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17281 int UNUSED written = 0;
17282 IADDR UNUSED pc = abuf->addr;
17283 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17284
17285if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17286 {
17287 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17288 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17289 written |= (1 << 3);
17290 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17291 }
17292}
17293
17294 abuf->written = written;
17295 return vpc;
17296#undef FLD
17297}
17298
17299/* fabss: fabss$pack $FRj,$FRk */
17300
17301static SEM_PC
17302SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17303{
17304#define FLD(f) abuf->fields.sfmt_cfmadds.f
17305 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17306 int UNUSED written = 0;
17307 IADDR UNUSED pc = abuf->addr;
17308 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17309
17310 {
17311 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17312 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17313 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17314 }
17315
17316 return vpc;
17317#undef FLD
17318}
17319
17320/* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17321
17322static SEM_PC
17323SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17324{
17325#define FLD(f) abuf->fields.sfmt_fmaddd.f
17326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17327 int UNUSED written = 0;
17328 IADDR UNUSED pc = abuf->addr;
17329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17330
17331 {
17332 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17333 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17334 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17335 }
17336
17337 return vpc;
17338#undef FLD
17339}
17340
17341/* fdabss: fdabss$pack $FRj,$FRk */
17342
17343static SEM_PC
17344SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17345{
17346#define FLD(f) abuf->fields.sfmt_fdmadds.f
17347 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17348 int UNUSED written = 0;
17349 IADDR UNUSED pc = abuf->addr;
17350 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17351
17352{
17353 {
17354 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17355 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17356 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17357 }
17358 {
17359 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17360 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17361 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17362 }
17363}
17364
17365 return vpc;
17366#undef FLD
17367}
17368
17369/* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17370
17371static SEM_PC
17372SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17373{
17374#define FLD(f) abuf->fields.sfmt_cfmadds.f
17375 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17376 int UNUSED written = 0;
17377 IADDR UNUSED pc = abuf->addr;
17378 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17379
17380if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17381 {
17382 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17383 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17384 written |= (1 << 3);
17385 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17386 }
17387}
17388
17389 abuf->written = written;
17390 return vpc;
17391#undef FLD
17392}
17393
17394/* fsqrts: fsqrts$pack $FRj,$FRk */
17395
17396static SEM_PC
17397SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17398{
17399#define FLD(f) abuf->fields.sfmt_cfmadds.f
17400 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17401 int UNUSED written = 0;
17402 IADDR UNUSED pc = abuf->addr;
17403 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17404
17405 {
17406 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17407 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17408 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17409 }
17410
17411 return vpc;
17412#undef FLD
17413}
17414
17415/* fdsqrts: fdsqrts$pack $FRj,$FRk */
17416
17417static SEM_PC
17418SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17419{
17420#define FLD(f) abuf->fields.sfmt_fdmadds.f
17421 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17422 int UNUSED written = 0;
17423 IADDR UNUSED pc = abuf->addr;
17424 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17425
17426{
17427 {
17428 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17429 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17430 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17431 }
17432 {
17433 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17434 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17435 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17436 }
17437}
17438
17439 return vpc;
17440#undef FLD
17441}
17442
17443/* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17444
17445static SEM_PC
17446SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17447{
17448#define FLD(f) abuf->fields.sfmt_fdmadds.f
17449 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17450 int UNUSED written = 0;
17451 IADDR UNUSED pc = abuf->addr;
17452 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17453
17454{
17455frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17456 {
17457 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17458 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17459 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17460 }
17461frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17462 {
17463 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17464 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17465 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17466 }
17467}
17468
17469 return vpc;
17470#undef FLD
17471}
17472
17473/* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17474
17475static SEM_PC
17476SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17477{
17478#define FLD(f) abuf->fields.sfmt_fmaddd.f
17479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17480 int UNUSED written = 0;
17481 IADDR UNUSED pc = abuf->addr;
17482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17483
17484 {
17485 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17486 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17487 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17488 }
17489
17490 return vpc;
17491#undef FLD
17492}
17493
17494/* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17495
17496static SEM_PC
17497SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17498{
17499#define FLD(f) abuf->fields.sfmt_cfmadds.f
17500 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17501 int UNUSED written = 0;
17502 IADDR UNUSED pc = abuf->addr;
17503 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17504
17505if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17506 {
17507 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17508 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17509 written |= (1 << 3);
17510 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17511 }
17512}
17513
17514 abuf->written = written;
17515 return vpc;
17516#undef FLD
17517}
17518
17519/* nfsqrts: nfsqrts$pack $FRj,$FRk */
17520
17521static SEM_PC
17522SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17523{
17524#define FLD(f) abuf->fields.sfmt_cfmadds.f
17525 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17526 int UNUSED written = 0;
17527 IADDR UNUSED pc = abuf->addr;
17528 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17529
17530{
17531frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17532 {
17533 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17534 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17535 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17536 }
17537}
17538
17539 return vpc;
17540#undef FLD
17541}
17542
17543/* fadds: fadds$pack $FRi,$FRj,$FRk */
17544
17545static SEM_PC
17546SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17547{
17548#define FLD(f) abuf->fields.sfmt_cfmadds.f
17549 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17550 int UNUSED written = 0;
17551 IADDR UNUSED pc = abuf->addr;
17552 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17553
17554 {
17555 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17556 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17557 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17558 }
17559
17560 return vpc;
17561#undef FLD
17562}
17563
17564/* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17565
17566static SEM_PC
17567SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17568{
17569#define FLD(f) abuf->fields.sfmt_cfmadds.f
17570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17571 int UNUSED written = 0;
17572 IADDR UNUSED pc = abuf->addr;
17573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17574
17575 {
17576 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17577 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17578 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17579 }
17580
17581 return vpc;
17582#undef FLD
17583}
17584
17585/* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17586
17587static SEM_PC
17588SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17589{
17590#define FLD(f) abuf->fields.sfmt_cfmadds.f
17591 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17592 int UNUSED written = 0;
17593 IADDR UNUSED pc = abuf->addr;
17594 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17595
17596 {
17597 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17598 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17599 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17600 }
17601
17602 return vpc;
17603#undef FLD
17604}
17605
17606/* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17607
17608static SEM_PC
17609SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17610{
17611#define FLD(f) abuf->fields.sfmt_cfmadds.f
17612 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17613 int UNUSED written = 0;
17614 IADDR UNUSED pc = abuf->addr;
17615 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17616
17617 {
17618 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17619 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17620 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17621 }
17622
17623 return vpc;
17624#undef FLD
17625}
17626
17627/* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17628
17629static SEM_PC
17630SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17631{
17632#define FLD(f) abuf->fields.sfmt_fmaddd.f
17633 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17634 int UNUSED written = 0;
17635 IADDR UNUSED pc = abuf->addr;
17636 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17637
17638 {
17639 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17640 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17641 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17642 }
17643
17644 return vpc;
17645#undef FLD
17646}
17647
17648/* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17649
17650static SEM_PC
17651SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17652{
17653#define FLD(f) abuf->fields.sfmt_fmaddd.f
17654 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17655 int UNUSED written = 0;
17656 IADDR UNUSED pc = abuf->addr;
17657 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17658
17659 {
17660 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17661 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17662 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17663 }
17664
17665 return vpc;
17666#undef FLD
17667}
17668
17669/* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17670
17671static SEM_PC
17672SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17673{
17674#define FLD(f) abuf->fields.sfmt_fmaddd.f
17675 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17676 int UNUSED written = 0;
17677 IADDR UNUSED pc = abuf->addr;
17678 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17679
17680 {
17681 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17682 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17683 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17684 }
17685
17686 return vpc;
17687#undef FLD
17688}
17689
17690/* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17691
17692static SEM_PC
17693SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17694{
17695#define FLD(f) abuf->fields.sfmt_fmaddd.f
17696 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17697 int UNUSED written = 0;
17698 IADDR UNUSED pc = abuf->addr;
17699 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17700
17701 {
17702 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)));
17703 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17704 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17705 }
17706
17707 return vpc;
17708#undef FLD
17709}
17710
17711/* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17712
17713static SEM_PC
17714SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17715{
17716#define FLD(f) abuf->fields.sfmt_cfmadds.f
17717 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17718 int UNUSED written = 0;
17719 IADDR UNUSED pc = abuf->addr;
17720 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17721
17722if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17723 {
17724 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17725 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17726 written |= (1 << 4);
17727 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17728 }
17729}
17730
17731 abuf->written = written;
17732 return vpc;
17733#undef FLD
17734}
17735
17736/* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17737
17738static SEM_PC
17739SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17740{
17741#define FLD(f) abuf->fields.sfmt_cfmadds.f
17742 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17743 int UNUSED written = 0;
17744 IADDR UNUSED pc = abuf->addr;
17745 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17746
17747if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17748 {
17749 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17750 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17751 written |= (1 << 4);
17752 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17753 }
17754}
17755
17756 abuf->written = written;
17757 return vpc;
17758#undef FLD
17759}
17760
17761/* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17762
17763static SEM_PC
17764SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17765{
17766#define FLD(f) abuf->fields.sfmt_cfmadds.f
17767 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17768 int UNUSED written = 0;
17769 IADDR UNUSED pc = abuf->addr;
17770 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17771
17772if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17773 {
17774 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17775 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17776 written |= (1 << 4);
17777 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17778 }
17779}
17780
17781 abuf->written = written;
17782 return vpc;
17783#undef FLD
17784}
17785
17786/* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17787
17788static SEM_PC
17789SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17790{
17791#define FLD(f) abuf->fields.sfmt_cfmadds.f
17792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17793 int UNUSED written = 0;
17794 IADDR UNUSED pc = abuf->addr;
17795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17796
17797if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17798 {
17799 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17800 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17801 written |= (1 << 4);
17802 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17803 }
17804}
17805
17806 abuf->written = written;
17807 return vpc;
17808#undef FLD
17809}
17810
17811/* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17812
17813static SEM_PC
17814SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17815{
17816#define FLD(f) abuf->fields.sfmt_cfmadds.f
17817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17818 int UNUSED written = 0;
17819 IADDR UNUSED pc = abuf->addr;
17820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17821
17822{
17823frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17824 {
17825 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17826 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17827 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17828 }
17829}
17830
17831 return vpc;
17832#undef FLD
17833}
17834
17835/* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17836
17837static SEM_PC
17838SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17839{
17840#define FLD(f) abuf->fields.sfmt_cfmadds.f
17841 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17842 int UNUSED written = 0;
17843 IADDR UNUSED pc = abuf->addr;
17844 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17845
17846{
17847frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17848 {
17849 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17850 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17851 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17852 }
17853}
17854
17855 return vpc;
17856#undef FLD
17857}
17858
17859/* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17860
17861static SEM_PC
17862SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17863{
17864#define FLD(f) abuf->fields.sfmt_cfmadds.f
17865 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17866 int UNUSED written = 0;
17867 IADDR UNUSED pc = abuf->addr;
17868 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17869
17870{
17871frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17872 {
17873 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17874 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17875 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17876 }
17877}
17878
17879 return vpc;
17880#undef FLD
17881}
17882
17883/* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17884
17885static SEM_PC
17886SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17887{
17888#define FLD(f) abuf->fields.sfmt_cfmadds.f
17889 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17890 int UNUSED written = 0;
17891 IADDR UNUSED pc = abuf->addr;
17892 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17893
17894{
17895frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17896 {
17897 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
17898 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17899 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17900 }
17901}
17902
17903 return vpc;
17904#undef FLD
17905}
17906
17907/* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17908
17909static SEM_PC
17910SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17911{
17912#define FLD(f) abuf->fields.sfmt_cfcmps.f
17913 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17914 int UNUSED written = 0;
17915 IADDR UNUSED pc = abuf->addr;
17916 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17917
17918if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17919 {
17920 UQI opval = 2;
17921 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17922 written |= (1 << 2);
17923 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17924 }
17925} else {
17926if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17927 {
17928 UQI opval = 8;
17929 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17930 written |= (1 << 2);
17931 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17932 }
17933} else {
17934if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17935 {
17936 UQI opval = 4;
17937 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17938 written |= (1 << 2);
17939 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17940 }
17941} else {
17942 {
17943 UQI opval = 1;
17944 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17945 written |= (1 << 2);
17946 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17947 }
17948}
17949}
17950}
17951
17952 abuf->written = written;
17953 return vpc;
17954#undef FLD
17955}
17956
17957/* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17958
17959static SEM_PC
17960SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17961{
17962#define FLD(f) abuf->fields.sfmt_fcmpd.f
17963 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17964 int UNUSED written = 0;
17965 IADDR UNUSED pc = abuf->addr;
17966 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17967
17968if ((* CGEN_CPU_FPU (current_cpu)->ops->gtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)))) {
17969 {
17970 UQI opval = 2;
17971 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17972 written |= (1 << 2);
17973 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17974 }
17975} else {
17976if ((* CGEN_CPU_FPU (current_cpu)->ops->eqdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)))) {
17977 {
17978 UQI opval = 8;
17979 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17980 written |= (1 << 2);
17981 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17982 }
17983} else {
17984if ((* CGEN_CPU_FPU (current_cpu)->ops->ltdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj)))) {
17985 {
17986 UQI opval = 4;
17987 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17988 written |= (1 << 2);
17989 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17990 }
17991} else {
17992 {
17993 UQI opval = 1;
17994 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17995 written |= (1 << 2);
17996 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17997 }
17998}
17999}
18000}
18001
18002 abuf->written = written;
18003 return vpc;
18004#undef FLD
18005}
18006
18007/* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
18008
18009static SEM_PC
18010SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18011{
18012#define FLD(f) abuf->fields.sfmt_cfcmps.f
18013 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18014 int UNUSED written = 0;
18015 IADDR UNUSED pc = abuf->addr;
18016 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18017
18018if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18019if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18020 {
18021 UQI opval = 2;
18022 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18023 written |= (1 << 4);
18024 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18025 }
18026} else {
18027if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18028 {
18029 UQI opval = 8;
18030 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18031 written |= (1 << 4);
18032 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18033 }
18034} else {
18035if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18036 {
18037 UQI opval = 4;
18038 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18039 written |= (1 << 4);
18040 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18041 }
18042} else {
18043 {
18044 UQI opval = 1;
18045 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18046 written |= (1 << 4);
18047 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18048 }
18049}
18050}
18051}
18052}
18053
18054 abuf->written = written;
18055 return vpc;
18056#undef FLD
18057}
18058
18059/* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
18060
18061static SEM_PC
18062SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18063{
18064#define FLD(f) abuf->fields.sfmt_nfdcmps.f
18065 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18066 int UNUSED written = 0;
18067 IADDR UNUSED pc = abuf->addr;
18068 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18069
18070{
18071if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18072 {
18073 UQI opval = 2;
18074 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18075 written |= (1 << 7);
18076 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18077 }
18078} else {
18079if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18080 {
18081 UQI opval = 8;
18082 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18083 written |= (1 << 7);
18084 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18085 }
18086} else {
18087if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18088 {
18089 UQI opval = 4;
18090 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18091 written |= (1 << 7);
18092 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18093 }
18094} else {
18095 {
18096 UQI opval = 1;
18097 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
18098 written |= (1 << 7);
18099 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18100 }
18101}
18102}
18103}
18104if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
18105 {
18106 UQI opval = 2;
18107 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18108 written |= (1 << 8);
18109 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18110 }
18111} else {
18112if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
18113 {
18114 UQI opval = 8;
18115 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18116 written |= (1 << 8);
18117 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18118 }
18119} else {
18120if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
18121 {
18122 UQI opval = 4;
18123 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18124 written |= (1 << 8);
18125 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18126 }
18127} else {
18128 {
18129 UQI opval = 1;
18130 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
18131 written |= (1 << 8);
18132 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
18133 }
18134}
18135}
18136}
18137}
18138
18139 abuf->written = written;
18140 return vpc;
18141#undef FLD
18142}
18143
18144/* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18145
18146static SEM_PC
18147SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18148{
18149#define FLD(f) abuf->fields.sfmt_cfmadds.f
18150 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18151 int UNUSED written = 0;
18152 IADDR UNUSED pc = abuf->addr;
18153 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18154
18155 {
18156 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18157 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18158 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18159 }
18160
18161 return vpc;
18162#undef FLD
18163}
18164
18165/* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18166
18167static SEM_PC
18168SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18169{
18170#define FLD(f) abuf->fields.sfmt_cfmadds.f
18171 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18172 int UNUSED written = 0;
18173 IADDR UNUSED pc = abuf->addr;
18174 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18175
18176 {
18177 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18178 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18179 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18180 }
18181
18182 return vpc;
18183#undef FLD
18184}
18185
18186/* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18187
18188static SEM_PC
18189SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18190{
18191#define FLD(f) abuf->fields.sfmt_fmaddd.f
18192 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18193 int UNUSED written = 0;
18194 IADDR UNUSED pc = abuf->addr;
18195 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18196
18197 {
18198 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj))), GET_H_FR_DOUBLE (FLD (f_FRk)));
18199 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18200 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18201 }
18202
18203 return vpc;
18204#undef FLD
18205}
18206
18207/* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18208
18209static SEM_PC
18210SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18211{
18212#define FLD(f) abuf->fields.sfmt_fmaddd.f
18213 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18214 int UNUSED written = 0;
18215 IADDR UNUSED pc = abuf->addr;
18216 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18217
18218 {
18219 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRi)), GET_H_FR_DOUBLE (FLD (f_FRj))), GET_H_FR_DOUBLE (FLD (f_FRk)));
18220 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18221 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18222 }
18223
18224 return vpc;
18225#undef FLD
18226}
18227
18228/* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18229
18230static SEM_PC
18231SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18232{
18233#define FLD(f) abuf->fields.sfmt_fdmadds.f
18234 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18235 int UNUSED written = 0;
18236 IADDR UNUSED pc = abuf->addr;
18237 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18238
18239{
18240 {
18241 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18242 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18243 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18244 }
18245 {
18246 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1)))), GET_H_FR (((FLD (f_FRk)) + (1))));
18247 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18248 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18249 }
18250}
18251
18252 return vpc;
18253#undef FLD
18254}
18255
18256/* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18257
18258static SEM_PC
18259SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18260{
18261#define FLD(f) abuf->fields.sfmt_fdmadds.f
18262 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18263 int UNUSED written = 0;
18264 IADDR UNUSED pc = abuf->addr;
18265 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18266
18267{
18268frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18269 {
18270 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18271 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18272 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18273 }
18274frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18275 {
18276 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1)))), GET_H_FR (((FLD (f_FRk)) + (1))));
18277 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18278 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18279 }
18280}
18281
18282 return vpc;
18283#undef FLD
18284}
18285
18286/* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18287
18288static SEM_PC
18289SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18290{
18291#define FLD(f) abuf->fields.sfmt_cfmadds.f
18292 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18293 int UNUSED written = 0;
18294 IADDR UNUSED pc = abuf->addr;
18295 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18296
18297if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18298 {
18299 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18300 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18301 written |= (1 << 5);
18302 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18303 }
18304}
18305
18306 abuf->written = written;
18307 return vpc;
18308#undef FLD
18309}
18310
18311/* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18312
18313static SEM_PC
18314SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18315{
18316#define FLD(f) abuf->fields.sfmt_cfmadds.f
18317 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18318 int UNUSED written = 0;
18319 IADDR UNUSED pc = abuf->addr;
18320 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18321
18322if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18323 {
18324 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18325 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18326 written |= (1 << 5);
18327 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18328 }
18329}
18330
18331 abuf->written = written;
18332 return vpc;
18333#undef FLD
18334}
18335
18336/* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18337
18338static SEM_PC
18339SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18340{
18341#define FLD(f) abuf->fields.sfmt_cfmadds.f
18342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18343 int UNUSED written = 0;
18344 IADDR UNUSED pc = abuf->addr;
18345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18346
18347{
18348frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18349 {
18350 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18351 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18352 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18353 }
18354}
18355
18356 return vpc;
18357#undef FLD
18358}
18359
18360/* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18361
18362static SEM_PC
18363SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18364{
18365#define FLD(f) abuf->fields.sfmt_cfmadds.f
18366 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18367 int UNUSED written = 0;
18368 IADDR UNUSED pc = abuf->addr;
18369 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18370
18371{
18372frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18373 {
18374 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj))), GET_H_FR (FLD (f_FRk)));
18375 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18376 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18377 }
18378}
18379
18380 return vpc;
18381#undef FLD
18382}
18383
18384/* fmas: fmas$pack $FRi,$FRj,$FRk */
18385
18386static SEM_PC
18387SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18388{
18389#define FLD(f) abuf->fields.sfmt_fdmadds.f
18390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18391 int UNUSED written = 0;
18392 IADDR UNUSED pc = abuf->addr;
18393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18394
18395{
18396 {
18397 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18398 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18399 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18400 }
18401 {
18402 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18403 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18404 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18405 }
18406}
18407
18408 return vpc;
18409#undef FLD
18410}
18411
18412/* fmss: fmss$pack $FRi,$FRj,$FRk */
18413
18414static SEM_PC
18415SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18416{
18417#define FLD(f) abuf->fields.sfmt_fdmadds.f
18418 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18419 int UNUSED written = 0;
18420 IADDR UNUSED pc = abuf->addr;
18421 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18422
18423{
18424 {
18425 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18426 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18427 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18428 }
18429 {
18430 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18431 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18432 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18433 }
18434}
18435
18436 return vpc;
18437#undef FLD
18438}
18439
18440/* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18441
18442static SEM_PC
18443SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18444{
18445#define FLD(f) abuf->fields.sfmt_fdmas.f
18446 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18447 int UNUSED written = 0;
18448 IADDR UNUSED pc = abuf->addr;
18449 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18450
18451{
18452 {
18453 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18454 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18455 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18456 }
18457 {
18458 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18459 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18460 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18461 }
18462 {
18463 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18464 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18465 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18466 }
18467 {
18468 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18469 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18470 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18471 }
18472}
18473
18474 return vpc;
18475#undef FLD
18476}
18477
18478/* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18479
18480static SEM_PC
18481SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18482{
18483#define FLD(f) abuf->fields.sfmt_fdmas.f
18484 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18485 int UNUSED written = 0;
18486 IADDR UNUSED pc = abuf->addr;
18487 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18488
18489{
18490 {
18491 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18492 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18493 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18494 }
18495 {
18496 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18497 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18498 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18499 }
18500 {
18501 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18502 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18503 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18504 }
18505 {
18506 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18507 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18508 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18509 }
18510}
18511
18512 return vpc;
18513#undef FLD
18514}
18515
18516/* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18517
18518static SEM_PC
18519SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18520{
18521#define FLD(f) abuf->fields.sfmt_fdmas.f
18522 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18523 int UNUSED written = 0;
18524 IADDR UNUSED pc = abuf->addr;
18525 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18526
18527{
18528frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18529frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18530frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18531frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18532 {
18533 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18534 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18535 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18536 }
18537 {
18538 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18539 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18540 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18541 }
18542 {
18543 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18544 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18545 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18546 }
18547 {
18548 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18549 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18550 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18551 }
18552}
18553
18554 return vpc;
18555#undef FLD
18556}
18557
18558/* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18559
18560static SEM_PC
18561SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18562{
18563#define FLD(f) abuf->fields.sfmt_fdmas.f
18564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18565 int UNUSED written = 0;
18566 IADDR UNUSED pc = abuf->addr;
18567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18568
18569{
18570frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18571frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18572frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18573frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18574 {
18575 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18576 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18577 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18578 }
18579 {
18580 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18581 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18582 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18583 }
18584 {
18585 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (2))), GET_H_FR (((FLD (f_FRj)) + (2))));
18586 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18587 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18588 }
18589 {
18590 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (3))), GET_H_FR (((FLD (f_FRj)) + (3))));
18591 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18592 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18593 }
18594}
18595
18596 return vpc;
18597#undef FLD
18598}
18599
18600/* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18601
18602static SEM_PC
18603SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18604{
18605#define FLD(f) abuf->fields.sfmt_cfmas.f
18606 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18607 int UNUSED written = 0;
18608 IADDR UNUSED pc = abuf->addr;
18609 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18610
18611if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18612{
18613 {
18614 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18615 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18616 written |= (1 << 9);
18617 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18618 }
18619 {
18620 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18621 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18622 written |= (1 << 10);
18623 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18624 }
18625}
18626}
18627
18628 abuf->written = written;
18629 return vpc;
18630#undef FLD
18631}
18632
18633/* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18634
18635static SEM_PC
18636SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18637{
18638#define FLD(f) abuf->fields.sfmt_cfmas.f
18639 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18640 int UNUSED written = 0;
18641 IADDR UNUSED pc = abuf->addr;
18642 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18643
18644if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18645{
18646 {
18647 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18648 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18649 written |= (1 << 9);
18650 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18651 }
18652 {
18653 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18654 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18655 written |= (1 << 10);
18656 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18657 }
18658}
18659}
18660
18661 abuf->written = written;
18662 return vpc;
18663#undef FLD
18664}
18665
18666/* fmad: fmad$pack $FRi,$FRj,$FRk */
18667
18668static SEM_PC
18669SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18670{
18671#define FLD(f) abuf->fields.sfmt_fdmadds.f
18672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18673 int UNUSED written = 0;
18674 IADDR UNUSED pc = abuf->addr;
18675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18676
18677{
18678 {
18679 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18680 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18681 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18682 }
18683 {
18684 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->adddf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1)))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))))));
18685 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18686 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18687 }
18688}
18689
18690 return vpc;
18691#undef FLD
18692}
18693
18694/* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18695
18696static SEM_PC
18697SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18698{
18699#define FLD(f) abuf->fields.sfmt_fdmadds.f
18700 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18701 int UNUSED written = 0;
18702 IADDR UNUSED pc = abuf->addr;
18703 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18704
18705{
18706 {
18707 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->muldf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)))));
18708 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18709 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18710 }
18711 {
18712 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->ftruncdfsf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->subdf) (CGEN_CPU_FPU (current_cpu), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1)))), (* CGEN_CPU_FPU (current_cpu)->ops->fextsfdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))))));
18713 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18714 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18715 }
18716}
18717
18718 return vpc;
18719#undef FLD
18720}
18721
18722/* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18723
18724static SEM_PC
18725SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18726{
18727#define FLD(f) abuf->fields.sfmt_fdmadds.f
18728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18729 int UNUSED written = 0;
18730 IADDR UNUSED pc = abuf->addr;
18731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18732
18733{
18734frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18735 {
18736 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18737 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18738 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18739 }
18740frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18741 {
18742 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18743 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18744 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18745 }
18746}
18747
18748 return vpc;
18749#undef FLD
18750}
18751
18752/* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18753
18754static SEM_PC
18755SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18756{
18757#define FLD(f) abuf->fields.sfmt_fdmadds.f
18758 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18759 int UNUSED written = 0;
18760 IADDR UNUSED pc = abuf->addr;
18761 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18762
18763{
18764frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18765 {
18766 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18767 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18768 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18769 }
18770frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18771 {
18772 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18773 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18774 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18775 }
18776}
18777
18778 return vpc;
18779#undef FLD
18780}
18781
18782/* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18783
18784static SEM_PC
18785SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18786{
18787#define FLD(f) abuf->fields.sfmt_fdmadds.f
18788 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18789 int UNUSED written = 0;
18790 IADDR UNUSED pc = abuf->addr;
18791 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18792
18793{
18794 {
18795 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18796 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18797 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18798 }
18799 {
18800 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18801 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18802 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18803 }
18804}
18805
18806 return vpc;
18807#undef FLD
18808}
18809
18810/* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18811
18812static SEM_PC
18813SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18814{
18815#define FLD(f) abuf->fields.sfmt_fdmadds.f
18816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18817 int UNUSED written = 0;
18818 IADDR UNUSED pc = abuf->addr;
18819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18820
18821{
18822 {
18823 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18824 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18825 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18826 }
18827 {
18828 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18829 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18830 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18831 }
18832}
18833
18834 return vpc;
18835#undef FLD
18836}
18837
18838/* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18839
18840static SEM_PC
18841SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18842{
18843#define FLD(f) abuf->fields.sfmt_fdmadds.f
18844 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18845 int UNUSED written = 0;
18846 IADDR UNUSED pc = abuf->addr;
18847 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18848
18849{
18850 {
18851 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18852 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18853 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18854 }
18855 {
18856 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18857 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18858 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18859 }
18860}
18861
18862 return vpc;
18863#undef FLD
18864}
18865
18866/* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18867
18868static SEM_PC
18869SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18870{
18871#define FLD(f) abuf->fields.sfmt_fdmadds.f
18872 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18873 int UNUSED written = 0;
18874 IADDR UNUSED pc = abuf->addr;
18875 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18876
18877{
18878 {
18879 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18880 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18881 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18882 }
18883 {
18884 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18885 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18886 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18887 }
18888}
18889
18890 return vpc;
18891#undef FLD
18892}
18893
18894/* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18895
18896static SEM_PC
18897SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18898{
18899#define FLD(f) abuf->fields.sfmt_fdmadds.f
18900 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18901 int UNUSED written = 0;
18902 IADDR UNUSED pc = abuf->addr;
18903 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18904
18905{
18906 {
18907 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18908 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18909 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18910 }
18911 {
18912 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
18913 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18914 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18915 }
18916}
18917
18918 return vpc;
18919#undef FLD
18920}
18921
18922/* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18923
18924static SEM_PC
18925SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18926{
18927#define FLD(f) abuf->fields.sfmt_fdmadds.f
18928 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18929 int UNUSED written = 0;
18930 IADDR UNUSED pc = abuf->addr;
18931 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18932
18933{
18934 {
18935 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (((FLD (f_FRj)) + (1))));
18936 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18937 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18938 }
18939 {
18940 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (FLD (f_FRj)));
18941 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18942 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18943 }
18944}
18945
18946 return vpc;
18947#undef FLD
18948}
18949
18950/* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18951
18952static SEM_PC
18953SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18954{
18955#define FLD(f) abuf->fields.sfmt_fdmadds.f
18956 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18957 int UNUSED written = 0;
18958 IADDR UNUSED pc = abuf->addr;
18959 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18960
18961{
18962frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18963 {
18964 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (((FLD (f_FRj)) + (1))));
18965 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18966 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18967 }
18968frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18969 {
18970 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (FLD (f_FRj)));
18971 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18972 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18973 }
18974}
18975
18976 return vpc;
18977#undef FLD
18978}
18979
18980/* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18981
18982static SEM_PC
18983SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18984{
18985#define FLD(f) abuf->fields.sfmt_fdmadds.f
18986 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18987 int UNUSED written = 0;
18988 IADDR UNUSED pc = abuf->addr;
18989 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18990
18991{
18992frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18993 {
18994 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
18995 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18996 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18997 }
18998frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18999 {
19000 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
19001 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19002 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19003 }
19004}
19005
19006 return vpc;
19007#undef FLD
19008}
19009
19010/* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
19011
19012static SEM_PC
19013SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19014{
19015#define FLD(f) abuf->fields.sfmt_fdmadds.f
19016 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19017 int UNUSED written = 0;
19018 IADDR UNUSED pc = abuf->addr;
19019 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19020
19021{
19022frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19023 {
19024 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
19025 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19026 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19027 }
19028frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19029 {
19030 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
19031 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19032 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19033 }
19034}
19035
19036 return vpc;
19037#undef FLD
19038}
19039
19040/* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
19041
19042static SEM_PC
19043SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19044{
19045#define FLD(f) abuf->fields.sfmt_fdmadds.f
19046 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19047 int UNUSED written = 0;
19048 IADDR UNUSED pc = abuf->addr;
19049 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19050
19051{
19052frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19053 {
19054 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
19055 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19056 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19057 }
19058frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19059 {
19060 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->mulsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
19061 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19062 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19063 }
19064}
19065
19066 return vpc;
19067#undef FLD
19068}
19069
19070/* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
19071
19072static SEM_PC
19073SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19074{
19075#define FLD(f) abuf->fields.sfmt_fdmadds.f
19076 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19077 int UNUSED written = 0;
19078 IADDR UNUSED pc = abuf->addr;
19079 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19080
19081{
19082frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19083 {
19084 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
19085 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19086 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19087 }
19088frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19089 {
19090 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->divsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
19091 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19092 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19093 }
19094}
19095
19096 return vpc;
19097#undef FLD
19098}
19099
19100/* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
19101
19102static SEM_PC
19103SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19104{
19105#define FLD(f) abuf->fields.sfmt_fdmadds.f
19106 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19107 int UNUSED written = 0;
19108 IADDR UNUSED pc = abuf->addr;
19109 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19110
19111{
19112frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19113 {
19114 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->addsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)));
19115 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
19116 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19117 }
19118frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19119 {
19120 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->subsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))));
19121 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
19122 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
19123 }
19124}
19125
19126 return vpc;
19127#undef FLD
19128}
19129
19130/* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
19131
19132static SEM_PC
19133SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19134{
19135#define FLD(f) abuf->fields.sfmt_nfdcmps.f
19136 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19137 int UNUSED written = 0;
19138 IADDR UNUSED pc = abuf->addr;
19139 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19140
19141{
19142frvbf_set_ne_index (current_cpu, FLD (f_FRk));
19143if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
19144 {
19145 UQI opval = 2;
19146 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19147 written |= (1 << 8);
19148 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19149 }
19150} else {
19151if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
19152 {
19153 UQI opval = 8;
19154 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19155 written |= (1 << 8);
19156 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19157 }
19158} else {
19159if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
19160 {
19161 UQI opval = 4;
19162 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19163 written |= (1 << 8);
19164 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19165 }
19166} else {
19167 {
19168 UQI opval = 1;
19169 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19170 written |= (1 << 8);
19171 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19172 }
19173}
19174}
19175}
19176frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19177if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
19178 {
19179 UQI opval = 2;
19180 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19181 written |= (1 << 9);
19182 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19183 }
19184} else {
19185if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
19186 {
19187 UQI opval = 8;
19188 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19189 written |= (1 << 9);
19190 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19191 }
19192} else {
19193if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRi)) + (1))), GET_H_FR (((FLD (f_FRj)) + (1))))) {
19194 {
19195 UQI opval = 4;
19196 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19197 written |= (1 << 9);
19198 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19199 }
19200} else {
19201 {
19202 UQI opval = 1;
19203 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19204 written |= (1 << 9);
19205 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19206 }
19207}
19208}
19209}
19210}
19211
19212 abuf->written = written;
19213 return vpc;
19214#undef FLD
19215}
19216
19217/* mhsetlos: mhsetlos$pack $u12,$FRklo */
19218
19219static SEM_PC
19220SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19221{
19222#define FLD(f) abuf->fields.sfmt_mhsetlos.f
19223 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19224 int UNUSED written = 0;
19225 IADDR UNUSED pc = abuf->addr;
19226 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19227
19228 {
19229 UHI opval = FLD (f_u12);
19230 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19231 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19232 }
19233
19234 return vpc;
19235#undef FLD
19236}
19237
19238/* mhsethis: mhsethis$pack $u12,$FRkhi */
19239
19240static SEM_PC
19241SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19242{
19243#define FLD(f) abuf->fields.sfmt_mhsethis.f
19244 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19245 int UNUSED written = 0;
19246 IADDR UNUSED pc = abuf->addr;
19247 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19248
19249 {
19250 UHI opval = FLD (f_u12);
19251 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19252 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19253 }
19254
19255 return vpc;
19256#undef FLD
19257}
19258
19259/* mhdsets: mhdsets$pack $u12,$FRintk */
19260
19261static SEM_PC
19262SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19263{
19264#define FLD(f) abuf->fields.sfmt_mhdsets.f
19265 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19266 int UNUSED written = 0;
19267 IADDR UNUSED pc = abuf->addr;
19268 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19269
19270{
19271 {
19272 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19273 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19274 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19275 }
19276 {
19277 UHI opval = FLD (f_u12);
19278 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19279 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19280 }
19281 {
19282 UHI opval = FLD (f_u12);
19283 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19284 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19285 }
19286}
19287
19288 return vpc;
19289#undef FLD
19290}
19291
19292/* mhsetloh: mhsetloh$pack $s5,$FRklo */
19293
19294static SEM_PC
19295SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19296{
19297#define FLD(f) abuf->fields.sfmt_mhsetloh.f
19298 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19299 int UNUSED written = 0;
19300 IADDR UNUSED pc = abuf->addr;
19301 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19302
19303{
19304 HI tmp_tmp;
19305 tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19306 tmp_tmp = ANDHI (tmp_tmp, 2047);
19307 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19308 {
19309 UHI opval = tmp_tmp;
19310 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19311 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19312 }
19313}
19314
19315 return vpc;
19316#undef FLD
19317}
19318
19319/* mhsethih: mhsethih$pack $s5,$FRkhi */
19320
19321static SEM_PC
19322SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19323{
19324#define FLD(f) abuf->fields.sfmt_mhsethih.f
19325 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19326 int UNUSED written = 0;
19327 IADDR UNUSED pc = abuf->addr;
19328 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19329
19330{
19331 HI tmp_tmp;
19332 tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19333 tmp_tmp = ANDHI (tmp_tmp, 2047);
19334 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19335 {
19336 UHI opval = tmp_tmp;
19337 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19338 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19339 }
19340}
19341
19342 return vpc;
19343#undef FLD
19344}
19345
19346/* mhdseth: mhdseth$pack $s5,$FRintk */
19347
19348static SEM_PC
19349SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19350{
19351#define FLD(f) abuf->fields.sfmt_mhdseth.f
19352 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19353 int UNUSED written = 0;
19354 IADDR UNUSED pc = abuf->addr;
19355 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19356
19357{
19358 {
19359 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19360 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19361 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19362 }
19363{
19364 HI tmp_tmp;
19365 tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19366 tmp_tmp = ANDHI (tmp_tmp, 2047);
19367 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19368 {
19369 UHI opval = tmp_tmp;
19370 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19371 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19372 }
19373}
19374{
19375 HI tmp_tmp;
19376 tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19377 tmp_tmp = ANDHI (tmp_tmp, 2047);
19378 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19379 {
19380 UHI opval = tmp_tmp;
19381 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19382 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19383 }
19384}
19385}
19386
19387 return vpc;
19388#undef FLD
19389}
19390
19391/* mand: mand$pack $FRinti,$FRintj,$FRintk */
19392
19393static SEM_PC
19394SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19395{
19396#define FLD(f) abuf->fields.sfmt_mwcut.f
19397 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19398 int UNUSED written = 0;
19399 IADDR UNUSED pc = abuf->addr;
19400 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19401
19402 {
19403 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19404 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19405 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19406 }
19407
19408 return vpc;
19409#undef FLD
19410}
19411
19412/* mor: mor$pack $FRinti,$FRintj,$FRintk */
19413
19414static SEM_PC
19415SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19416{
19417#define FLD(f) abuf->fields.sfmt_mwcut.f
19418 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19419 int UNUSED written = 0;
19420 IADDR UNUSED pc = abuf->addr;
19421 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19422
19423 {
19424 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19425 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19426 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19427 }
19428
19429 return vpc;
19430#undef FLD
19431}
19432
19433/* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19434
19435static SEM_PC
19436SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19437{
19438#define FLD(f) abuf->fields.sfmt_mwcut.f
19439 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19440 int UNUSED written = 0;
19441 IADDR UNUSED pc = abuf->addr;
19442 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19443
19444 {
19445 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19446 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19447 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19448 }
19449
19450 return vpc;
19451#undef FLD
19452}
19453
19454/* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19455
19456static SEM_PC
19457SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19458{
19459#define FLD(f) abuf->fields.sfmt_cmand.f
19460 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19461 int UNUSED written = 0;
19462 IADDR UNUSED pc = abuf->addr;
19463 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19464
19465if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19466 {
19467 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19468 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19469 written |= (1 << 4);
19470 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19471 }
19472}
19473
19474 abuf->written = written;
19475 return vpc;
19476#undef FLD
19477}
19478
19479/* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19480
19481static SEM_PC
19482SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19483{
19484#define FLD(f) abuf->fields.sfmt_cmand.f
19485 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19486 int UNUSED written = 0;
19487 IADDR UNUSED pc = abuf->addr;
19488 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19489
19490if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19491 {
19492 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19493 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19494 written |= (1 << 4);
19495 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19496 }
19497}
19498
19499 abuf->written = written;
19500 return vpc;
19501#undef FLD
19502}
19503
19504/* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19505
19506static SEM_PC
19507SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19508{
19509#define FLD(f) abuf->fields.sfmt_cmand.f
19510 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19511 int UNUSED written = 0;
19512 IADDR UNUSED pc = abuf->addr;
19513 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19514
19515if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19516 {
19517 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19518 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19519 written |= (1 << 4);
19520 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19521 }
19522}
19523
19524 abuf->written = written;
19525 return vpc;
19526#undef FLD
19527}
19528
19529/* mnot: mnot$pack $FRintj,$FRintk */
19530
19531static SEM_PC
19532SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19533{
19534#define FLD(f) abuf->fields.sfmt_mcut.f
19535 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19536 int UNUSED written = 0;
19537 IADDR UNUSED pc = abuf->addr;
19538 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19539
19540 {
19541 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19542 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19543 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19544 }
19545
19546 return vpc;
19547#undef FLD
19548}
19549
19550/* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19551
19552static SEM_PC
19553SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19554{
19555#define FLD(f) abuf->fields.sfmt_cmand.f
19556 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19557 int UNUSED written = 0;
19558 IADDR UNUSED pc = abuf->addr;
19559 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19560
19561if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19562 {
19563 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19564 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19565 written |= (1 << 3);
19566 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19567 }
19568}
19569
19570 abuf->written = written;
19571 return vpc;
19572#undef FLD
19573}
19574
19575/* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19576
19577static SEM_PC
19578SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19579{
19580#define FLD(f) abuf->fields.sfmt_mwcuti.f
19581 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19582 int UNUSED written = 0;
19583 IADDR UNUSED pc = abuf->addr;
19584 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19585
19586 {
19587 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19588 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19589 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19590 }
19591
19592 return vpc;
19593#undef FLD
19594}
19595
19596/* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19597
19598static SEM_PC
19599SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19600{
19601#define FLD(f) abuf->fields.sfmt_mwcuti.f
19602 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19603 int UNUSED written = 0;
19604 IADDR UNUSED pc = abuf->addr;
19605 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19606
19607 {
19608 SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19609 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19610 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19611 }
19612
19613 return vpc;
19614#undef FLD
19615}
19616
19617/* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19618
19619static SEM_PC
19620SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19621{
19622#define FLD(f) abuf->fields.sfmt_mwcut.f
19623 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19624 int UNUSED written = 0;
19625 IADDR UNUSED pc = abuf->addr;
19626 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19627
19628 {
19629 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), GET_H_FR_INT (FLD (f_FRj)));
19630 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19631 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19632 }
19633
19634 return vpc;
19635#undef FLD
19636}
19637
19638/* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19639
19640static SEM_PC
19641SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19642{
19643#define FLD(f) abuf->fields.sfmt_mwcuti.f
19644 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19645 int UNUSED written = 0;
19646 IADDR UNUSED pc = abuf->addr;
19647 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19648
19649 {
19650 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19651 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19652 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19653 }
19654
19655 return vpc;
19656#undef FLD
19657}
19658
19659/* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19660
19661static SEM_PC
19662SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19663{
19664#define FLD(f) abuf->fields.sfmt_mcut.f
19665 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19666 int UNUSED written = 0;
19667 IADDR UNUSED pc = abuf->addr;
19668 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19669
19670 {
19671 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19672 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19673 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19674 }
19675
19676 return vpc;
19677#undef FLD
19678}
19679
19680/* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19681
19682static SEM_PC
19683SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19684{
19685#define FLD(f) abuf->fields.sfmt_mcuti.f
19686 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19687 int UNUSED written = 0;
19688 IADDR UNUSED pc = abuf->addr;
19689 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19690
19691 {
19692 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19693 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19694 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19695 }
19696
19697 return vpc;
19698#undef FLD
19699}
19700
19701/* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19702
19703static SEM_PC
19704SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19705{
19706#define FLD(f) abuf->fields.sfmt_mcut.f
19707 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19708 int UNUSED written = 0;
19709 IADDR UNUSED pc = abuf->addr;
19710 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19711
19712 {
19713 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19714 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19715 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19716 }
19717
19718 return vpc;
19719#undef FLD
19720}
19721
19722/* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19723
19724static SEM_PC
19725SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19726{
19727#define FLD(f) abuf->fields.sfmt_mcuti.f
19728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19729 int UNUSED written = 0;
19730 IADDR UNUSED pc = abuf->addr;
19731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19732
19733 {
19734 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19735 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19736 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19737 }
19738
19739 return vpc;
19740#undef FLD
19741}
19742
19743/* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19744
19745static SEM_PC
19746SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19747{
19748#define FLD(f) abuf->fields.sfmt_mdcutssi.f
19749 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19750 int UNUSED written = 0;
19751 IADDR UNUSED pc = abuf->addr;
19752 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19753
19754if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19755frvbf_media_acc_not_aligned (current_cpu);
19756} else {
19757if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19758frvbf_media_register_not_aligned (current_cpu);
19759} else {
19760{
19761 {
19762 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19763 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19764 written |= (1 << 5);
19765 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19766 }
19767 {
19768 USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19769 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19770 written |= (1 << 6);
19771 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19772 }
19773}
19774}
19775}
19776
19777 abuf->written = written;
19778 return vpc;
19779#undef FLD
19780}
19781
19782/* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19783
19784static SEM_PC
19785SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19786{
19787#define FLD(f) abuf->fields.sfmt_mwcut.f
19788 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19789 int UNUSED written = 0;
19790 IADDR UNUSED pc = abuf->addr;
19791 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19792
19793 {
19794 SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19795 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19796 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19797 }
19798
19799 return vpc;
19800#undef FLD
19801}
19802
19803/* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19804
19805static SEM_PC
19806SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19807{
19808#define FLD(f) abuf->fields.sfmt_msllhi.f
19809 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19810 int UNUSED written = 0;
19811 IADDR UNUSED pc = abuf->addr;
19812 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19813
19814{
19815 {
19816 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19817 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19818 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19819 }
19820 {
19821 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19822 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19823 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19824 }
19825 {
19826 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19827 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19828 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19829 }
19830 {
19831 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19832 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19833 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19834 }
19835}
19836
19837 return vpc;
19838#undef FLD
19839}
19840
19841/* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19842
19843static SEM_PC
19844SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19845{
19846#define FLD(f) abuf->fields.sfmt_msllhi.f
19847 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19848 int UNUSED written = 0;
19849 IADDR UNUSED pc = abuf->addr;
19850 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19851
19852{
19853 {
19854 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19855 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19856 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19857 }
19858 {
19859 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19860 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19861 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19862 }
19863 {
19864 UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19865 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19866 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19867 }
19868 {
19869 UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19870 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19871 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19872 }
19873}
19874
19875 return vpc;
19876#undef FLD
19877}
19878
19879/* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19880
19881static SEM_PC
19882SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19883{
19884#define FLD(f) abuf->fields.sfmt_msllhi.f
19885 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19886 int UNUSED written = 0;
19887 IADDR UNUSED pc = abuf->addr;
19888 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19889
19890{
19891 {
19892 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19893 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19894 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19895 }
19896 {
19897 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19898 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19899 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19900 }
19901 {
19902 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19903 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19904 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19905 }
19906 {
19907 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19908 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19909 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19910 }
19911}
19912
19913 return vpc;
19914#undef FLD
19915}
19916
19917/* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19918
19919static SEM_PC
19920SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19921{
19922#define FLD(f) abuf->fields.sfmt_mdrotli.f
19923 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19924 int UNUSED written = 0;
19925 IADDR UNUSED pc = abuf->addr;
19926 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19927
19928if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19929frvbf_media_register_not_aligned (current_cpu);
19930} else {
19931{
19932 {
19933 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19934 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19935 written |= (1 << 5);
19936 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19937 }
19938 {
19939 USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19940 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19941 written |= (1 << 6);
19942 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19943 }
19944}
19945}
19946
19947 abuf->written = written;
19948 return vpc;
19949#undef FLD
19950}
19951
19952/* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19953
19954static SEM_PC
19955SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19956{
19957#define FLD(f) abuf->fields.sfmt_mcplhi.f
19958 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19959 int UNUSED written = 0;
19960 IADDR UNUSED pc = abuf->addr;
19961 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19962
19963{
19964 HI tmp_arg1;
19965 HI tmp_arg2;
19966 HI tmp_shift;
19967 {
19968 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19969 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19970 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19971 }
19972 {
19973 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19974 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19975 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19976 }
19977 tmp_shift = ANDSI (FLD (f_u6), 15);
19978 tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19979if (NEHI (tmp_shift, 0)) {
19980{
19981 tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19982 tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19983 tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19984}
19985}
19986 {
19987 UHI opval = tmp_arg1;
19988 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19989 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19990 }
19991}
19992
19993 return vpc;
19994#undef FLD
19995}
19996
19997/* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19998
19999static SEM_PC
20000SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20001{
20002#define FLD(f) abuf->fields.sfmt_mwcuti.f
20003 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20004 int UNUSED written = 0;
20005 IADDR UNUSED pc = abuf->addr;
20006 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20007
20008{
20009 SI tmp_tmp;
20010 SI tmp_shift;
20011 tmp_shift = ANDSI (FLD (f_u6), 31);
20012 tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
20013if (NESI (tmp_shift, 0)) {
20014{
20015 SI tmp_tmp1;
20016 tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
20017 tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
20018}
20019}
20020 {
20021 SI opval = tmp_tmp;
20022 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20023 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20024 }
20025}
20026
20027 return vpc;
20028#undef FLD
20029}
20030
20031/* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
20032
20033static SEM_PC
20034SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20035{
20036#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20037 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20038 int UNUSED written = 0;
20039 IADDR UNUSED pc = abuf->addr;
20040 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20041
20042{
20043 HI tmp_argihi;
20044 HI tmp_argilo;
20045 HI tmp_argjhi;
20046 HI tmp_argjlo;
20047{
20048 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20049 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20050 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20051 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20052}
20053if (GTHI (tmp_argihi, tmp_argjhi)) {
20054 {
20055 UHI opval = tmp_argjhi;
20056 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20057 written |= (1 << 9);
20058 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20059 }
20060} else {
20061if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20062 {
20063 UHI opval = INVHI (tmp_argjhi);
20064 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20065 written |= (1 << 9);
20066 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20067 }
20068} else {
20069 {
20070 UHI opval = tmp_argihi;
20071 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20072 written |= (1 << 9);
20073 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20074 }
20075}
20076}
20077if (GTHI (tmp_argilo, tmp_argjlo)) {
20078 {
20079 UHI opval = tmp_argjlo;
20080 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20081 written |= (1 << 10);
20082 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20083 }
20084} else {
20085if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20086 {
20087 UHI opval = INVHI (tmp_argjlo);
20088 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20089 written |= (1 << 10);
20090 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20091 }
20092} else {
20093 {
20094 UHI opval = tmp_argilo;
20095 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20096 written |= (1 << 10);
20097 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20098 }
20099}
20100}
20101}
20102
20103 abuf->written = written;
20104 return vpc;
20105#undef FLD
20106}
20107
20108/* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
20109
20110static SEM_PC
20111SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20112{
20113#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
20114 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20115 int UNUSED written = 0;
20116 IADDR UNUSED pc = abuf->addr;
20117 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20118
20119if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
20120frvbf_media_register_not_aligned (current_cpu);
20121} else {
20122{
20123 HI tmp_argihi;
20124 HI tmp_argilo;
20125 HI tmp_argjhi;
20126 HI tmp_argjlo;
20127 {
20128 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20129 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20130 written |= (1 << 14);
20131 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20132 }
20133{
20134 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20135 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20136 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20137 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20138}
20139if (GTHI (tmp_argihi, tmp_argjhi)) {
20140 {
20141 UHI opval = tmp_argjhi;
20142 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20143 written |= (1 << 15);
20144 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20145 }
20146} else {
20147if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20148 {
20149 UHI opval = INVHI (tmp_argjhi);
20150 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20151 written |= (1 << 15);
20152 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20153 }
20154} else {
20155 {
20156 UHI opval = tmp_argihi;
20157 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20158 written |= (1 << 15);
20159 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20160 }
20161}
20162}
20163if (GTHI (tmp_argilo, tmp_argjlo)) {
20164 {
20165 UHI opval = tmp_argjlo;
20166 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20167 written |= (1 << 17);
20168 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20169 }
20170} else {
20171if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20172 {
20173 UHI opval = INVHI (tmp_argjlo);
20174 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20175 written |= (1 << 17);
20176 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20177 }
20178} else {
20179 {
20180 UHI opval = tmp_argilo;
20181 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20182 written |= (1 << 17);
20183 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20184 }
20185}
20186}
20187{
20188 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20189 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20190 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20191 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20192}
20193if (GTHI (tmp_argihi, tmp_argjhi)) {
20194 {
20195 UHI opval = tmp_argjhi;
20196 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20197 written |= (1 << 16);
20198 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20199 }
20200} else {
20201if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20202 {
20203 UHI opval = INVHI (tmp_argjhi);
20204 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20205 written |= (1 << 16);
20206 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20207 }
20208} else {
20209 {
20210 UHI opval = tmp_argihi;
20211 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20212 written |= (1 << 16);
20213 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20214 }
20215}
20216}
20217if (GTHI (tmp_argilo, tmp_argjlo)) {
20218 {
20219 UHI opval = tmp_argjlo;
20220 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20221 written |= (1 << 18);
20222 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20223 }
20224} else {
20225if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20226 {
20227 UHI opval = INVHI (tmp_argjlo);
20228 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20229 written |= (1 << 18);
20230 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20231 }
20232} else {
20233 {
20234 UHI opval = tmp_argilo;
20235 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20236 written |= (1 << 18);
20237 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20238 }
20239}
20240}
20241}
20242}
20243
20244 abuf->written = written;
20245 return vpc;
20246#undef FLD
20247}
20248
20249/* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20250
20251static SEM_PC
20252SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20253{
20254#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20255 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20256 int UNUSED written = 0;
20257 IADDR UNUSED pc = abuf->addr;
20258 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20259
20260{
20261 UHI tmp_argihi;
20262 UHI tmp_argilo;
20263 UHI tmp_argjhi;
20264 UHI tmp_argjlo;
20265{
20266 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20267 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20268 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20269 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20270}
20271if (GTUHI (tmp_argihi, tmp_argjhi)) {
20272 {
20273 UHI opval = tmp_argjhi;
20274 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20275 written |= (1 << 9);
20276 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20277 }
20278} else {
20279 {
20280 UHI opval = tmp_argihi;
20281 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20282 written |= (1 << 9);
20283 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20284 }
20285}
20286if (GTUHI (tmp_argilo, tmp_argjlo)) {
20287 {
20288 UHI opval = tmp_argjlo;
20289 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20290 written |= (1 << 10);
20291 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20292 }
20293} else {
20294 {
20295 UHI opval = tmp_argilo;
20296 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20297 written |= (1 << 10);
20298 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20299 }
20300}
20301}
20302
20303 abuf->written = written;
20304 return vpc;
20305#undef FLD
20306}
20307
20308/* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20309
20310static SEM_PC
20311SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20312{
20313#define FLD(f) abuf->fields.sfmt_mcmpsh.f
20314 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20315 int UNUSED written = 0;
20316 IADDR UNUSED pc = abuf->addr;
20317 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20318
20319if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20320frvbf_media_cr_not_aligned (current_cpu);
20321} else {
20322{
20323 HI tmp_argihi;
20324 HI tmp_argilo;
20325 HI tmp_argjhi;
20326 HI tmp_argjlo;
20327{
20328 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20329 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20330 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20331 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20332}
20333if (GTHI (tmp_argihi, tmp_argjhi)) {
20334 {
20335 UQI opval = 2;
20336 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20337 written |= (1 << 9);
20338 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20339 }
20340} else {
20341if (EQHI (tmp_argihi, tmp_argjhi)) {
20342 {
20343 UQI opval = 8;
20344 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20345 written |= (1 << 9);
20346 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20347 }
20348} else {
20349if (LTHI (tmp_argihi, tmp_argjhi)) {
20350 {
20351 UQI opval = 4;
20352 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20353 written |= (1 << 9);
20354 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20355 }
20356} else {
20357 {
20358 UQI opval = 1;
20359 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20360 written |= (1 << 9);
20361 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20362 }
20363}
20364}
20365}
20366if (GTHI (tmp_argilo, tmp_argjlo)) {
20367 {
20368 UQI opval = 2;
20369 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20370 written |= (1 << 10);
20371 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20372 }
20373} else {
20374if (EQHI (tmp_argilo, tmp_argjlo)) {
20375 {
20376 UQI opval = 8;
20377 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20378 written |= (1 << 10);
20379 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20380 }
20381} else {
20382if (LTHI (tmp_argilo, tmp_argjlo)) {
20383 {
20384 UQI opval = 4;
20385 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20386 written |= (1 << 10);
20387 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20388 }
20389} else {
20390 {
20391 UQI opval = 1;
20392 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20393 written |= (1 << 10);
20394 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20395 }
20396}
20397}
20398}
20399}
20400}
20401
20402 abuf->written = written;
20403 return vpc;
20404#undef FLD
20405}
20406
20407/* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20408
20409static SEM_PC
20410SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20411{
20412#define FLD(f) abuf->fields.sfmt_mcmpsh.f
20413 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20414 int UNUSED written = 0;
20415 IADDR UNUSED pc = abuf->addr;
20416 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20417
20418if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20419frvbf_media_cr_not_aligned (current_cpu);
20420} else {
20421{
20422 UHI tmp_argihi;
20423 UHI tmp_argilo;
20424 UHI tmp_argjhi;
20425 UHI tmp_argjlo;
20426{
20427 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20428 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20429 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20430 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20431}
20432if (GTUHI (tmp_argihi, tmp_argjhi)) {
20433 {
20434 UQI opval = 2;
20435 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20436 written |= (1 << 9);
20437 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20438 }
20439} else {
20440if (EQHI (tmp_argihi, tmp_argjhi)) {
20441 {
20442 UQI opval = 8;
20443 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20444 written |= (1 << 9);
20445 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20446 }
20447} else {
20448if (LTUHI (tmp_argihi, tmp_argjhi)) {
20449 {
20450 UQI opval = 4;
20451 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20452 written |= (1 << 9);
20453 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20454 }
20455} else {
20456 {
20457 UQI opval = 1;
20458 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20459 written |= (1 << 9);
20460 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20461 }
20462}
20463}
20464}
20465if (GTUHI (tmp_argilo, tmp_argjlo)) {
20466 {
20467 UQI opval = 2;
20468 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20469 written |= (1 << 10);
20470 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20471 }
20472} else {
20473if (EQHI (tmp_argilo, tmp_argjlo)) {
20474 {
20475 UQI opval = 8;
20476 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20477 written |= (1 << 10);
20478 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20479 }
20480} else {
20481if (LTUHI (tmp_argilo, tmp_argjlo)) {
20482 {
20483 UQI opval = 4;
20484 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20485 written |= (1 << 10);
20486 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20487 }
20488} else {
20489 {
20490 UQI opval = 1;
20491 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20492 written |= (1 << 10);
20493 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20494 }
20495}
20496}
20497}
20498}
20499}
20500
20501 abuf->written = written;
20502 return vpc;
20503#undef FLD
20504}
20505
20506/* mabshs: mabshs$pack $FRintj,$FRintk */
20507
20508static SEM_PC
20509SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20510{
20511#define FLD(f) abuf->fields.sfmt_mabshs.f
20512 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20513 int UNUSED written = 0;
20514 IADDR UNUSED pc = abuf->addr;
20515 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20516
20517{
20518 HI tmp_arghi;
20519 HI tmp_arglo;
20520 {
20521 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20522 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20523 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20524 }
20525 {
20526 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20527 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20528 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20529 }
20530 tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20531 tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20532if (GTDI (ABSHI (tmp_arghi), 32767)) {
20533{
20534 {
20535 UHI opval = 32767;
20536 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20537 written |= (1 << 8);
20538 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20539 }
20540frvbf_media_overflow (current_cpu, 8);
20541}
20542} else {
20543if (LTDI (ABSHI (tmp_arghi), -32768)) {
20544{
20545 {
20546 UHI opval = -32768;
20547 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20548 written |= (1 << 8);
20549 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20550 }
20551frvbf_media_overflow (current_cpu, 8);
20552}
20553} else {
20554 {
20555 UHI opval = ABSHI (tmp_arghi);
20556 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20557 written |= (1 << 8);
20558 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20559 }
20560}
20561}
20562if (GTDI (ABSHI (tmp_arglo), 32767)) {
20563{
20564 {
20565 UHI opval = 32767;
20566 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20567 written |= (1 << 9);
20568 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20569 }
20570frvbf_media_overflow (current_cpu, 4);
20571}
20572} else {
20573if (LTDI (ABSHI (tmp_arglo), -32768)) {
20574{
20575 {
20576 UHI opval = -32768;
20577 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20578 written |= (1 << 9);
20579 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20580 }
20581frvbf_media_overflow (current_cpu, 4);
20582}
20583} else {
20584 {
20585 UHI opval = ABSHI (tmp_arglo);
20586 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20587 written |= (1 << 9);
20588 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20589 }
20590}
20591}
20592}
20593
20594 abuf->written = written;
20595 return vpc;
20596#undef FLD
20597}
20598
20599/* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20600
20601static SEM_PC
20602SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20603{
20604#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20606 int UNUSED written = 0;
20607 IADDR UNUSED pc = abuf->addr;
20608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20609
20610{
20611 HI tmp_argihi;
20612 HI tmp_argilo;
20613 HI tmp_argjhi;
20614 HI tmp_argjlo;
20615{
20616 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20617 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20618 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20619 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20620}
20621{
20622 DI tmp_tmp;
20623 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20624if (GTDI (tmp_tmp, 32767)) {
20625{
20626 {
20627 UHI opval = 32767;
20628 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20629 written |= (1 << 9);
20630 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20631 }
20632frvbf_media_overflow (current_cpu, 8);
20633}
20634} else {
20635if (LTDI (tmp_tmp, -32768)) {
20636{
20637 {
20638 UHI opval = -32768;
20639 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20640 written |= (1 << 9);
20641 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20642 }
20643frvbf_media_overflow (current_cpu, 8);
20644}
20645} else {
20646 {
20647 UHI opval = tmp_tmp;
20648 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20649 written |= (1 << 9);
20650 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20651 }
20652}
20653}
20654}
20655{
20656 DI tmp_tmp;
20657 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20658if (GTDI (tmp_tmp, 32767)) {
20659{
20660 {
20661 UHI opval = 32767;
20662 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20663 written |= (1 << 10);
20664 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20665 }
20666frvbf_media_overflow (current_cpu, 4);
20667}
20668} else {
20669if (LTDI (tmp_tmp, -32768)) {
20670{
20671 {
20672 UHI opval = -32768;
20673 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20674 written |= (1 << 10);
20675 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20676 }
20677frvbf_media_overflow (current_cpu, 4);
20678}
20679} else {
20680 {
20681 UHI opval = tmp_tmp;
20682 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20683 written |= (1 << 10);
20684 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20685 }
20686}
20687}
20688}
20689}
20690
20691 abuf->written = written;
20692 return vpc;
20693#undef FLD
20694}
20695
20696/* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20697
20698static SEM_PC
20699SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20700{
20701#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20703 int UNUSED written = 0;
20704 IADDR UNUSED pc = abuf->addr;
20705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20706
20707{
20708 UHI tmp_argihi;
20709 UHI tmp_argilo;
20710 UHI tmp_argjhi;
20711 UHI tmp_argjlo;
20712{
20713 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20714 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20715 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20716 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20717}
20718{
20719 DI tmp_tmp;
20720 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20721if (GTDI (tmp_tmp, 65535)) {
20722{
20723 {
20724 UHI opval = 65535;
20725 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20726 written |= (1 << 9);
20727 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20728 }
20729frvbf_media_overflow (current_cpu, 8);
20730}
20731} else {
20732if (LTDI (tmp_tmp, 0)) {
20733{
20734 {
20735 UHI opval = 0;
20736 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20737 written |= (1 << 9);
20738 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20739 }
20740frvbf_media_overflow (current_cpu, 8);
20741}
20742} else {
20743 {
20744 UHI opval = tmp_tmp;
20745 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20746 written |= (1 << 9);
20747 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20748 }
20749}
20750}
20751}
20752{
20753 DI tmp_tmp;
20754 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20755if (GTDI (tmp_tmp, 65535)) {
20756{
20757 {
20758 UHI opval = 65535;
20759 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20760 written |= (1 << 10);
20761 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20762 }
20763frvbf_media_overflow (current_cpu, 4);
20764}
20765} else {
20766if (LTDI (tmp_tmp, 0)) {
20767{
20768 {
20769 UHI opval = 0;
20770 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20771 written |= (1 << 10);
20772 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20773 }
20774frvbf_media_overflow (current_cpu, 4);
20775}
20776} else {
20777 {
20778 UHI opval = tmp_tmp;
20779 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20780 written |= (1 << 10);
20781 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20782 }
20783}
20784}
20785}
20786}
20787
20788 abuf->written = written;
20789 return vpc;
20790#undef FLD
20791}
20792
20793/* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20794
20795static SEM_PC
20796SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20797{
20798#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20799 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20800 int UNUSED written = 0;
20801 IADDR UNUSED pc = abuf->addr;
20802 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20803
20804{
20805 HI tmp_argihi;
20806 HI tmp_argilo;
20807 HI tmp_argjhi;
20808 HI tmp_argjlo;
20809{
20810 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20811 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20812 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20813 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20814}
20815{
20816 DI tmp_tmp;
20817 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20818if (GTDI (tmp_tmp, 32767)) {
20819{
20820 {
20821 UHI opval = 32767;
20822 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20823 written |= (1 << 9);
20824 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20825 }
20826frvbf_media_overflow (current_cpu, 8);
20827}
20828} else {
20829if (LTDI (tmp_tmp, -32768)) {
20830{
20831 {
20832 UHI opval = -32768;
20833 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20834 written |= (1 << 9);
20835 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20836 }
20837frvbf_media_overflow (current_cpu, 8);
20838}
20839} else {
20840 {
20841 UHI opval = tmp_tmp;
20842 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20843 written |= (1 << 9);
20844 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20845 }
20846}
20847}
20848}
20849{
20850 DI tmp_tmp;
20851 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20852if (GTDI (tmp_tmp, 32767)) {
20853{
20854 {
20855 UHI opval = 32767;
20856 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20857 written |= (1 << 10);
20858 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20859 }
20860frvbf_media_overflow (current_cpu, 4);
20861}
20862} else {
20863if (LTDI (tmp_tmp, -32768)) {
20864{
20865 {
20866 UHI opval = -32768;
20867 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20868 written |= (1 << 10);
20869 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20870 }
20871frvbf_media_overflow (current_cpu, 4);
20872}
20873} else {
20874 {
20875 UHI opval = tmp_tmp;
20876 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20877 written |= (1 << 10);
20878 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20879 }
20880}
20881}
20882}
20883}
20884
20885 abuf->written = written;
20886 return vpc;
20887#undef FLD
20888}
20889
20890/* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20891
20892static SEM_PC
20893SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20894{
20895#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20896 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20897 int UNUSED written = 0;
20898 IADDR UNUSED pc = abuf->addr;
20899 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20900
20901{
20902 UHI tmp_argihi;
20903 UHI tmp_argilo;
20904 UHI tmp_argjhi;
20905 UHI tmp_argjlo;
20906{
20907 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20908 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20909 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20910 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20911}
20912{
20913 DI tmp_tmp;
20914 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20915if (GTDI (tmp_tmp, 65535)) {
20916{
20917 {
20918 UHI opval = 65535;
20919 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20920 written |= (1 << 9);
20921 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20922 }
20923frvbf_media_overflow (current_cpu, 8);
20924}
20925} else {
20926if (LTDI (tmp_tmp, 0)) {
20927{
20928 {
20929 UHI opval = 0;
20930 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20931 written |= (1 << 9);
20932 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20933 }
20934frvbf_media_overflow (current_cpu, 8);
20935}
20936} else {
20937 {
20938 UHI opval = tmp_tmp;
20939 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20940 written |= (1 << 9);
20941 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20942 }
20943}
20944}
20945}
20946{
20947 DI tmp_tmp;
20948 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20949if (GTDI (tmp_tmp, 65535)) {
20950{
20951 {
20952 UHI opval = 65535;
20953 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20954 written |= (1 << 10);
20955 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20956 }
20957frvbf_media_overflow (current_cpu, 4);
20958}
20959} else {
20960if (LTDI (tmp_tmp, 0)) {
20961{
20962 {
20963 UHI opval = 0;
20964 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20965 written |= (1 << 10);
20966 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20967 }
20968frvbf_media_overflow (current_cpu, 4);
20969}
20970} else {
20971 {
20972 UHI opval = tmp_tmp;
20973 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20974 written |= (1 << 10);
20975 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20976 }
20977}
20978}
20979}
20980}
20981
20982 abuf->written = written;
20983 return vpc;
20984#undef FLD
20985}
20986
20987/* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20988
20989static SEM_PC
20990SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20991{
20992#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20993 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20994 int UNUSED written = 0;
20995 IADDR UNUSED pc = abuf->addr;
20996 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20997
20998if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20999{
21000 HI tmp_argihi;
21001 HI tmp_argilo;
21002 HI tmp_argjhi;
21003 HI tmp_argjlo;
21004{
21005 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21006 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21007 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21008 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21009}
21010{
21011 DI tmp_tmp;
21012 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21013if (GTDI (tmp_tmp, 32767)) {
21014{
21015 {
21016 UHI opval = 32767;
21017 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21018 written |= (1 << 11);
21019 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21020 }
21021frvbf_media_overflow (current_cpu, 8);
21022}
21023} else {
21024if (LTDI (tmp_tmp, -32768)) {
21025{
21026 {
21027 UHI opval = -32768;
21028 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21029 written |= (1 << 11);
21030 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21031 }
21032frvbf_media_overflow (current_cpu, 8);
21033}
21034} else {
21035 {
21036 UHI opval = tmp_tmp;
21037 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21038 written |= (1 << 11);
21039 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21040 }
21041}
21042}
21043}
21044{
21045 DI tmp_tmp;
21046 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21047if (GTDI (tmp_tmp, 32767)) {
21048{
21049 {
21050 UHI opval = 32767;
21051 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21052 written |= (1 << 12);
21053 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21054 }
21055frvbf_media_overflow (current_cpu, 4);
21056}
21057} else {
21058if (LTDI (tmp_tmp, -32768)) {
21059{
21060 {
21061 UHI opval = -32768;
21062 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21063 written |= (1 << 12);
21064 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21065 }
21066frvbf_media_overflow (current_cpu, 4);
21067}
21068} else {
21069 {
21070 UHI opval = tmp_tmp;
21071 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21072 written |= (1 << 12);
21073 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21074 }
21075}
21076}
21077}
21078}
21079}
21080
21081 abuf->written = written;
21082 return vpc;
21083#undef FLD
21084}
21085
21086/* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21087
21088static SEM_PC
21089SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21090{
21091#define FLD(f) abuf->fields.sfmt_cmaddhss.f
21092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21093 int UNUSED written = 0;
21094 IADDR UNUSED pc = abuf->addr;
21095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21096
21097if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21098{
21099 UHI tmp_argihi;
21100 UHI tmp_argilo;
21101 UHI tmp_argjhi;
21102 UHI tmp_argjlo;
21103{
21104 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21105 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21106 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21107 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21108}
21109{
21110 DI tmp_tmp;
21111 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21112if (GTDI (tmp_tmp, 65535)) {
21113{
21114 {
21115 UHI opval = 65535;
21116 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21117 written |= (1 << 11);
21118 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21119 }
21120frvbf_media_overflow (current_cpu, 8);
21121}
21122} else {
21123if (LTDI (tmp_tmp, 0)) {
21124{
21125 {
21126 UHI opval = 0;
21127 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21128 written |= (1 << 11);
21129 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21130 }
21131frvbf_media_overflow (current_cpu, 8);
21132}
21133} else {
21134 {
21135 UHI opval = tmp_tmp;
21136 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21137 written |= (1 << 11);
21138 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21139 }
21140}
21141}
21142}
21143{
21144 DI tmp_tmp;
21145 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21146if (GTDI (tmp_tmp, 65535)) {
21147{
21148 {
21149 UHI opval = 65535;
21150 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21151 written |= (1 << 12);
21152 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21153 }
21154frvbf_media_overflow (current_cpu, 4);
21155}
21156} else {
21157if (LTDI (tmp_tmp, 0)) {
21158{
21159 {
21160 UHI opval = 0;
21161 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21162 written |= (1 << 12);
21163 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21164 }
21165frvbf_media_overflow (current_cpu, 4);
21166}
21167} else {
21168 {
21169 UHI opval = tmp_tmp;
21170 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21171 written |= (1 << 12);
21172 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21173 }
21174}
21175}
21176}
21177}
21178}
21179
21180 abuf->written = written;
21181 return vpc;
21182#undef FLD
21183}
21184
21185/* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21186
21187static SEM_PC
21188SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21189{
21190#define FLD(f) abuf->fields.sfmt_cmaddhss.f
21191 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21192 int UNUSED written = 0;
21193 IADDR UNUSED pc = abuf->addr;
21194 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21195
21196if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21197{
21198 HI tmp_argihi;
21199 HI tmp_argilo;
21200 HI tmp_argjhi;
21201 HI tmp_argjlo;
21202{
21203 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21204 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21205 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21206 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21207}
21208{
21209 DI tmp_tmp;
21210 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21211if (GTDI (tmp_tmp, 32767)) {
21212{
21213 {
21214 UHI opval = 32767;
21215 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21216 written |= (1 << 11);
21217 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21218 }
21219frvbf_media_overflow (current_cpu, 8);
21220}
21221} else {
21222if (LTDI (tmp_tmp, -32768)) {
21223{
21224 {
21225 UHI opval = -32768;
21226 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21227 written |= (1 << 11);
21228 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21229 }
21230frvbf_media_overflow (current_cpu, 8);
21231}
21232} else {
21233 {
21234 UHI opval = tmp_tmp;
21235 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21236 written |= (1 << 11);
21237 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21238 }
21239}
21240}
21241}
21242{
21243 DI tmp_tmp;
21244 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21245if (GTDI (tmp_tmp, 32767)) {
21246{
21247 {
21248 UHI opval = 32767;
21249 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21250 written |= (1 << 12);
21251 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21252 }
21253frvbf_media_overflow (current_cpu, 4);
21254}
21255} else {
21256if (LTDI (tmp_tmp, -32768)) {
21257{
21258 {
21259 UHI opval = -32768;
21260 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21261 written |= (1 << 12);
21262 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21263 }
21264frvbf_media_overflow (current_cpu, 4);
21265}
21266} else {
21267 {
21268 UHI opval = tmp_tmp;
21269 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21270 written |= (1 << 12);
21271 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21272 }
21273}
21274}
21275}
21276}
21277}
21278
21279 abuf->written = written;
21280 return vpc;
21281#undef FLD
21282}
21283
21284/* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21285
21286static SEM_PC
21287SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21288{
21289#define FLD(f) abuf->fields.sfmt_cmaddhss.f
21290 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21291 int UNUSED written = 0;
21292 IADDR UNUSED pc = abuf->addr;
21293 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21294
21295if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21296{
21297 UHI tmp_argihi;
21298 UHI tmp_argilo;
21299 UHI tmp_argjhi;
21300 UHI tmp_argjlo;
21301{
21302 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21303 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21304 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21305 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21306}
21307{
21308 DI tmp_tmp;
21309 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21310if (GTDI (tmp_tmp, 65535)) {
21311{
21312 {
21313 UHI opval = 65535;
21314 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21315 written |= (1 << 11);
21316 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21317 }
21318frvbf_media_overflow (current_cpu, 8);
21319}
21320} else {
21321if (LTDI (tmp_tmp, 0)) {
21322{
21323 {
21324 UHI opval = 0;
21325 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21326 written |= (1 << 11);
21327 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21328 }
21329frvbf_media_overflow (current_cpu, 8);
21330}
21331} else {
21332 {
21333 UHI opval = tmp_tmp;
21334 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21335 written |= (1 << 11);
21336 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21337 }
21338}
21339}
21340}
21341{
21342 DI tmp_tmp;
21343 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21344if (GTDI (tmp_tmp, 65535)) {
21345{
21346 {
21347 UHI opval = 65535;
21348 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21349 written |= (1 << 12);
21350 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21351 }
21352frvbf_media_overflow (current_cpu, 4);
21353}
21354} else {
21355if (LTDI (tmp_tmp, 0)) {
21356{
21357 {
21358 UHI opval = 0;
21359 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21360 written |= (1 << 12);
21361 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21362 }
21363frvbf_media_overflow (current_cpu, 4);
21364}
21365} else {
21366 {
21367 UHI opval = tmp_tmp;
21368 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21369 written |= (1 << 12);
21370 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21371 }
21372}
21373}
21374}
21375}
21376}
21377
21378 abuf->written = written;
21379 return vpc;
21380#undef FLD
21381}
21382
21383/* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21384
21385static SEM_PC
21386SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21387{
21388#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21389 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21390 int UNUSED written = 0;
21391 IADDR UNUSED pc = abuf->addr;
21392 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21393
21394if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21395frvbf_media_register_not_aligned (current_cpu);
21396} else {
21397{
21398 HI tmp_argihi;
21399 HI tmp_argilo;
21400 HI tmp_argjhi;
21401 HI tmp_argjlo;
21402 {
21403 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21404 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21405 written |= (1 << 14);
21406 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21407 }
21408{
21409 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21410 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21411 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21412 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21413}
21414{
21415 DI tmp_tmp;
21416 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21417if (GTDI (tmp_tmp, 32767)) {
21418{
21419 {
21420 UHI opval = 32767;
21421 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21422 written |= (1 << 15);
21423 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21424 }
21425frvbf_media_overflow (current_cpu, 8);
21426}
21427} else {
21428if (LTDI (tmp_tmp, -32768)) {
21429{
21430 {
21431 UHI opval = -32768;
21432 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21433 written |= (1 << 15);
21434 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21435 }
21436frvbf_media_overflow (current_cpu, 8);
21437}
21438} else {
21439 {
21440 UHI opval = tmp_tmp;
21441 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21442 written |= (1 << 15);
21443 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21444 }
21445}
21446}
21447}
21448{
21449 DI tmp_tmp;
21450 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21451if (GTDI (tmp_tmp, 32767)) {
21452{
21453 {
21454 UHI opval = 32767;
21455 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21456 written |= (1 << 17);
21457 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21458 }
21459frvbf_media_overflow (current_cpu, 4);
21460}
21461} else {
21462if (LTDI (tmp_tmp, -32768)) {
21463{
21464 {
21465 UHI opval = -32768;
21466 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21467 written |= (1 << 17);
21468 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21469 }
21470frvbf_media_overflow (current_cpu, 4);
21471}
21472} else {
21473 {
21474 UHI opval = tmp_tmp;
21475 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21476 written |= (1 << 17);
21477 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21478 }
21479}
21480}
21481}
21482{
21483 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21484 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21485 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21486 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21487}
21488{
21489 DI tmp_tmp;
21490 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21491if (GTDI (tmp_tmp, 32767)) {
21492{
21493 {
21494 UHI opval = 32767;
21495 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21496 written |= (1 << 16);
21497 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21498 }
21499frvbf_media_overflow (current_cpu, 2);
21500}
21501} else {
21502if (LTDI (tmp_tmp, -32768)) {
21503{
21504 {
21505 UHI opval = -32768;
21506 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21507 written |= (1 << 16);
21508 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21509 }
21510frvbf_media_overflow (current_cpu, 2);
21511}
21512} else {
21513 {
21514 UHI opval = tmp_tmp;
21515 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21516 written |= (1 << 16);
21517 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21518 }
21519}
21520}
21521}
21522{
21523 DI tmp_tmp;
21524 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21525if (GTDI (tmp_tmp, 32767)) {
21526{
21527 {
21528 UHI opval = 32767;
21529 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21530 written |= (1 << 18);
21531 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21532 }
21533frvbf_media_overflow (current_cpu, 1);
21534}
21535} else {
21536if (LTDI (tmp_tmp, -32768)) {
21537{
21538 {
21539 UHI opval = -32768;
21540 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21541 written |= (1 << 18);
21542 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21543 }
21544frvbf_media_overflow (current_cpu, 1);
21545}
21546} else {
21547 {
21548 UHI opval = tmp_tmp;
21549 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21550 written |= (1 << 18);
21551 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21552 }
21553}
21554}
21555}
21556}
21557}
21558
21559 abuf->written = written;
21560 return vpc;
21561#undef FLD
21562}
21563
21564/* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21565
21566static SEM_PC
21567SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21568{
21569#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21571 int UNUSED written = 0;
21572 IADDR UNUSED pc = abuf->addr;
21573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21574
21575if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21576frvbf_media_register_not_aligned (current_cpu);
21577} else {
21578{
21579 UHI tmp_argihi;
21580 UHI tmp_argilo;
21581 UHI tmp_argjhi;
21582 UHI tmp_argjlo;
21583 {
21584 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21585 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21586 written |= (1 << 14);
21587 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21588 }
21589{
21590 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21591 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21592 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21593 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21594}
21595{
21596 DI tmp_tmp;
21597 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21598if (GTDI (tmp_tmp, 65535)) {
21599{
21600 {
21601 UHI opval = 65535;
21602 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21603 written |= (1 << 15);
21604 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21605 }
21606frvbf_media_overflow (current_cpu, 8);
21607}
21608} else {
21609if (LTDI (tmp_tmp, 0)) {
21610{
21611 {
21612 UHI opval = 0;
21613 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21614 written |= (1 << 15);
21615 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21616 }
21617frvbf_media_overflow (current_cpu, 8);
21618}
21619} else {
21620 {
21621 UHI opval = tmp_tmp;
21622 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21623 written |= (1 << 15);
21624 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21625 }
21626}
21627}
21628}
21629{
21630 DI tmp_tmp;
21631 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21632if (GTDI (tmp_tmp, 65535)) {
21633{
21634 {
21635 UHI opval = 65535;
21636 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21637 written |= (1 << 17);
21638 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21639 }
21640frvbf_media_overflow (current_cpu, 4);
21641}
21642} else {
21643if (LTDI (tmp_tmp, 0)) {
21644{
21645 {
21646 UHI opval = 0;
21647 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21648 written |= (1 << 17);
21649 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21650 }
21651frvbf_media_overflow (current_cpu, 4);
21652}
21653} else {
21654 {
21655 UHI opval = tmp_tmp;
21656 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21657 written |= (1 << 17);
21658 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21659 }
21660}
21661}
21662}
21663{
21664 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21665 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21666 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21667 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21668}
21669{
21670 DI tmp_tmp;
21671 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21672if (GTDI (tmp_tmp, 65535)) {
21673{
21674 {
21675 UHI opval = 65535;
21676 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21677 written |= (1 << 16);
21678 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21679 }
21680frvbf_media_overflow (current_cpu, 2);
21681}
21682} else {
21683if (LTDI (tmp_tmp, 0)) {
21684{
21685 {
21686 UHI opval = 0;
21687 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21688 written |= (1 << 16);
21689 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21690 }
21691frvbf_media_overflow (current_cpu, 2);
21692}
21693} else {
21694 {
21695 UHI opval = tmp_tmp;
21696 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21697 written |= (1 << 16);
21698 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21699 }
21700}
21701}
21702}
21703{
21704 DI tmp_tmp;
21705 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21706if (GTDI (tmp_tmp, 65535)) {
21707{
21708 {
21709 UHI opval = 65535;
21710 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21711 written |= (1 << 18);
21712 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21713 }
21714frvbf_media_overflow (current_cpu, 1);
21715}
21716} else {
21717if (LTDI (tmp_tmp, 0)) {
21718{
21719 {
21720 UHI opval = 0;
21721 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21722 written |= (1 << 18);
21723 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21724 }
21725frvbf_media_overflow (current_cpu, 1);
21726}
21727} else {
21728 {
21729 UHI opval = tmp_tmp;
21730 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21731 written |= (1 << 18);
21732 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21733 }
21734}
21735}
21736}
21737}
21738}
21739
21740 abuf->written = written;
21741 return vpc;
21742#undef FLD
21743}
21744
21745/* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21746
21747static SEM_PC
21748SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21749{
21750#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21751 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21752 int UNUSED written = 0;
21753 IADDR UNUSED pc = abuf->addr;
21754 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21755
21756if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21757frvbf_media_register_not_aligned (current_cpu);
21758} else {
21759{
21760 HI tmp_argihi;
21761 HI tmp_argilo;
21762 HI tmp_argjhi;
21763 HI tmp_argjlo;
21764 {
21765 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21766 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21767 written |= (1 << 14);
21768 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21769 }
21770{
21771 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21772 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21773 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21774 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21775}
21776{
21777 DI tmp_tmp;
21778 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21779if (GTDI (tmp_tmp, 32767)) {
21780{
21781 {
21782 UHI opval = 32767;
21783 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21784 written |= (1 << 15);
21785 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21786 }
21787frvbf_media_overflow (current_cpu, 8);
21788}
21789} else {
21790if (LTDI (tmp_tmp, -32768)) {
21791{
21792 {
21793 UHI opval = -32768;
21794 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21795 written |= (1 << 15);
21796 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21797 }
21798frvbf_media_overflow (current_cpu, 8);
21799}
21800} else {
21801 {
21802 UHI opval = tmp_tmp;
21803 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21804 written |= (1 << 15);
21805 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21806 }
21807}
21808}
21809}
21810{
21811 DI tmp_tmp;
21812 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21813if (GTDI (tmp_tmp, 32767)) {
21814{
21815 {
21816 UHI opval = 32767;
21817 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21818 written |= (1 << 17);
21819 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21820 }
21821frvbf_media_overflow (current_cpu, 4);
21822}
21823} else {
21824if (LTDI (tmp_tmp, -32768)) {
21825{
21826 {
21827 UHI opval = -32768;
21828 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21829 written |= (1 << 17);
21830 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21831 }
21832frvbf_media_overflow (current_cpu, 4);
21833}
21834} else {
21835 {
21836 UHI opval = tmp_tmp;
21837 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21838 written |= (1 << 17);
21839 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21840 }
21841}
21842}
21843}
21844{
21845 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21846 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21847 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21848 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21849}
21850{
21851 DI tmp_tmp;
21852 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21853if (GTDI (tmp_tmp, 32767)) {
21854{
21855 {
21856 UHI opval = 32767;
21857 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21858 written |= (1 << 16);
21859 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21860 }
21861frvbf_media_overflow (current_cpu, 2);
21862}
21863} else {
21864if (LTDI (tmp_tmp, -32768)) {
21865{
21866 {
21867 UHI opval = -32768;
21868 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21869 written |= (1 << 16);
21870 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21871 }
21872frvbf_media_overflow (current_cpu, 2);
21873}
21874} else {
21875 {
21876 UHI opval = tmp_tmp;
21877 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21878 written |= (1 << 16);
21879 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21880 }
21881}
21882}
21883}
21884{
21885 DI tmp_tmp;
21886 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21887if (GTDI (tmp_tmp, 32767)) {
21888{
21889 {
21890 UHI opval = 32767;
21891 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21892 written |= (1 << 18);
21893 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21894 }
21895frvbf_media_overflow (current_cpu, 1);
21896}
21897} else {
21898if (LTDI (tmp_tmp, -32768)) {
21899{
21900 {
21901 UHI opval = -32768;
21902 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21903 written |= (1 << 18);
21904 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21905 }
21906frvbf_media_overflow (current_cpu, 1);
21907}
21908} else {
21909 {
21910 UHI opval = tmp_tmp;
21911 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21912 written |= (1 << 18);
21913 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21914 }
21915}
21916}
21917}
21918}
21919}
21920
21921 abuf->written = written;
21922 return vpc;
21923#undef FLD
21924}
21925
21926/* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21927
21928static SEM_PC
21929SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21930{
21931#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21932 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21933 int UNUSED written = 0;
21934 IADDR UNUSED pc = abuf->addr;
21935 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21936
21937if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21938frvbf_media_register_not_aligned (current_cpu);
21939} else {
21940{
21941 UHI tmp_argihi;
21942 UHI tmp_argilo;
21943 UHI tmp_argjhi;
21944 UHI tmp_argjlo;
21945 {
21946 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21947 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21948 written |= (1 << 14);
21949 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21950 }
21951{
21952 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21953 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21954 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21955 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21956}
21957{
21958 DI tmp_tmp;
21959 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21960if (GTDI (tmp_tmp, 65535)) {
21961{
21962 {
21963 UHI opval = 65535;
21964 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21965 written |= (1 << 15);
21966 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21967 }
21968frvbf_media_overflow (current_cpu, 8);
21969}
21970} else {
21971if (LTDI (tmp_tmp, 0)) {
21972{
21973 {
21974 UHI opval = 0;
21975 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21976 written |= (1 << 15);
21977 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21978 }
21979frvbf_media_overflow (current_cpu, 8);
21980}
21981} else {
21982 {
21983 UHI opval = tmp_tmp;
21984 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21985 written |= (1 << 15);
21986 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21987 }
21988}
21989}
21990}
21991{
21992 DI tmp_tmp;
21993 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21994if (GTDI (tmp_tmp, 65535)) {
21995{
21996 {
21997 UHI opval = 65535;
21998 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21999 written |= (1 << 17);
22000 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22001 }
22002frvbf_media_overflow (current_cpu, 4);
22003}
22004} else {
22005if (LTDI (tmp_tmp, 0)) {
22006{
22007 {
22008 UHI opval = 0;
22009 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22010 written |= (1 << 17);
22011 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22012 }
22013frvbf_media_overflow (current_cpu, 4);
22014}
22015} else {
22016 {
22017 UHI opval = tmp_tmp;
22018 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22019 written |= (1 << 17);
22020 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22021 }
22022}
22023}
22024}
22025{
22026 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22027 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22028 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22029 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22030}
22031{
22032 DI tmp_tmp;
22033 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22034if (GTDI (tmp_tmp, 65535)) {
22035{
22036 {
22037 UHI opval = 65535;
22038 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22039 written |= (1 << 16);
22040 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22041 }
22042frvbf_media_overflow (current_cpu, 2);
22043}
22044} else {
22045if (LTDI (tmp_tmp, 0)) {
22046{
22047 {
22048 UHI opval = 0;
22049 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22050 written |= (1 << 16);
22051 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22052 }
22053frvbf_media_overflow (current_cpu, 2);
22054}
22055} else {
22056 {
22057 UHI opval = tmp_tmp;
22058 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22059 written |= (1 << 16);
22060 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22061 }
22062}
22063}
22064}
22065{
22066 DI tmp_tmp;
22067 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22068if (GTDI (tmp_tmp, 65535)) {
22069{
22070 {
22071 UHI opval = 65535;
22072 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22073 written |= (1 << 18);
22074 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22075 }
22076frvbf_media_overflow (current_cpu, 1);
22077}
22078} else {
22079if (LTDI (tmp_tmp, 0)) {
22080{
22081 {
22082 UHI opval = 0;
22083 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22084 written |= (1 << 18);
22085 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22086 }
22087frvbf_media_overflow (current_cpu, 1);
22088}
22089} else {
22090 {
22091 UHI opval = tmp_tmp;
22092 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22093 written |= (1 << 18);
22094 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22095 }
22096}
22097}
22098}
22099}
22100}
22101
22102 abuf->written = written;
22103 return vpc;
22104#undef FLD
22105}
22106
22107/* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22108
22109static SEM_PC
22110SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22111{
22112#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22113 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22114 int UNUSED written = 0;
22115 IADDR UNUSED pc = abuf->addr;
22116 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22117
22118if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22119frvbf_media_register_not_aligned (current_cpu);
22120} else {
22121if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22122{
22123 HI tmp_argihi;
22124 HI tmp_argilo;
22125 HI tmp_argjhi;
22126 HI tmp_argjlo;
22127 {
22128 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22129 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22130 written |= (1 << 16);
22131 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22132 }
22133{
22134 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22135 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22136 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22137 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22138}
22139{
22140 DI tmp_tmp;
22141 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22142if (GTDI (tmp_tmp, 32767)) {
22143{
22144 {
22145 UHI opval = 32767;
22146 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22147 written |= (1 << 17);
22148 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22149 }
22150frvbf_media_overflow (current_cpu, 8);
22151}
22152} else {
22153if (LTDI (tmp_tmp, -32768)) {
22154{
22155 {
22156 UHI opval = -32768;
22157 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22158 written |= (1 << 17);
22159 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22160 }
22161frvbf_media_overflow (current_cpu, 8);
22162}
22163} else {
22164 {
22165 UHI opval = tmp_tmp;
22166 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22167 written |= (1 << 17);
22168 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22169 }
22170}
22171}
22172}
22173{
22174 DI tmp_tmp;
22175 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22176if (GTDI (tmp_tmp, 32767)) {
22177{
22178 {
22179 UHI opval = 32767;
22180 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22181 written |= (1 << 19);
22182 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22183 }
22184frvbf_media_overflow (current_cpu, 4);
22185}
22186} else {
22187if (LTDI (tmp_tmp, -32768)) {
22188{
22189 {
22190 UHI opval = -32768;
22191 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22192 written |= (1 << 19);
22193 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22194 }
22195frvbf_media_overflow (current_cpu, 4);
22196}
22197} else {
22198 {
22199 UHI opval = tmp_tmp;
22200 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22201 written |= (1 << 19);
22202 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22203 }
22204}
22205}
22206}
22207{
22208 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22209 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22210 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22211 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22212}
22213{
22214 DI tmp_tmp;
22215 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22216if (GTDI (tmp_tmp, 32767)) {
22217{
22218 {
22219 UHI opval = 32767;
22220 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22221 written |= (1 << 18);
22222 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22223 }
22224frvbf_media_overflow (current_cpu, 2);
22225}
22226} else {
22227if (LTDI (tmp_tmp, -32768)) {
22228{
22229 {
22230 UHI opval = -32768;
22231 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22232 written |= (1 << 18);
22233 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22234 }
22235frvbf_media_overflow (current_cpu, 2);
22236}
22237} else {
22238 {
22239 UHI opval = tmp_tmp;
22240 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22241 written |= (1 << 18);
22242 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22243 }
22244}
22245}
22246}
22247{
22248 DI tmp_tmp;
22249 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22250if (GTDI (tmp_tmp, 32767)) {
22251{
22252 {
22253 UHI opval = 32767;
22254 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22255 written |= (1 << 20);
22256 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22257 }
22258frvbf_media_overflow (current_cpu, 1);
22259}
22260} else {
22261if (LTDI (tmp_tmp, -32768)) {
22262{
22263 {
22264 UHI opval = -32768;
22265 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22266 written |= (1 << 20);
22267 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22268 }
22269frvbf_media_overflow (current_cpu, 1);
22270}
22271} else {
22272 {
22273 UHI opval = tmp_tmp;
22274 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22275 written |= (1 << 20);
22276 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22277 }
22278}
22279}
22280}
22281}
22282}
22283}
22284
22285 abuf->written = written;
22286 return vpc;
22287#undef FLD
22288}
22289
22290/* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22291
22292static SEM_PC
22293SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22294{
22295#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22296 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22297 int UNUSED written = 0;
22298 IADDR UNUSED pc = abuf->addr;
22299 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22300
22301if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22302frvbf_media_register_not_aligned (current_cpu);
22303} else {
22304if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22305{
22306 UHI tmp_argihi;
22307 UHI tmp_argilo;
22308 UHI tmp_argjhi;
22309 UHI tmp_argjlo;
22310 {
22311 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22312 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22313 written |= (1 << 16);
22314 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22315 }
22316{
22317 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22318 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22319 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22320 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22321}
22322{
22323 DI tmp_tmp;
22324 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22325if (GTDI (tmp_tmp, 65535)) {
22326{
22327 {
22328 UHI opval = 65535;
22329 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22330 written |= (1 << 17);
22331 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22332 }
22333frvbf_media_overflow (current_cpu, 8);
22334}
22335} else {
22336if (LTDI (tmp_tmp, 0)) {
22337{
22338 {
22339 UHI opval = 0;
22340 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22341 written |= (1 << 17);
22342 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22343 }
22344frvbf_media_overflow (current_cpu, 8);
22345}
22346} else {
22347 {
22348 UHI opval = tmp_tmp;
22349 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22350 written |= (1 << 17);
22351 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22352 }
22353}
22354}
22355}
22356{
22357 DI tmp_tmp;
22358 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22359if (GTDI (tmp_tmp, 65535)) {
22360{
22361 {
22362 UHI opval = 65535;
22363 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22364 written |= (1 << 19);
22365 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22366 }
22367frvbf_media_overflow (current_cpu, 4);
22368}
22369} else {
22370if (LTDI (tmp_tmp, 0)) {
22371{
22372 {
22373 UHI opval = 0;
22374 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22375 written |= (1 << 19);
22376 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22377 }
22378frvbf_media_overflow (current_cpu, 4);
22379}
22380} else {
22381 {
22382 UHI opval = tmp_tmp;
22383 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22384 written |= (1 << 19);
22385 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22386 }
22387}
22388}
22389}
22390{
22391 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22392 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22393 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22394 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22395}
22396{
22397 DI tmp_tmp;
22398 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22399if (GTDI (tmp_tmp, 65535)) {
22400{
22401 {
22402 UHI opval = 65535;
22403 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22404 written |= (1 << 18);
22405 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22406 }
22407frvbf_media_overflow (current_cpu, 2);
22408}
22409} else {
22410if (LTDI (tmp_tmp, 0)) {
22411{
22412 {
22413 UHI opval = 0;
22414 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22415 written |= (1 << 18);
22416 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22417 }
22418frvbf_media_overflow (current_cpu, 2);
22419}
22420} else {
22421 {
22422 UHI opval = tmp_tmp;
22423 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22424 written |= (1 << 18);
22425 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22426 }
22427}
22428}
22429}
22430{
22431 DI tmp_tmp;
22432 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22433if (GTDI (tmp_tmp, 65535)) {
22434{
22435 {
22436 UHI opval = 65535;
22437 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22438 written |= (1 << 20);
22439 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22440 }
22441frvbf_media_overflow (current_cpu, 1);
22442}
22443} else {
22444if (LTDI (tmp_tmp, 0)) {
22445{
22446 {
22447 UHI opval = 0;
22448 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22449 written |= (1 << 20);
22450 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22451 }
22452frvbf_media_overflow (current_cpu, 1);
22453}
22454} else {
22455 {
22456 UHI opval = tmp_tmp;
22457 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22458 written |= (1 << 20);
22459 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22460 }
22461}
22462}
22463}
22464}
22465}
22466}
22467
22468 abuf->written = written;
22469 return vpc;
22470#undef FLD
22471}
22472
22473/* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22474
22475static SEM_PC
22476SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22477{
22478#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22480 int UNUSED written = 0;
22481 IADDR UNUSED pc = abuf->addr;
22482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22483
22484if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22485frvbf_media_register_not_aligned (current_cpu);
22486} else {
22487if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22488{
22489 HI tmp_argihi;
22490 HI tmp_argilo;
22491 HI tmp_argjhi;
22492 HI tmp_argjlo;
22493 {
22494 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22495 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22496 written |= (1 << 16);
22497 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22498 }
22499{
22500 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22501 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22502 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22503 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22504}
22505{
22506 DI tmp_tmp;
22507 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22508if (GTDI (tmp_tmp, 32767)) {
22509{
22510 {
22511 UHI opval = 32767;
22512 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22513 written |= (1 << 17);
22514 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22515 }
22516frvbf_media_overflow (current_cpu, 8);
22517}
22518} else {
22519if (LTDI (tmp_tmp, -32768)) {
22520{
22521 {
22522 UHI opval = -32768;
22523 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22524 written |= (1 << 17);
22525 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22526 }
22527frvbf_media_overflow (current_cpu, 8);
22528}
22529} else {
22530 {
22531 UHI opval = tmp_tmp;
22532 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22533 written |= (1 << 17);
22534 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22535 }
22536}
22537}
22538}
22539{
22540 DI tmp_tmp;
22541 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22542if (GTDI (tmp_tmp, 32767)) {
22543{
22544 {
22545 UHI opval = 32767;
22546 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22547 written |= (1 << 19);
22548 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22549 }
22550frvbf_media_overflow (current_cpu, 4);
22551}
22552} else {
22553if (LTDI (tmp_tmp, -32768)) {
22554{
22555 {
22556 UHI opval = -32768;
22557 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22558 written |= (1 << 19);
22559 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22560 }
22561frvbf_media_overflow (current_cpu, 4);
22562}
22563} else {
22564 {
22565 UHI opval = tmp_tmp;
22566 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22567 written |= (1 << 19);
22568 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22569 }
22570}
22571}
22572}
22573{
22574 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22575 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22576 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22577 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22578}
22579{
22580 DI tmp_tmp;
22581 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22582if (GTDI (tmp_tmp, 32767)) {
22583{
22584 {
22585 UHI opval = 32767;
22586 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22587 written |= (1 << 18);
22588 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22589 }
22590frvbf_media_overflow (current_cpu, 2);
22591}
22592} else {
22593if (LTDI (tmp_tmp, -32768)) {
22594{
22595 {
22596 UHI opval = -32768;
22597 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22598 written |= (1 << 18);
22599 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22600 }
22601frvbf_media_overflow (current_cpu, 2);
22602}
22603} else {
22604 {
22605 UHI opval = tmp_tmp;
22606 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22607 written |= (1 << 18);
22608 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22609 }
22610}
22611}
22612}
22613{
22614 DI tmp_tmp;
22615 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22616if (GTDI (tmp_tmp, 32767)) {
22617{
22618 {
22619 UHI opval = 32767;
22620 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22621 written |= (1 << 20);
22622 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22623 }
22624frvbf_media_overflow (current_cpu, 1);
22625}
22626} else {
22627if (LTDI (tmp_tmp, -32768)) {
22628{
22629 {
22630 UHI opval = -32768;
22631 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22632 written |= (1 << 20);
22633 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22634 }
22635frvbf_media_overflow (current_cpu, 1);
22636}
22637} else {
22638 {
22639 UHI opval = tmp_tmp;
22640 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22641 written |= (1 << 20);
22642 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22643 }
22644}
22645}
22646}
22647}
22648}
22649}
22650
22651 abuf->written = written;
22652 return vpc;
22653#undef FLD
22654}
22655
22656/* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22657
22658static SEM_PC
22659SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22660{
22661#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22662 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22663 int UNUSED written = 0;
22664 IADDR UNUSED pc = abuf->addr;
22665 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22666
22667if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22668frvbf_media_register_not_aligned (current_cpu);
22669} else {
22670if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22671{
22672 UHI tmp_argihi;
22673 UHI tmp_argilo;
22674 UHI tmp_argjhi;
22675 UHI tmp_argjlo;
22676 {
22677 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22678 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22679 written |= (1 << 16);
22680 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22681 }
22682{
22683 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22684 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22685 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22686 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22687}
22688{
22689 DI tmp_tmp;
22690 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22691if (GTDI (tmp_tmp, 65535)) {
22692{
22693 {
22694 UHI opval = 65535;
22695 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22696 written |= (1 << 17);
22697 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22698 }
22699frvbf_media_overflow (current_cpu, 8);
22700}
22701} else {
22702if (LTDI (tmp_tmp, 0)) {
22703{
22704 {
22705 UHI opval = 0;
22706 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22707 written |= (1 << 17);
22708 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22709 }
22710frvbf_media_overflow (current_cpu, 8);
22711}
22712} else {
22713 {
22714 UHI opval = tmp_tmp;
22715 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22716 written |= (1 << 17);
22717 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22718 }
22719}
22720}
22721}
22722{
22723 DI tmp_tmp;
22724 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22725if (GTDI (tmp_tmp, 65535)) {
22726{
22727 {
22728 UHI opval = 65535;
22729 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22730 written |= (1 << 19);
22731 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22732 }
22733frvbf_media_overflow (current_cpu, 4);
22734}
22735} else {
22736if (LTDI (tmp_tmp, 0)) {
22737{
22738 {
22739 UHI opval = 0;
22740 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22741 written |= (1 << 19);
22742 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22743 }
22744frvbf_media_overflow (current_cpu, 4);
22745}
22746} else {
22747 {
22748 UHI opval = tmp_tmp;
22749 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22750 written |= (1 << 19);
22751 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22752 }
22753}
22754}
22755}
22756{
22757 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22758 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22759 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22760 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22761}
22762{
22763 DI tmp_tmp;
22764 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22765if (GTDI (tmp_tmp, 65535)) {
22766{
22767 {
22768 UHI opval = 65535;
22769 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22770 written |= (1 << 18);
22771 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22772 }
22773frvbf_media_overflow (current_cpu, 2);
22774}
22775} else {
22776if (LTDI (tmp_tmp, 0)) {
22777{
22778 {
22779 UHI opval = 0;
22780 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22781 written |= (1 << 18);
22782 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22783 }
22784frvbf_media_overflow (current_cpu, 2);
22785}
22786} else {
22787 {
22788 UHI opval = tmp_tmp;
22789 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22790 written |= (1 << 18);
22791 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22792 }
22793}
22794}
22795}
22796{
22797 DI tmp_tmp;
22798 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22799if (GTDI (tmp_tmp, 65535)) {
22800{
22801 {
22802 UHI opval = 65535;
22803 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22804 written |= (1 << 20);
22805 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22806 }
22807frvbf_media_overflow (current_cpu, 1);
22808}
22809} else {
22810if (LTDI (tmp_tmp, 0)) {
22811{
22812 {
22813 UHI opval = 0;
22814 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22815 written |= (1 << 20);
22816 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22817 }
22818frvbf_media_overflow (current_cpu, 1);
22819}
22820} else {
22821 {
22822 UHI opval = tmp_tmp;
22823 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22824 written |= (1 << 20);
22825 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22826 }
22827}
22828}
22829}
22830}
22831}
22832}
22833
22834 abuf->written = written;
22835 return vpc;
22836#undef FLD
22837}
22838
22839/* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22840
22841static SEM_PC
22842SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22843{
22844#define FLD(f) abuf->fields.sfmt_mdasaccs.f
22845 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22846 int UNUSED written = 0;
22847 IADDR UNUSED pc = abuf->addr;
22848 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22849
e930b1f5
DB
22850if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22851if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
22852if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22853frvbf_media_acc_not_aligned (current_cpu);
22854} else {
22855{
22856 DI tmp_tmp;
22857 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22858if (GTDI (tmp_tmp, 549755813887)) {
22859{
22860 {
22861 DI opval = 549755813887;
22862 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 22863 written |= (1 << 4);
b34f6357
DB
22864 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22865 }
22866frvbf_media_overflow (current_cpu, 8);
22867}
22868} else {
22869if (LTDI (tmp_tmp, INVDI (549755813887))) {
22870{
22871 {
22872 DI opval = INVDI (549755813887);
22873 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 22874 written |= (1 << 4);
b34f6357
DB
22875 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22876 }
22877frvbf_media_overflow (current_cpu, 8);
22878}
22879} else {
22880 {
22881 DI opval = tmp_tmp;
22882 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 22883 written |= (1 << 4);
b34f6357
DB
22884 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22885 }
22886}
22887}
22888}
e930b1f5
DB
22889}
22890}
b34f6357
DB
22891}
22892
22893 abuf->written = written;
22894 return vpc;
22895#undef FLD
22896}
22897
22898/* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22899
22900static SEM_PC
22901SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22902{
22903#define FLD(f) abuf->fields.sfmt_mdasaccs.f
22904 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22905 int UNUSED written = 0;
22906 IADDR UNUSED pc = abuf->addr;
22907 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22908
e930b1f5
DB
22909if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22910if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
22911if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22912frvbf_media_acc_not_aligned (current_cpu);
22913} else {
22914{
22915 DI tmp_tmp;
22916 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22917if (GTDI (tmp_tmp, 549755813887)) {
22918{
22919 {
22920 DI opval = 549755813887;
22921 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 22922 written |= (1 << 4);
b34f6357
DB
22923 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22924 }
22925frvbf_media_overflow (current_cpu, 8);
22926}
22927} else {
22928if (LTDI (tmp_tmp, INVDI (549755813887))) {
22929{
22930 {
22931 DI opval = INVDI (549755813887);
22932 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 22933 written |= (1 << 4);
b34f6357
DB
22934 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22935 }
22936frvbf_media_overflow (current_cpu, 8);
22937}
22938} else {
22939 {
22940 DI opval = tmp_tmp;
22941 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 22942 written |= (1 << 4);
b34f6357
DB
22943 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22944 }
22945}
22946}
22947}
e930b1f5
DB
22948}
22949}
b34f6357
DB
22950}
22951
22952 abuf->written = written;
22953 return vpc;
22954#undef FLD
22955}
22956
22957/* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22958
22959static SEM_PC
22960SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22961{
22962#define FLD(f) abuf->fields.sfmt_mdasaccs.f
22963 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22964 int UNUSED written = 0;
22965 IADDR UNUSED pc = abuf->addr;
22966 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22967
e930b1f5
DB
22968if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
22969if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
22970if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22971frvbf_media_acc_not_aligned (current_cpu);
22972} else {
22973if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22974frvbf_media_acc_not_aligned (current_cpu);
22975} else {
22976{
22977{
22978 DI tmp_tmp;
22979 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22980if (GTDI (tmp_tmp, 549755813887)) {
22981{
22982 {
22983 DI opval = 549755813887;
22984 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22985 written |= (1 << 6);
22986 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22987 }
22988frvbf_media_overflow (current_cpu, 8);
22989}
22990} else {
22991if (LTDI (tmp_tmp, INVDI (549755813887))) {
22992{
22993 {
22994 DI opval = INVDI (549755813887);
22995 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22996 written |= (1 << 6);
22997 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22998 }
22999frvbf_media_overflow (current_cpu, 8);
23000}
23001} else {
23002 {
23003 DI opval = tmp_tmp;
23004 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23005 written |= (1 << 6);
23006 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23007 }
23008}
23009}
23010}
23011{
23012 DI tmp_tmp;
23013 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23014if (GTDI (tmp_tmp, 549755813887)) {
23015{
23016 {
23017 DI opval = 549755813887;
23018 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23019 written |= (1 << 7);
23020 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23021 }
23022frvbf_media_overflow (current_cpu, 4);
23023}
23024} else {
23025if (LTDI (tmp_tmp, INVDI (549755813887))) {
23026{
23027 {
23028 DI opval = INVDI (549755813887);
23029 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23030 written |= (1 << 7);
23031 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23032 }
23033frvbf_media_overflow (current_cpu, 4);
23034}
23035} else {
23036 {
23037 DI opval = tmp_tmp;
23038 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23039 written |= (1 << 7);
23040 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23041 }
23042}
23043}
23044}
23045}
23046}
e930b1f5
DB
23047}
23048}
b34f6357
DB
23049}
23050
23051 abuf->written = written;
23052 return vpc;
23053#undef FLD
23054}
23055
23056/* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
23057
23058static SEM_PC
23059SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23060{
23061#define FLD(f) abuf->fields.sfmt_mdasaccs.f
23062 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23063 int UNUSED written = 0;
23064 IADDR UNUSED pc = abuf->addr;
23065 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23066
e930b1f5
DB
23067if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23068if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23069if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23070frvbf_media_acc_not_aligned (current_cpu);
23071} else {
23072if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23073frvbf_media_acc_not_aligned (current_cpu);
23074} else {
23075{
23076{
23077 DI tmp_tmp;
23078 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23079if (GTDI (tmp_tmp, 549755813887)) {
23080{
23081 {
23082 DI opval = 549755813887;
23083 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23084 written |= (1 << 6);
23085 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23086 }
23087frvbf_media_overflow (current_cpu, 8);
23088}
23089} else {
23090if (LTDI (tmp_tmp, INVDI (549755813887))) {
23091{
23092 {
23093 DI opval = INVDI (549755813887);
23094 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23095 written |= (1 << 6);
23096 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23097 }
23098frvbf_media_overflow (current_cpu, 8);
23099}
23100} else {
23101 {
23102 DI opval = tmp_tmp;
23103 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23104 written |= (1 << 6);
23105 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23106 }
23107}
23108}
23109}
23110{
23111 DI tmp_tmp;
23112 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23113if (GTDI (tmp_tmp, 549755813887)) {
23114{
23115 {
23116 DI opval = 549755813887;
23117 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23118 written |= (1 << 7);
23119 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23120 }
23121frvbf_media_overflow (current_cpu, 4);
23122}
23123} else {
23124if (LTDI (tmp_tmp, INVDI (549755813887))) {
23125{
23126 {
23127 DI opval = INVDI (549755813887);
23128 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23129 written |= (1 << 7);
23130 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23131 }
23132frvbf_media_overflow (current_cpu, 4);
23133}
23134} else {
23135 {
23136 DI opval = tmp_tmp;
23137 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23138 written |= (1 << 7);
23139 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23140 }
23141}
23142}
23143}
23144}
23145}
e930b1f5
DB
23146}
23147}
b34f6357
DB
23148}
23149
23150 abuf->written = written;
23151 return vpc;
23152#undef FLD
23153}
23154
23155/* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
23156
23157static SEM_PC
23158SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23159{
23160#define FLD(f) abuf->fields.sfmt_mdasaccs.f
23161 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23162 int UNUSED written = 0;
23163 IADDR UNUSED pc = abuf->addr;
23164 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23165
e930b1f5
DB
23166if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23167if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23168if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23169frvbf_media_acc_not_aligned (current_cpu);
23170} else {
23171if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23172frvbf_media_acc_not_aligned (current_cpu);
23173} else {
23174{
23175{
23176 DI tmp_tmp;
23177 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23178if (GTDI (tmp_tmp, 549755813887)) {
23179{
23180 {
23181 DI opval = 549755813887;
23182 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23183 written |= (1 << 4);
23184 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23185 }
23186frvbf_media_overflow (current_cpu, 8);
23187}
23188} else {
23189if (LTDI (tmp_tmp, INVDI (549755813887))) {
23190{
23191 {
23192 DI opval = INVDI (549755813887);
23193 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23194 written |= (1 << 4);
23195 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23196 }
23197frvbf_media_overflow (current_cpu, 8);
23198}
23199} else {
23200 {
23201 DI opval = tmp_tmp;
23202 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23203 written |= (1 << 4);
23204 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23205 }
23206}
23207}
23208}
23209{
23210 DI tmp_tmp;
23211 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23212if (GTDI (tmp_tmp, 549755813887)) {
23213{
23214 {
23215 DI opval = 549755813887;
23216 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23217 written |= (1 << 5);
23218 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23219 }
23220frvbf_media_overflow (current_cpu, 4);
23221}
23222} else {
23223if (LTDI (tmp_tmp, INVDI (549755813887))) {
23224{
23225 {
23226 DI opval = INVDI (549755813887);
23227 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23228 written |= (1 << 5);
23229 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23230 }
23231frvbf_media_overflow (current_cpu, 4);
23232}
23233} else {
23234 {
23235 DI opval = tmp_tmp;
23236 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23237 written |= (1 << 5);
23238 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23239 }
23240}
23241}
23242}
23243}
23244}
e930b1f5
DB
23245}
23246}
b34f6357
DB
23247}
23248
23249 abuf->written = written;
23250 return vpc;
23251#undef FLD
23252}
23253
23254/* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23255
23256static SEM_PC
23257SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23258{
23259#define FLD(f) abuf->fields.sfmt_mdasaccs.f
23260 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23261 int UNUSED written = 0;
23262 IADDR UNUSED pc = abuf->addr;
23263 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23264
e930b1f5
DB
23265if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Si))) {
23266if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23267if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23268frvbf_media_acc_not_aligned (current_cpu);
23269} else {
23270if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23271frvbf_media_acc_not_aligned (current_cpu);
23272} else {
23273{
23274{
23275 DI tmp_tmp;
23276 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23277if (GTDI (tmp_tmp, 549755813887)) {
23278{
23279 {
23280 DI opval = 549755813887;
23281 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23282 written |= (1 << 6);
23283 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23284 }
23285frvbf_media_overflow (current_cpu, 8);
23286}
23287} else {
23288if (LTDI (tmp_tmp, INVDI (549755813887))) {
23289{
23290 {
23291 DI opval = INVDI (549755813887);
23292 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23293 written |= (1 << 6);
23294 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23295 }
23296frvbf_media_overflow (current_cpu, 8);
23297}
23298} else {
23299 {
23300 DI opval = tmp_tmp;
23301 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23302 written |= (1 << 6);
23303 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23304 }
23305}
23306}
23307}
23308{
23309 DI tmp_tmp;
23310 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23311if (GTDI (tmp_tmp, 549755813887)) {
23312{
23313 {
23314 DI opval = 549755813887;
23315 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23316 written |= (1 << 7);
23317 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23318 }
23319frvbf_media_overflow (current_cpu, 4);
23320}
23321} else {
23322if (LTDI (tmp_tmp, INVDI (549755813887))) {
23323{
23324 {
23325 DI opval = INVDI (549755813887);
23326 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23327 written |= (1 << 7);
23328 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23329 }
23330frvbf_media_overflow (current_cpu, 4);
23331}
23332} else {
23333 {
23334 DI opval = tmp_tmp;
23335 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23336 written |= (1 << 7);
23337 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23338 }
23339}
23340}
23341}
23342{
23343 DI tmp_tmp;
23344 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23345if (GTDI (tmp_tmp, 549755813887)) {
23346{
23347 {
23348 DI opval = 549755813887;
23349 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23350 written |= (1 << 8);
23351 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23352 }
23353frvbf_media_overflow (current_cpu, 2);
23354}
23355} else {
23356if (LTDI (tmp_tmp, INVDI (549755813887))) {
23357{
23358 {
23359 DI opval = INVDI (549755813887);
23360 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23361 written |= (1 << 8);
23362 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23363 }
23364frvbf_media_overflow (current_cpu, 2);
23365}
23366} else {
23367 {
23368 DI opval = tmp_tmp;
23369 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23370 written |= (1 << 8);
23371 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23372 }
23373}
23374}
23375}
23376{
23377 DI tmp_tmp;
23378 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
23379if (GTDI (tmp_tmp, 549755813887)) {
23380{
23381 {
23382 DI opval = 549755813887;
23383 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23384 written |= (1 << 9);
23385 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23386 }
23387frvbf_media_overflow (current_cpu, 1);
23388}
23389} else {
23390if (LTDI (tmp_tmp, INVDI (549755813887))) {
23391{
23392 {
23393 DI opval = INVDI (549755813887);
23394 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23395 written |= (1 << 9);
23396 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23397 }
23398frvbf_media_overflow (current_cpu, 1);
23399}
23400} else {
23401 {
23402 DI opval = tmp_tmp;
23403 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23404 written |= (1 << 9);
23405 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23406 }
23407}
23408}
23409}
23410}
23411}
e930b1f5
DB
23412}
23413}
b34f6357
DB
23414}
23415
23416 abuf->written = written;
23417 return vpc;
23418#undef FLD
23419}
23420
23421/* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23422
23423static SEM_PC
23424SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23425{
23426#define FLD(f) abuf->fields.sfmt_cmmachs.f
23427 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23428 int UNUSED written = 0;
23429 IADDR UNUSED pc = abuf->addr;
23430 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23431
e930b1f5 23432if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23433if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23434frvbf_media_acc_not_aligned (current_cpu);
23435} else {
23436{
23437 HI tmp_argihi;
23438 HI tmp_argilo;
23439 HI tmp_argjhi;
23440 HI tmp_argjlo;
23441{
23442 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23443 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23444 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23445 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23446}
23447 {
23448 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23449 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23450 written |= (1 << 9);
23451 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23452 }
23453 {
23454 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23455 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23456 written |= (1 << 10);
23457 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23458 }
23459}
e930b1f5 23460}
b34f6357
DB
23461}
23462
23463 abuf->written = written;
23464 return vpc;
23465#undef FLD
23466}
23467
23468/* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23469
23470static SEM_PC
23471SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23472{
23473#define FLD(f) abuf->fields.sfmt_cmmachs.f
23474 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23475 int UNUSED written = 0;
23476 IADDR UNUSED pc = abuf->addr;
23477 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23478
e930b1f5 23479if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23480if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23481frvbf_media_acc_not_aligned (current_cpu);
23482} else {
23483{
23484 UHI tmp_argihi;
23485 UHI tmp_argilo;
23486 UHI tmp_argjhi;
23487 UHI tmp_argjlo;
23488{
23489 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23490 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23491 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23492 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23493}
23494 {
23495 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23496 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23497 written |= (1 << 9);
23498 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23499 }
23500 {
23501 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23502 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23503 written |= (1 << 10);
23504 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23505 }
23506}
e930b1f5 23507}
b34f6357
DB
23508}
23509
23510 abuf->written = written;
23511 return vpc;
23512#undef FLD
23513}
23514
23515/* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23516
23517static SEM_PC
23518SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23519{
23520#define FLD(f) abuf->fields.sfmt_cmmachs.f
23521 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23522 int UNUSED written = 0;
23523 IADDR UNUSED pc = abuf->addr;
23524 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23525
e930b1f5 23526if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23527if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23528frvbf_media_acc_not_aligned (current_cpu);
23529} else {
23530{
23531 HI tmp_argihi;
23532 HI tmp_argilo;
23533 HI tmp_argjhi;
23534 HI tmp_argjlo;
23535{
23536 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23537 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23538 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23539 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23540}
23541 {
23542 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23543 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23544 written |= (1 << 9);
23545 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23546 }
23547 {
23548 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23549 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23550 written |= (1 << 10);
23551 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23552 }
23553}
e930b1f5 23554}
b34f6357
DB
23555}
23556
23557 abuf->written = written;
23558 return vpc;
23559#undef FLD
23560}
23561
23562/* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23563
23564static SEM_PC
23565SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23566{
23567#define FLD(f) abuf->fields.sfmt_cmmachs.f
23568 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23569 int UNUSED written = 0;
23570 IADDR UNUSED pc = abuf->addr;
23571 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23572
e930b1f5 23573if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23574if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23575frvbf_media_acc_not_aligned (current_cpu);
23576} else {
23577{
23578 UHI tmp_argihi;
23579 UHI tmp_argilo;
23580 UHI tmp_argjhi;
23581 UHI tmp_argjlo;
23582{
23583 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23584 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23585 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23586 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23587}
23588 {
23589 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23590 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23591 written |= (1 << 9);
23592 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23593 }
23594 {
23595 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23596 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23597 written |= (1 << 10);
23598 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23599 }
23600}
e930b1f5 23601}
b34f6357
DB
23602}
23603
23604 abuf->written = written;
23605 return vpc;
23606#undef FLD
23607}
23608
23609/* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23610
23611static SEM_PC
23612SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23613{
23614#define FLD(f) abuf->fields.sfmt_cmmachs.f
23615 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23616 int UNUSED written = 0;
23617 IADDR UNUSED pc = abuf->addr;
23618 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23619
e930b1f5 23620if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23621if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23622frvbf_media_acc_not_aligned (current_cpu);
23623} else {
23624if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23625{
23626 HI tmp_argihi;
23627 HI tmp_argilo;
23628 HI tmp_argjhi;
23629 HI tmp_argjlo;
23630{
23631 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23632 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23633 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23634 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23635}
23636 {
23637 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23638 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23639 written |= (1 << 11);
23640 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23641 }
23642 {
23643 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23644 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23645 written |= (1 << 12);
23646 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23647 }
23648}
23649}
e930b1f5 23650}
b34f6357
DB
23651}
23652
23653 abuf->written = written;
23654 return vpc;
23655#undef FLD
23656}
23657
23658/* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23659
23660static SEM_PC
23661SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23662{
23663#define FLD(f) abuf->fields.sfmt_cmmachs.f
23664 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23665 int UNUSED written = 0;
23666 IADDR UNUSED pc = abuf->addr;
23667 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23668
e930b1f5 23669if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23670if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23671frvbf_media_acc_not_aligned (current_cpu);
23672} else {
23673if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23674{
23675 UHI tmp_argihi;
23676 UHI tmp_argilo;
23677 UHI tmp_argjhi;
23678 UHI tmp_argjlo;
23679{
23680 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23681 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23682 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23683 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23684}
23685 {
23686 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23687 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23688 written |= (1 << 11);
23689 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23690 }
23691 {
23692 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23693 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23694 written |= (1 << 12);
23695 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23696 }
23697}
23698}
e930b1f5 23699}
b34f6357
DB
23700}
23701
23702 abuf->written = written;
23703 return vpc;
23704#undef FLD
23705}
23706
23707/* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23708
23709static SEM_PC
23710SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23711{
23712#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23713 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23714 int UNUSED written = 0;
23715 IADDR UNUSED pc = abuf->addr;
23716 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23717
e930b1f5 23718if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23719if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23720frvbf_media_acc_not_aligned (current_cpu);
23721} else {
23722if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23723frvbf_media_register_not_aligned (current_cpu);
23724} else {
23725{
23726 HI tmp_argihi;
23727 HI tmp_argilo;
23728 HI tmp_argjhi;
23729 HI tmp_argjlo;
23730{
23731 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23732 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23733 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23734 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23735}
23736 {
23737 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23738 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23739 written |= (1 << 13);
23740 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23741 }
23742 {
23743 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23744 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23745 written |= (1 << 14);
23746 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23747 }
23748{
23749 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23750 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23751 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23752 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23753}
23754 {
23755 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23756 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23757 written |= (1 << 15);
23758 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23759 }
23760 {
23761 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23762 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23763 written |= (1 << 16);
23764 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23765 }
23766}
23767}
e930b1f5 23768}
b34f6357
DB
23769}
23770
23771 abuf->written = written;
23772 return vpc;
23773#undef FLD
23774}
23775
23776/* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23777
23778static SEM_PC
23779SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23780{
23781#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23782 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23783 int UNUSED written = 0;
23784 IADDR UNUSED pc = abuf->addr;
23785 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23786
e930b1f5 23787if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23788if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23789frvbf_media_acc_not_aligned (current_cpu);
23790} else {
23791if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23792frvbf_media_register_not_aligned (current_cpu);
23793} else {
23794{
23795 UHI tmp_argihi;
23796 UHI tmp_argilo;
23797 UHI tmp_argjhi;
23798 UHI tmp_argjlo;
23799{
23800 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23801 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23802 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23803 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23804}
23805 {
23806 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23807 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23808 written |= (1 << 13);
23809 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23810 }
23811 {
23812 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23813 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23814 written |= (1 << 14);
23815 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23816 }
23817{
23818 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23820 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23821 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23822}
23823 {
23824 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23825 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23826 written |= (1 << 15);
23827 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23828 }
23829 {
23830 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23831 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23832 written |= (1 << 16);
23833 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23834 }
23835}
23836}
e930b1f5 23837}
b34f6357
DB
23838}
23839
23840 abuf->written = written;
23841 return vpc;
23842#undef FLD
23843}
23844
23845/* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23846
23847static SEM_PC
23848SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23849{
23850#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23851 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23852 int UNUSED written = 0;
23853 IADDR UNUSED pc = abuf->addr;
23854 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23855
e930b1f5 23856if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23857if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23858frvbf_media_acc_not_aligned (current_cpu);
23859} else {
23860if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23861frvbf_media_register_not_aligned (current_cpu);
23862} else {
23863{
23864 HI tmp_argihi;
23865 HI tmp_argilo;
23866 HI tmp_argjhi;
23867 HI tmp_argjlo;
23868{
23869 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23870 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23871 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23872 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23873}
23874 {
23875 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23876 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23877 written |= (1 << 13);
23878 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23879 }
23880 {
23881 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23882 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23883 written |= (1 << 14);
23884 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23885 }
23886{
23887 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23889 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23890 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23891}
23892 {
23893 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23894 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23895 written |= (1 << 15);
23896 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23897 }
23898 {
23899 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23900 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23901 written |= (1 << 16);
23902 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23903 }
23904}
23905}
e930b1f5 23906}
b34f6357
DB
23907}
23908
23909 abuf->written = written;
23910 return vpc;
23911#undef FLD
23912}
23913
23914/* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23915
23916static SEM_PC
23917SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23918{
23919#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23920 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23921 int UNUSED written = 0;
23922 IADDR UNUSED pc = abuf->addr;
23923 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23924
e930b1f5 23925if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23926if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23927frvbf_media_acc_not_aligned (current_cpu);
23928} else {
23929if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23930frvbf_media_register_not_aligned (current_cpu);
23931} else {
23932{
23933 UHI tmp_argihi;
23934 UHI tmp_argilo;
23935 UHI tmp_argjhi;
23936 UHI tmp_argjlo;
23937{
23938 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23939 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23940 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23941 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23942}
23943 {
23944 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23945 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23946 written |= (1 << 13);
23947 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23948 }
23949 {
23950 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23951 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23952 written |= (1 << 14);
23953 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23954 }
23955{
23956 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23957 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23958 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23959 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23960}
23961 {
23962 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23963 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23964 written |= (1 << 15);
23965 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23966 }
23967 {
23968 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23969 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23970 written |= (1 << 16);
23971 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23972 }
23973}
23974}
e930b1f5 23975}
b34f6357
DB
23976}
23977
23978 abuf->written = written;
23979 return vpc;
23980#undef FLD
23981}
23982
23983/* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23984
23985static SEM_PC
23986SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23987{
23988#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23989 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23990 int UNUSED written = 0;
23991 IADDR UNUSED pc = abuf->addr;
23992 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23993
e930b1f5 23994if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
23995if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23996frvbf_media_acc_not_aligned (current_cpu);
23997} else {
23998if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23999frvbf_media_register_not_aligned (current_cpu);
24000} else {
24001if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24002{
24003 HI tmp_argihi;
24004 HI tmp_argilo;
24005 HI tmp_argjhi;
24006 HI tmp_argjlo;
24007{
24008 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24009 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24010 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24011 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24012}
24013 {
24014 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24015 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24016 written |= (1 << 15);
24017 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24018 }
24019 {
24020 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24021 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24022 written |= (1 << 16);
24023 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24024 }
24025{
24026 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24027 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24028 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24029 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24030}
24031 {
24032 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
24033 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24034 written |= (1 << 17);
24035 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24036 }
24037 {
24038 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
24039 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24040 written |= (1 << 18);
24041 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24042 }
24043}
24044}
24045}
e930b1f5 24046}
b34f6357
DB
24047}
24048
24049 abuf->written = written;
24050 return vpc;
24051#undef FLD
24052}
24053
24054/* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24055
24056static SEM_PC
24057SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24058{
24059#define FLD(f) abuf->fields.sfmt_cmqmachs.f
24060 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24061 int UNUSED written = 0;
24062 IADDR UNUSED pc = abuf->addr;
24063 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24064
e930b1f5 24065if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
24066if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24067frvbf_media_acc_not_aligned (current_cpu);
24068} else {
24069if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24070frvbf_media_register_not_aligned (current_cpu);
24071} else {
24072if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24073{
24074 UHI tmp_argihi;
24075 UHI tmp_argilo;
24076 UHI tmp_argjhi;
24077 UHI tmp_argjlo;
24078{
24079 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24080 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24081 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24082 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24083}
24084 {
24085 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24086 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24087 written |= (1 << 15);
24088 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24089 }
24090 {
24091 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24092 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24093 written |= (1 << 16);
24094 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24095 }
24096{
24097 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24098 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24099 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24100 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24101}
24102 {
24103 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
24104 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24105 written |= (1 << 17);
24106 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24107 }
24108 {
24109 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
24110 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24111 written |= (1 << 18);
24112 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24113 }
24114}
24115}
24116}
e930b1f5 24117}
b34f6357
DB
24118}
24119
24120 abuf->written = written;
24121 return vpc;
24122#undef FLD
24123}
24124
24125/* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
24126
24127static SEM_PC
24128SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24129{
24130#define FLD(f) abuf->fields.sfmt_cmmachs.f
24131 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24132 int UNUSED written = 0;
24133 IADDR UNUSED pc = abuf->addr;
24134 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24135
e930b1f5 24136if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
24137if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24138frvbf_media_acc_not_aligned (current_cpu);
24139} else {
24140{
24141 HI tmp_argihi;
24142 HI tmp_argilo;
24143 HI tmp_argjhi;
24144 HI tmp_argjlo;
24145{
24146 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24147 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24148 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24149 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24150}
24151{
24152 DI tmp_tmp;
24153 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24154if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24155{
24156 {
24157 DI opval = MAKEDI (127, 0xffffffff);
24158 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24159 written |= (1 << 11);
24160 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24161 }
24162frvbf_media_overflow (current_cpu, 8);
24163}
24164} else {
24165if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24166{
24167 {
24168 DI opval = MAKEDI (0xffffff80, 0);
24169 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24170 written |= (1 << 11);
24171 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24172 }
24173frvbf_media_overflow (current_cpu, 8);
24174}
24175} else {
24176 {
24177 DI opval = tmp_tmp;
24178 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24179 written |= (1 << 11);
24180 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24181 }
24182}
24183}
24184}
24185{
24186 DI tmp_tmp;
24187 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24188if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24189{
24190 {
24191 DI opval = MAKEDI (127, 0xffffffff);
24192 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24193 written |= (1 << 12);
24194 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24195 }
24196frvbf_media_overflow (current_cpu, 4);
24197}
24198} else {
24199if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24200{
24201 {
24202 DI opval = MAKEDI (0xffffff80, 0);
24203 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24204 written |= (1 << 12);
24205 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24206 }
24207frvbf_media_overflow (current_cpu, 4);
24208}
24209} else {
24210 {
24211 DI opval = tmp_tmp;
24212 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24213 written |= (1 << 12);
24214 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24215 }
24216}
24217}
24218}
24219}
e930b1f5 24220}
b34f6357
DB
24221}
24222
24223 abuf->written = written;
24224 return vpc;
24225#undef FLD
24226}
24227
24228/* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24229
24230static SEM_PC
24231SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24232{
24233#define FLD(f) abuf->fields.sfmt_cmmachu.f
24234 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24235 int UNUSED written = 0;
24236 IADDR UNUSED pc = abuf->addr;
24237 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24238
e930b1f5 24239if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
b34f6357
DB
24240if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24241frvbf_media_acc_not_aligned (current_cpu);
24242} else {
24243{
24244 UHI tmp_argihi;
24245 UHI tmp_argilo;
24246 UHI tmp_argjhi;
24247 UHI tmp_argjlo;
24248{
24249 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24250 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24251 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24252 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24253}
24254{
24255 DI tmp_tmp;
24256 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24257if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24258{
24259 {
24260 UDI opval = MAKEDI (255, 0xffffffff);
24261 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24262 written |= (1 << 11);
24263 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24264 }
24265frvbf_media_overflow (current_cpu, 8);
24266}
24267} else {
24268if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24269{
24270 {
24271 UDI opval = MAKEDI (0, 0);
24272 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24273 written |= (1 << 11);
24274 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24275 }
24276frvbf_media_overflow (current_cpu, 8);
24277}
24278} else {
24279 {
24280 UDI opval = tmp_tmp;
24281 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24282 written |= (1 << 11);
24283 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24284 }
24285}
24286}
24287}
24288{
24289 DI tmp_tmp;
24290 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24291if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24292{
24293 {
24294 UDI opval = MAKEDI (255, 0xffffffff);
24295 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24296 written |= (1 << 12);
24297 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24298 }
24299frvbf_media_overflow (current_cpu, 4);
24300}
24301} else {
24302if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24303{
24304 {
24305 UDI opval = MAKEDI (0, 0);
24306 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24307 written |= (1 << 12);
24308 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24309 }
24310frvbf_media_overflow (current_cpu, 4);
24311}
24312} else {
24313 {
24314 UDI opval = tmp_tmp;
24315 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24316 written |= (1 << 12);
24317 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24318 }
24319}
24320}
24321}
24322}
e930b1f5 24323}
b34f6357
DB
24324}
24325
24326 abuf->written = written;
24327 return vpc;
24328#undef FLD
24329}
24330
24331/* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24332
24333static SEM_PC
24334SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24335{
24336#define FLD(f) abuf->fields.sfmt_cmmachs.f
24337 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24338 int UNUSED written = 0;
24339 IADDR UNUSED pc = abuf->addr;
24340 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24341
e930b1f5 24342if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
24343if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24344frvbf_media_acc_not_aligned (current_cpu);
24345} else {
24346{
24347 HI tmp_argihi;
24348 HI tmp_argilo;
24349 HI tmp_argjhi;
24350 HI tmp_argjlo;
24351{
24352 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24353 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24354 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24355 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24356}
24357{
24358 DI tmp_tmp;
24359 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24360if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24361{
24362 {
24363 DI opval = MAKEDI (127, 0xffffffff);
24364 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24365 written |= (1 << 11);
24366 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24367 }
24368frvbf_media_overflow (current_cpu, 8);
24369}
24370} else {
24371if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24372{
24373 {
24374 DI opval = MAKEDI (0xffffff80, 0);
24375 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24376 written |= (1 << 11);
24377 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24378 }
24379frvbf_media_overflow (current_cpu, 8);
24380}
24381} else {
24382 {
24383 DI opval = tmp_tmp;
24384 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24385 written |= (1 << 11);
24386 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24387 }
24388}
24389}
24390}
24391{
24392 DI tmp_tmp;
24393 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24394if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24395{
24396 {
24397 DI opval = MAKEDI (127, 0xffffffff);
24398 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24399 written |= (1 << 12);
24400 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24401 }
24402frvbf_media_overflow (current_cpu, 4);
24403}
24404} else {
24405if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24406{
24407 {
24408 DI opval = MAKEDI (0xffffff80, 0);
24409 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24410 written |= (1 << 12);
24411 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24412 }
24413frvbf_media_overflow (current_cpu, 4);
24414}
24415} else {
24416 {
24417 DI opval = tmp_tmp;
24418 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24419 written |= (1 << 12);
24420 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24421 }
24422}
24423}
24424}
24425}
e930b1f5 24426}
b34f6357
DB
24427}
24428
24429 abuf->written = written;
24430 return vpc;
24431#undef FLD
24432}
24433
24434/* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24435
24436static SEM_PC
24437SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24438{
24439#define FLD(f) abuf->fields.sfmt_cmmachu.f
24440 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24441 int UNUSED written = 0;
24442 IADDR UNUSED pc = abuf->addr;
24443 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24444
e930b1f5 24445if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
b34f6357
DB
24446if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24447frvbf_media_acc_not_aligned (current_cpu);
24448} else {
24449{
24450 UHI tmp_argihi;
24451 UHI tmp_argilo;
24452 UHI tmp_argjhi;
24453 UHI tmp_argjlo;
24454{
24455 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24456 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24457 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24458 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24459}
24460{
24461 DI tmp_tmp;
24462 tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24463if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24464{
24465 {
24466 UDI opval = MAKEDI (255, 0xffffffff);
24467 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24468 written |= (1 << 11);
24469 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24470 }
24471frvbf_media_overflow (current_cpu, 8);
24472}
24473} else {
24474if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24475{
24476 {
24477 UDI opval = MAKEDI (0, 0);
24478 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24479 written |= (1 << 11);
24480 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24481 }
24482frvbf_media_overflow (current_cpu, 8);
24483}
24484} else {
24485 {
24486 UDI opval = tmp_tmp;
24487 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24488 written |= (1 << 11);
24489 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24490 }
24491}
24492}
24493}
24494{
24495 DI tmp_tmp;
24496 tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24497if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24498{
24499 {
24500 UDI opval = MAKEDI (255, 0xffffffff);
24501 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24502 written |= (1 << 12);
24503 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24504 }
24505frvbf_media_overflow (current_cpu, 4);
24506}
24507} else {
24508if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24509{
24510 {
24511 UDI opval = MAKEDI (0, 0);
24512 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24513 written |= (1 << 12);
24514 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24515 }
24516frvbf_media_overflow (current_cpu, 4);
24517}
24518} else {
24519 {
24520 UDI opval = tmp_tmp;
24521 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24522 written |= (1 << 12);
24523 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24524 }
24525}
24526}
24527}
24528}
e930b1f5 24529}
b34f6357
DB
24530}
24531
24532 abuf->written = written;
24533 return vpc;
24534#undef FLD
24535}
24536
24537/* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24538
24539static SEM_PC
24540SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24541{
24542#define FLD(f) abuf->fields.sfmt_cmmachs.f
24543 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24544 int UNUSED written = 0;
24545 IADDR UNUSED pc = abuf->addr;
24546 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24547
e930b1f5 24548if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
24549if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24550frvbf_media_acc_not_aligned (current_cpu);
24551} else {
24552if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24553{
24554 HI tmp_argihi;
24555 HI tmp_argilo;
24556 HI tmp_argjhi;
24557 HI tmp_argjlo;
24558{
24559 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24560 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24561 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24562 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24563}
24564{
24565 DI tmp_tmp;
24566 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24567if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24568{
24569 {
24570 DI opval = MAKEDI (127, 0xffffffff);
24571 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24572 written |= (1 << 13);
24573 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24574 }
24575frvbf_media_overflow (current_cpu, 8);
24576}
24577} else {
24578if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24579{
24580 {
24581 DI opval = MAKEDI (0xffffff80, 0);
24582 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24583 written |= (1 << 13);
24584 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24585 }
24586frvbf_media_overflow (current_cpu, 8);
24587}
24588} else {
24589 {
24590 DI opval = tmp_tmp;
24591 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24592 written |= (1 << 13);
24593 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24594 }
24595}
24596}
24597}
24598{
24599 DI tmp_tmp;
24600 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24601if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24602{
24603 {
24604 DI opval = MAKEDI (127, 0xffffffff);
24605 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24606 written |= (1 << 14);
24607 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24608 }
24609frvbf_media_overflow (current_cpu, 4);
24610}
24611} else {
24612if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24613{
24614 {
24615 DI opval = MAKEDI (0xffffff80, 0);
24616 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24617 written |= (1 << 14);
24618 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24619 }
24620frvbf_media_overflow (current_cpu, 4);
24621}
24622} else {
24623 {
24624 DI opval = tmp_tmp;
24625 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24626 written |= (1 << 14);
24627 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24628 }
24629}
24630}
24631}
24632}
24633}
e930b1f5 24634}
b34f6357
DB
24635}
24636
24637 abuf->written = written;
24638 return vpc;
24639#undef FLD
24640}
24641
24642/* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24643
24644static SEM_PC
24645SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24646{
24647#define FLD(f) abuf->fields.sfmt_cmmachu.f
24648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24649 int UNUSED written = 0;
24650 IADDR UNUSED pc = abuf->addr;
24651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24652
e930b1f5 24653if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
b34f6357
DB
24654if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24655frvbf_media_acc_not_aligned (current_cpu);
24656} else {
24657if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24658{
24659 UHI tmp_argihi;
24660 UHI tmp_argilo;
24661 UHI tmp_argjhi;
24662 UHI tmp_argjlo;
24663{
24664 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24665 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24666 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24667 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24668}
24669{
24670 DI tmp_tmp;
24671 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24672if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24673{
24674 {
24675 UDI opval = MAKEDI (255, 0xffffffff);
24676 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24677 written |= (1 << 13);
24678 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24679 }
24680frvbf_media_overflow (current_cpu, 8);
24681}
24682} else {
24683if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24684{
24685 {
24686 UDI opval = MAKEDI (0, 0);
24687 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24688 written |= (1 << 13);
24689 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24690 }
24691frvbf_media_overflow (current_cpu, 8);
24692}
24693} else {
24694 {
24695 UDI opval = tmp_tmp;
24696 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24697 written |= (1 << 13);
24698 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24699 }
24700}
24701}
24702}
24703{
24704 DI tmp_tmp;
24705 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24706if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24707{
24708 {
24709 UDI opval = MAKEDI (255, 0xffffffff);
24710 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24711 written |= (1 << 14);
24712 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24713 }
24714frvbf_media_overflow (current_cpu, 4);
24715}
24716} else {
24717if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24718{
24719 {
24720 UDI opval = MAKEDI (0, 0);
24721 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24722 written |= (1 << 14);
24723 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24724 }
24725frvbf_media_overflow (current_cpu, 4);
24726}
24727} else {
24728 {
24729 UDI opval = tmp_tmp;
24730 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24731 written |= (1 << 14);
24732 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24733 }
24734}
24735}
24736}
24737}
24738}
e930b1f5 24739}
b34f6357
DB
24740}
24741
24742 abuf->written = written;
24743 return vpc;
24744#undef FLD
24745}
24746
24747/* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24748
24749static SEM_PC
24750SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24751{
24752#define FLD(f) abuf->fields.sfmt_cmqmachs.f
24753 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24754 int UNUSED written = 0;
24755 IADDR UNUSED pc = abuf->addr;
24756 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24757
e930b1f5 24758if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
24759if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24760frvbf_media_acc_not_aligned (current_cpu);
24761} else {
24762if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24763frvbf_media_register_not_aligned (current_cpu);
24764} else {
24765{
24766 HI tmp_argihi;
24767 HI tmp_argilo;
24768 HI tmp_argjhi;
24769 HI tmp_argjlo;
24770{
24771 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24772 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24773 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24774 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24775}
24776{
24777 DI tmp_tmp;
24778 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24779if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24780{
24781 {
24782 DI opval = MAKEDI (127, 0xffffffff);
24783 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24784 written |= (1 << 17);
24785 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24786 }
24787frvbf_media_overflow (current_cpu, 8);
24788}
24789} else {
24790if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24791{
24792 {
24793 DI opval = MAKEDI (0xffffff80, 0);
24794 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24795 written |= (1 << 17);
24796 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24797 }
24798frvbf_media_overflow (current_cpu, 8);
24799}
24800} else {
24801 {
24802 DI opval = tmp_tmp;
24803 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24804 written |= (1 << 17);
24805 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24806 }
24807}
24808}
24809}
24810{
24811 DI tmp_tmp;
24812 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24813if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24814{
24815 {
24816 DI opval = MAKEDI (127, 0xffffffff);
24817 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24818 written |= (1 << 18);
24819 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24820 }
24821frvbf_media_overflow (current_cpu, 4);
24822}
24823} else {
24824if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24825{
24826 {
24827 DI opval = MAKEDI (0xffffff80, 0);
24828 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24829 written |= (1 << 18);
24830 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24831 }
24832frvbf_media_overflow (current_cpu, 4);
24833}
24834} else {
24835 {
24836 DI opval = tmp_tmp;
24837 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24838 written |= (1 << 18);
24839 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24840 }
24841}
24842}
24843}
24844{
24845 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24846 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24847 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24848 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24849}
24850{
24851 DI tmp_tmp;
24852 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24853if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24854{
24855 {
24856 DI opval = MAKEDI (127, 0xffffffff);
24857 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24858 written |= (1 << 19);
24859 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24860 }
24861frvbf_media_overflow (current_cpu, 2);
24862}
24863} else {
24864if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24865{
24866 {
24867 DI opval = MAKEDI (0xffffff80, 0);
24868 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24869 written |= (1 << 19);
24870 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24871 }
24872frvbf_media_overflow (current_cpu, 2);
24873}
24874} else {
24875 {
24876 DI opval = tmp_tmp;
24877 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24878 written |= (1 << 19);
24879 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24880 }
24881}
24882}
24883}
24884{
24885 DI tmp_tmp;
24886 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24887if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24888{
24889 {
24890 DI opval = MAKEDI (127, 0xffffffff);
24891 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24892 written |= (1 << 20);
24893 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24894 }
24895frvbf_media_overflow (current_cpu, 1);
24896}
24897} else {
24898if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24899{
24900 {
24901 DI opval = MAKEDI (0xffffff80, 0);
24902 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24903 written |= (1 << 20);
24904 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24905 }
24906frvbf_media_overflow (current_cpu, 1);
24907}
24908} else {
24909 {
24910 DI opval = tmp_tmp;
24911 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24912 written |= (1 << 20);
24913 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24914 }
24915}
24916}
24917}
24918}
24919}
e930b1f5 24920}
b34f6357
DB
24921}
24922
24923 abuf->written = written;
24924 return vpc;
24925#undef FLD
24926}
24927
24928/* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24929
24930static SEM_PC
24931SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24932{
24933#define FLD(f) abuf->fields.sfmt_cmqmachu.f
24934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24935 int UNUSED written = 0;
24936 IADDR UNUSED pc = abuf->addr;
24937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24938
e930b1f5 24939if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
b34f6357
DB
24940if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24941frvbf_media_acc_not_aligned (current_cpu);
24942} else {
24943if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24944frvbf_media_register_not_aligned (current_cpu);
24945} else {
24946{
24947 UHI tmp_argihi;
24948 UHI tmp_argilo;
24949 UHI tmp_argjhi;
24950 UHI tmp_argjlo;
24951{
24952 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24953 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24954 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24955 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24956}
24957{
24958 DI tmp_tmp;
24959 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24960if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24961{
24962 {
24963 UDI opval = MAKEDI (255, 0xffffffff);
24964 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24965 written |= (1 << 17);
24966 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24967 }
24968frvbf_media_overflow (current_cpu, 8);
24969}
24970} else {
24971if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24972{
24973 {
24974 UDI opval = MAKEDI (0, 0);
24975 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24976 written |= (1 << 17);
24977 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24978 }
24979frvbf_media_overflow (current_cpu, 8);
24980}
24981} else {
24982 {
24983 UDI opval = tmp_tmp;
24984 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24985 written |= (1 << 17);
24986 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24987 }
24988}
24989}
24990}
24991{
24992 DI tmp_tmp;
24993 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24994if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24995{
24996 {
24997 UDI opval = MAKEDI (255, 0xffffffff);
24998 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24999 written |= (1 << 18);
25000 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25001 }
25002frvbf_media_overflow (current_cpu, 4);
25003}
25004} else {
25005if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25006{
25007 {
25008 UDI opval = MAKEDI (0, 0);
25009 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25010 written |= (1 << 18);
25011 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25012 }
25013frvbf_media_overflow (current_cpu, 4);
25014}
25015} else {
25016 {
25017 UDI opval = tmp_tmp;
25018 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25019 written |= (1 << 18);
25020 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25021 }
25022}
25023}
25024}
25025{
25026 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25027 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25028 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25029 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25030}
25031{
25032 DI tmp_tmp;
25033 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25034if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25035{
25036 {
25037 UDI opval = MAKEDI (255, 0xffffffff);
25038 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25039 written |= (1 << 19);
25040 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25041 }
25042frvbf_media_overflow (current_cpu, 2);
25043}
25044} else {
25045if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25046{
25047 {
25048 UDI opval = MAKEDI (0, 0);
25049 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25050 written |= (1 << 19);
25051 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25052 }
25053frvbf_media_overflow (current_cpu, 2);
25054}
25055} else {
25056 {
25057 UDI opval = tmp_tmp;
25058 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25059 written |= (1 << 19);
25060 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25061 }
25062}
25063}
25064}
25065{
25066 DI tmp_tmp;
25067 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25068if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25069{
25070 {
25071 UDI opval = MAKEDI (255, 0xffffffff);
25072 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25073 written |= (1 << 20);
25074 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25075 }
25076frvbf_media_overflow (current_cpu, 1);
25077}
25078} else {
25079if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25080{
25081 {
25082 UDI opval = MAKEDI (0, 0);
25083 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25084 written |= (1 << 20);
25085 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25086 }
25087frvbf_media_overflow (current_cpu, 1);
25088}
25089} else {
25090 {
25091 UDI opval = tmp_tmp;
25092 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25093 written |= (1 << 20);
25094 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25095 }
25096}
25097}
25098}
25099}
25100}
e930b1f5 25101}
b34f6357
DB
25102}
25103
25104 abuf->written = written;
25105 return vpc;
25106#undef FLD
25107}
25108
25109/* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
25110
25111static SEM_PC
25112SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25113{
25114#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25115 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25116 int UNUSED written = 0;
25117 IADDR UNUSED pc = abuf->addr;
25118 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25119
e930b1f5 25120if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
25121if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25122frvbf_media_acc_not_aligned (current_cpu);
25123} else {
25124if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25125frvbf_media_register_not_aligned (current_cpu);
25126} else {
25127if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25128{
25129 HI tmp_argihi;
25130 HI tmp_argilo;
25131 HI tmp_argjhi;
25132 HI tmp_argjlo;
25133{
25134 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25135 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25136 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25137 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25138}
25139{
25140 DI tmp_tmp;
25141 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25142if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25143{
25144 {
25145 DI opval = MAKEDI (127, 0xffffffff);
25146 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25147 written |= (1 << 19);
25148 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25149 }
25150frvbf_media_overflow (current_cpu, 8);
25151}
25152} else {
25153if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25154{
25155 {
25156 DI opval = MAKEDI (0xffffff80, 0);
25157 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25158 written |= (1 << 19);
25159 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25160 }
25161frvbf_media_overflow (current_cpu, 8);
25162}
25163} else {
25164 {
25165 DI opval = tmp_tmp;
25166 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25167 written |= (1 << 19);
25168 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25169 }
25170}
25171}
25172}
25173{
25174 DI tmp_tmp;
25175 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25176if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25177{
25178 {
25179 DI opval = MAKEDI (127, 0xffffffff);
25180 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25181 written |= (1 << 20);
25182 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25183 }
25184frvbf_media_overflow (current_cpu, 4);
25185}
25186} else {
25187if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25188{
25189 {
25190 DI opval = MAKEDI (0xffffff80, 0);
25191 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25192 written |= (1 << 20);
25193 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25194 }
25195frvbf_media_overflow (current_cpu, 4);
25196}
25197} else {
25198 {
25199 DI opval = tmp_tmp;
25200 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25201 written |= (1 << 20);
25202 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25203 }
25204}
25205}
25206}
25207{
25208 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25209 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25210 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25211 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25212}
25213{
25214 DI tmp_tmp;
25215 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25216if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25217{
25218 {
25219 DI opval = MAKEDI (127, 0xffffffff);
25220 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25221 written |= (1 << 21);
25222 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25223 }
25224frvbf_media_overflow (current_cpu, 2);
25225}
25226} else {
25227if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25228{
25229 {
25230 DI opval = MAKEDI (0xffffff80, 0);
25231 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25232 written |= (1 << 21);
25233 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25234 }
25235frvbf_media_overflow (current_cpu, 2);
25236}
25237} else {
25238 {
25239 DI opval = tmp_tmp;
25240 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25241 written |= (1 << 21);
25242 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25243 }
25244}
25245}
25246}
25247{
25248 DI tmp_tmp;
25249 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25250if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25251{
25252 {
25253 DI opval = MAKEDI (127, 0xffffffff);
25254 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25255 written |= (1 << 22);
25256 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25257 }
25258frvbf_media_overflow (current_cpu, 1);
25259}
25260} else {
25261if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25262{
25263 {
25264 DI opval = MAKEDI (0xffffff80, 0);
25265 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25266 written |= (1 << 22);
25267 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25268 }
25269frvbf_media_overflow (current_cpu, 1);
25270}
25271} else {
25272 {
25273 DI opval = tmp_tmp;
25274 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25275 written |= (1 << 22);
25276 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25277 }
25278}
25279}
25280}
25281}
25282}
25283}
e930b1f5 25284}
b34f6357
DB
25285}
25286
25287 abuf->written = written;
25288 return vpc;
25289#undef FLD
25290}
25291
25292/* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25293
25294static SEM_PC
25295SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25296{
25297#define FLD(f) abuf->fields.sfmt_cmqmachu.f
25298 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25299 int UNUSED written = 0;
25300 IADDR UNUSED pc = abuf->addr;
25301 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25302
e930b1f5 25303if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Uk))) {
b34f6357
DB
25304if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25305frvbf_media_acc_not_aligned (current_cpu);
25306} else {
25307if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25308frvbf_media_register_not_aligned (current_cpu);
25309} else {
25310if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25311{
25312 UHI tmp_argihi;
25313 UHI tmp_argilo;
25314 UHI tmp_argjhi;
25315 UHI tmp_argjlo;
25316{
25317 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25318 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25319 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25320 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25321}
25322{
25323 DI tmp_tmp;
25324 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25325if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25326{
25327 {
25328 UDI opval = MAKEDI (255, 0xffffffff);
25329 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25330 written |= (1 << 19);
25331 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25332 }
25333frvbf_media_overflow (current_cpu, 8);
25334}
25335} else {
25336if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25337{
25338 {
25339 UDI opval = MAKEDI (0, 0);
25340 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25341 written |= (1 << 19);
25342 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25343 }
25344frvbf_media_overflow (current_cpu, 8);
25345}
25346} else {
25347 {
25348 UDI opval = tmp_tmp;
25349 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25350 written |= (1 << 19);
25351 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25352 }
25353}
25354}
25355}
25356{
25357 DI tmp_tmp;
25358 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25359if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25360{
25361 {
25362 UDI opval = MAKEDI (255, 0xffffffff);
25363 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25364 written |= (1 << 20);
25365 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25366 }
25367frvbf_media_overflow (current_cpu, 4);
25368}
25369} else {
25370if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25371{
25372 {
25373 UDI opval = MAKEDI (0, 0);
25374 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25375 written |= (1 << 20);
25376 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25377 }
25378frvbf_media_overflow (current_cpu, 4);
25379}
25380} else {
25381 {
25382 UDI opval = tmp_tmp;
25383 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25384 written |= (1 << 20);
25385 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25386 }
25387}
25388}
25389}
25390{
25391 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25392 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25393 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25394 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25395}
25396{
25397 DI tmp_tmp;
25398 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25399if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25400{
25401 {
25402 UDI opval = MAKEDI (255, 0xffffffff);
25403 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25404 written |= (1 << 21);
25405 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25406 }
25407frvbf_media_overflow (current_cpu, 2);
25408}
25409} else {
25410if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25411{
25412 {
25413 UDI opval = MAKEDI (0, 0);
25414 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25415 written |= (1 << 21);
25416 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25417 }
25418frvbf_media_overflow (current_cpu, 2);
25419}
25420} else {
25421 {
25422 UDI opval = tmp_tmp;
25423 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25424 written |= (1 << 21);
25425 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25426 }
25427}
25428}
25429}
25430{
25431 DI tmp_tmp;
25432 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25433if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25434{
25435 {
25436 UDI opval = MAKEDI (255, 0xffffffff);
25437 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25438 written |= (1 << 22);
25439 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25440 }
25441frvbf_media_overflow (current_cpu, 1);
25442}
25443} else {
25444if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25445{
25446 {
25447 UDI opval = MAKEDI (0, 0);
25448 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25449 written |= (1 << 22);
25450 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25451 }
25452frvbf_media_overflow (current_cpu, 1);
25453}
25454} else {
25455 {
25456 UDI opval = tmp_tmp;
25457 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25458 written |= (1 << 22);
25459 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25460 }
25461}
25462}
25463}
25464}
25465}
25466}
e930b1f5 25467}
b34f6357
DB
25468}
25469
25470 abuf->written = written;
25471 return vpc;
25472#undef FLD
25473}
25474
25475/* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25476
25477static SEM_PC
25478SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25479{
25480#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25481 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25482 int UNUSED written = 0;
25483 IADDR UNUSED pc = abuf->addr;
25484 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25485
e930b1f5 25486if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
25487if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25488frvbf_media_acc_not_aligned (current_cpu);
25489} else {
25490if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25491frvbf_media_register_not_aligned (current_cpu);
25492} else {
25493{
25494 HI tmp_argihi;
25495 HI tmp_argilo;
25496 HI tmp_argjhi;
25497 HI tmp_argjlo;
25498{
25499 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25500 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25501 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25502 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25503}
25504{
25505 DI tmp_tmp;
25506 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25507if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25508{
25509 {
25510 DI opval = MAKEDI (127, 0xffffffff);
25511 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25512 written |= (1 << 19);
25513 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25514 }
25515frvbf_media_overflow (current_cpu, 2);
25516}
25517} else {
25518if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25519{
25520 {
25521 DI opval = MAKEDI (0xffffff80, 0);
25522 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25523 written |= (1 << 19);
25524 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25525 }
25526frvbf_media_overflow (current_cpu, 2);
25527}
25528} else {
25529 {
25530 DI opval = tmp_tmp;
25531 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25532 written |= (1 << 19);
25533 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25534 }
25535}
25536}
25537}
25538{
25539 DI tmp_tmp;
25540 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25541if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25542{
25543 {
25544 DI opval = MAKEDI (127, 0xffffffff);
25545 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25546 written |= (1 << 20);
25547 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25548 }
25549frvbf_media_overflow (current_cpu, 1);
25550}
25551} else {
25552if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25553{
25554 {
25555 DI opval = MAKEDI (0xffffff80, 0);
25556 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25557 written |= (1 << 20);
25558 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25559 }
25560frvbf_media_overflow (current_cpu, 1);
25561}
25562} else {
25563 {
25564 DI opval = tmp_tmp;
25565 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25566 written |= (1 << 20);
25567 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25568 }
25569}
25570}
25571}
25572{
25573 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25574 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25575 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25576 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25577}
25578{
25579 DI tmp_tmp;
25580 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25581if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25582{
25583 {
25584 DI opval = MAKEDI (127, 0xffffffff);
25585 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25586 written |= (1 << 17);
25587 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25588 }
25589frvbf_media_overflow (current_cpu, 8);
25590}
25591} else {
25592if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25593{
25594 {
25595 DI opval = MAKEDI (0xffffff80, 0);
25596 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25597 written |= (1 << 17);
25598 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25599 }
25600frvbf_media_overflow (current_cpu, 8);
25601}
25602} else {
25603 {
25604 DI opval = tmp_tmp;
25605 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25606 written |= (1 << 17);
25607 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25608 }
25609}
25610}
25611}
25612{
25613 DI tmp_tmp;
25614 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25615if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25616{
25617 {
25618 DI opval = MAKEDI (127, 0xffffffff);
25619 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25620 written |= (1 << 18);
25621 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25622 }
25623frvbf_media_overflow (current_cpu, 4);
25624}
25625} else {
25626if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25627{
25628 {
25629 DI opval = MAKEDI (0xffffff80, 0);
25630 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25631 written |= (1 << 18);
25632 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25633 }
25634frvbf_media_overflow (current_cpu, 4);
25635}
25636} else {
25637 {
25638 DI opval = tmp_tmp;
25639 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25640 written |= (1 << 18);
25641 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25642 }
25643}
25644}
25645}
25646}
25647}
e930b1f5 25648}
b34f6357
DB
25649}
25650
25651 abuf->written = written;
25652 return vpc;
25653#undef FLD
25654}
25655
25656/* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25657
25658static SEM_PC
25659SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25660{
25661#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25662 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25663 int UNUSED written = 0;
25664 IADDR UNUSED pc = abuf->addr;
25665 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25666
e930b1f5 25667if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
25668if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25669frvbf_media_acc_not_aligned (current_cpu);
25670} else {
25671if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25672frvbf_media_register_not_aligned (current_cpu);
25673} else {
25674{
25675 HI tmp_argihi;
25676 HI tmp_argilo;
25677 HI tmp_argjhi;
25678 HI tmp_argjlo;
25679{
25680 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25681 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25682 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25683 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25684}
25685{
25686 DI tmp_tmp;
25687 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25688if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25689{
25690 {
25691 DI opval = MAKEDI (127, 0xffffffff);
25692 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25693 written |= (1 << 19);
25694 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25695 }
25696frvbf_media_overflow (current_cpu, 2);
25697}
25698} else {
25699if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25700{
25701 {
25702 DI opval = MAKEDI (0xffffff80, 0);
25703 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25704 written |= (1 << 19);
25705 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25706 }
25707frvbf_media_overflow (current_cpu, 2);
25708}
25709} else {
25710 {
25711 DI opval = tmp_tmp;
25712 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25713 written |= (1 << 19);
25714 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25715 }
25716}
25717}
25718}
25719{
25720 DI tmp_tmp;
25721 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25722if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25723{
25724 {
25725 DI opval = MAKEDI (127, 0xffffffff);
25726 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25727 written |= (1 << 20);
25728 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25729 }
25730frvbf_media_overflow (current_cpu, 1);
25731}
25732} else {
25733if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25734{
25735 {
25736 DI opval = MAKEDI (0xffffff80, 0);
25737 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25738 written |= (1 << 20);
25739 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25740 }
25741frvbf_media_overflow (current_cpu, 1);
25742}
25743} else {
25744 {
25745 DI opval = tmp_tmp;
25746 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25747 written |= (1 << 20);
25748 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25749 }
25750}
25751}
25752}
25753{
25754 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25755 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25756 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25757 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25758}
25759{
25760 DI tmp_tmp;
25761 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25762if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25763{
25764 {
25765 DI opval = MAKEDI (127, 0xffffffff);
25766 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25767 written |= (1 << 17);
25768 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25769 }
25770frvbf_media_overflow (current_cpu, 8);
25771}
25772} else {
25773if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25774{
25775 {
25776 DI opval = MAKEDI (0xffffff80, 0);
25777 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25778 written |= (1 << 17);
25779 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25780 }
25781frvbf_media_overflow (current_cpu, 8);
25782}
25783} else {
25784 {
25785 DI opval = tmp_tmp;
25786 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25787 written |= (1 << 17);
25788 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25789 }
25790}
25791}
25792}
25793{
25794 DI tmp_tmp;
25795 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25796if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25797{
25798 {
25799 DI opval = MAKEDI (127, 0xffffffff);
25800 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25801 written |= (1 << 18);
25802 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25803 }
25804frvbf_media_overflow (current_cpu, 4);
25805}
25806} else {
25807if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25808{
25809 {
25810 DI opval = MAKEDI (0xffffff80, 0);
25811 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25812 written |= (1 << 18);
25813 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25814 }
25815frvbf_media_overflow (current_cpu, 4);
25816}
25817} else {
25818 {
25819 DI opval = tmp_tmp;
25820 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25821 written |= (1 << 18);
25822 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25823 }
25824}
25825}
25826}
25827}
25828}
e930b1f5 25829}
b34f6357
DB
25830}
25831
25832 abuf->written = written;
25833 return vpc;
25834#undef FLD
25835}
25836
25837/* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25838
25839static SEM_PC
25840SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25841{
25842#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25843 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25844 int UNUSED written = 0;
25845 IADDR UNUSED pc = abuf->addr;
25846 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25847
e930b1f5 25848if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
25849if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25850frvbf_media_acc_not_aligned (current_cpu);
25851} else {
25852if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25853frvbf_media_register_not_aligned (current_cpu);
25854} else {
25855{
25856 HI tmp_argihi;
25857 HI tmp_argilo;
25858 HI tmp_argjhi;
25859 HI tmp_argjlo;
25860{
25861 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25862 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25863 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25864 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25865}
25866{
25867 DI tmp_tmp;
25868 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25869if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25870{
25871 {
25872 DI opval = MAKEDI (127, 0xffffffff);
25873 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25874 written |= (1 << 17);
25875 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25876 }
25877frvbf_media_overflow (current_cpu, 8);
25878}
25879} else {
25880if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25881{
25882 {
25883 DI opval = MAKEDI (0xffffff80, 0);
25884 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25885 written |= (1 << 17);
25886 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25887 }
25888frvbf_media_overflow (current_cpu, 8);
25889}
25890} else {
25891 {
25892 DI opval = tmp_tmp;
25893 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25894 written |= (1 << 17);
25895 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25896 }
25897}
25898}
25899}
25900{
25901 DI tmp_tmp;
25902 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25903if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25904{
25905 {
25906 DI opval = MAKEDI (127, 0xffffffff);
25907 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25908 written |= (1 << 18);
25909 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25910 }
25911frvbf_media_overflow (current_cpu, 4);
25912}
25913} else {
25914if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25915{
25916 {
25917 DI opval = MAKEDI (0xffffff80, 0);
25918 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25919 written |= (1 << 18);
25920 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25921 }
25922frvbf_media_overflow (current_cpu, 4);
25923}
25924} else {
25925 {
25926 DI opval = tmp_tmp;
25927 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25928 written |= (1 << 18);
25929 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25930 }
25931}
25932}
25933}
25934{
25935 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25936 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25937 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25938 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25939}
25940{
25941 DI tmp_tmp;
25942 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25943if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25944{
25945 {
25946 DI opval = MAKEDI (127, 0xffffffff);
25947 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25948 written |= (1 << 19);
25949 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25950 }
25951frvbf_media_overflow (current_cpu, 2);
25952}
25953} else {
25954if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25955{
25956 {
25957 DI opval = MAKEDI (0xffffff80, 0);
25958 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25959 written |= (1 << 19);
25960 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25961 }
25962frvbf_media_overflow (current_cpu, 2);
25963}
25964} else {
25965 {
25966 DI opval = tmp_tmp;
25967 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25968 written |= (1 << 19);
25969 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25970 }
25971}
25972}
25973}
25974{
25975 DI tmp_tmp;
25976 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25977if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25978{
25979 {
25980 DI opval = MAKEDI (127, 0xffffffff);
25981 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25982 written |= (1 << 20);
25983 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25984 }
25985frvbf_media_overflow (current_cpu, 1);
25986}
25987} else {
25988if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25989{
25990 {
25991 DI opval = MAKEDI (0xffffff80, 0);
25992 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25993 written |= (1 << 20);
25994 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25995 }
25996frvbf_media_overflow (current_cpu, 1);
25997}
25998} else {
25999 {
26000 DI opval = tmp_tmp;
26001 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
26002 written |= (1 << 20);
26003 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26004 }
26005}
26006}
26007}
26008}
26009}
e930b1f5 26010}
b34f6357
DB
26011}
26012
26013 abuf->written = written;
26014 return vpc;
26015#undef FLD
26016}
26017
26018/* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
26019
26020static SEM_PC
26021SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26022{
26023#define FLD(f) abuf->fields.sfmt_cmmachs.f
26024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26025 int UNUSED written = 0;
26026 IADDR UNUSED pc = abuf->addr;
26027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26028
e930b1f5 26029if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26030{
26031 HI tmp_argihi;
26032 HI tmp_argilo;
26033 HI tmp_argjhi;
26034 HI tmp_argjlo;
26035{
26036 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26037 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26038 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26039 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26040}
26041{
26042 DI tmp_tmp1;
26043 DI tmp_tmp2;
26044 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26045 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26046 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26047if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26048{
26049 {
26050 DI opval = MAKEDI (127, 0xffffffff);
26051 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26052 written |= (1 << 9);
b34f6357
DB
26053 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26054 }
26055frvbf_media_overflow (current_cpu, 8);
26056}
26057} else {
26058if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26059{
26060 {
26061 DI opval = MAKEDI (0xffffff80, 0);
26062 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26063 written |= (1 << 9);
b34f6357
DB
26064 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26065 }
26066frvbf_media_overflow (current_cpu, 8);
26067}
26068} else {
26069 {
26070 DI opval = tmp_tmp1;
26071 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26072 written |= (1 << 9);
b34f6357
DB
26073 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26074 }
26075}
26076}
26077}
e930b1f5 26078}
b34f6357
DB
26079}
26080
26081 abuf->written = written;
26082 return vpc;
26083#undef FLD
26084}
26085
26086/* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
26087
26088static SEM_PC
26089SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26090{
26091#define FLD(f) abuf->fields.sfmt_cmmachs.f
26092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26093 int UNUSED written = 0;
26094 IADDR UNUSED pc = abuf->addr;
26095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26096
e930b1f5 26097if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26098{
26099 UHI tmp_argihi;
26100 UHI tmp_argilo;
26101 UHI tmp_argjhi;
26102 UHI tmp_argjlo;
26103{
26104 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26105 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26106 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26107 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26108}
26109{
26110 DI tmp_tmp1;
26111 DI tmp_tmp2;
26112 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26113 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26114 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26115if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26116{
26117 {
26118 DI opval = MAKEDI (255, 0xffffffff);
26119 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26120 written |= (1 << 9);
b34f6357
DB
26121 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26122 }
26123frvbf_media_overflow (current_cpu, 8);
26124}
26125} else {
26126if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26127{
26128 {
26129 DI opval = MAKEDI (0, 0);
26130 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26131 written |= (1 << 9);
b34f6357
DB
26132 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26133 }
26134frvbf_media_overflow (current_cpu, 8);
26135}
26136} else {
26137 {
26138 DI opval = tmp_tmp1;
26139 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26140 written |= (1 << 9);
b34f6357
DB
26141 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26142 }
26143}
26144}
26145}
e930b1f5 26146}
b34f6357
DB
26147}
26148
26149 abuf->written = written;
26150 return vpc;
26151#undef FLD
26152}
26153
26154/* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
26155
26156static SEM_PC
26157SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26158{
26159#define FLD(f) abuf->fields.sfmt_cmmachs.f
26160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26161 int UNUSED written = 0;
26162 IADDR UNUSED pc = abuf->addr;
26163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26164
e930b1f5 26165if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26166{
26167 HI tmp_argihi;
26168 HI tmp_argilo;
26169 HI tmp_argjhi;
26170 HI tmp_argjlo;
26171{
26172 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26173 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26174 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26175 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26176}
26177{
26178 DI tmp_tmp1;
26179 DI tmp_tmp2;
26180 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26181 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26182 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26183if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26184{
26185 {
26186 DI opval = MAKEDI (127, 0xffffffff);
26187 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26188 written |= (1 << 9);
b34f6357
DB
26189 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26190 }
26191frvbf_media_overflow (current_cpu, 8);
26192}
26193} else {
26194if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26195{
26196 {
26197 DI opval = MAKEDI (0xffffff80, 0);
26198 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26199 written |= (1 << 9);
b34f6357
DB
26200 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26201 }
26202frvbf_media_overflow (current_cpu, 8);
26203}
26204} else {
26205 {
26206 DI opval = tmp_tmp1;
26207 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26208 written |= (1 << 9);
b34f6357
DB
26209 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26210 }
26211}
26212}
26213}
e930b1f5 26214}
b34f6357
DB
26215}
26216
26217 abuf->written = written;
26218 return vpc;
26219#undef FLD
26220}
26221
26222/* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
26223
26224static SEM_PC
26225SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26226{
26227#define FLD(f) abuf->fields.sfmt_cmmachs.f
26228 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26229 int UNUSED written = 0;
26230 IADDR UNUSED pc = abuf->addr;
26231 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26232
e930b1f5 26233if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26234{
26235 UHI tmp_argihi;
26236 UHI tmp_argilo;
26237 UHI tmp_argjhi;
26238 UHI tmp_argjlo;
26239{
26240 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26241 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26242 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26243 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26244}
26245{
26246 DI tmp_tmp1;
26247 DI tmp_tmp2;
26248 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26249 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26250 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26251if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26252{
26253 {
26254 DI opval = MAKEDI (255, 0xffffffff);
26255 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26256 written |= (1 << 9);
b34f6357
DB
26257 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26258 }
26259frvbf_media_overflow (current_cpu, 8);
26260}
26261} else {
26262if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26263{
26264 {
26265 DI opval = MAKEDI (0, 0);
26266 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26267 written |= (1 << 9);
b34f6357
DB
26268 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26269 }
26270frvbf_media_overflow (current_cpu, 8);
26271}
26272} else {
26273 {
26274 DI opval = tmp_tmp1;
26275 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26276 written |= (1 << 9);
b34f6357
DB
26277 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26278 }
26279}
26280}
26281}
e930b1f5 26282}
b34f6357
DB
26283}
26284
26285 abuf->written = written;
26286 return vpc;
26287#undef FLD
26288}
26289
26290/* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26291
26292static SEM_PC
26293SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26294{
26295#define FLD(f) abuf->fields.sfmt_cmmachs.f
26296 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26297 int UNUSED written = 0;
26298 IADDR UNUSED pc = abuf->addr;
26299 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26300
26301if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
e930b1f5 26302if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26303{
26304 HI tmp_argihi;
26305 HI tmp_argilo;
26306 HI tmp_argjhi;
26307 HI tmp_argjlo;
26308{
26309 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26310 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26311 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26312 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26313}
26314{
26315 DI tmp_tmp1;
26316 DI tmp_tmp2;
26317 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26318 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26319 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26320if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26321{
26322 {
26323 DI opval = MAKEDI (127, 0xffffffff);
26324 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26325 written |= (1 << 11);
b34f6357
DB
26326 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26327 }
26328frvbf_media_overflow (current_cpu, 8);
26329}
26330} else {
26331if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26332{
26333 {
26334 DI opval = MAKEDI (0xffffff80, 0);
26335 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26336 written |= (1 << 11);
b34f6357
DB
26337 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26338 }
26339frvbf_media_overflow (current_cpu, 8);
26340}
26341} else {
26342 {
26343 DI opval = tmp_tmp1;
26344 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26345 written |= (1 << 11);
b34f6357
DB
26346 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26347 }
26348}
26349}
26350}
26351}
e930b1f5 26352}
b34f6357
DB
26353}
26354
26355 abuf->written = written;
26356 return vpc;
26357#undef FLD
26358}
26359
26360/* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26361
26362static SEM_PC
26363SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26364{
26365#define FLD(f) abuf->fields.sfmt_cmmachs.f
26366 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26367 int UNUSED written = 0;
26368 IADDR UNUSED pc = abuf->addr;
26369 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26370
26371if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
e930b1f5 26372if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26373{
26374 UHI tmp_argihi;
26375 UHI tmp_argilo;
26376 UHI tmp_argjhi;
26377 UHI tmp_argjlo;
26378{
26379 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26380 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26381 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26382 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26383}
26384{
26385 DI tmp_tmp1;
26386 DI tmp_tmp2;
26387 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26388 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26389 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26390if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26391{
26392 {
26393 DI opval = MAKEDI (255, 0xffffffff);
26394 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26395 written |= (1 << 11);
b34f6357
DB
26396 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26397 }
26398frvbf_media_overflow (current_cpu, 8);
26399}
26400} else {
26401if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26402{
26403 {
26404 DI opval = MAKEDI (0, 0);
26405 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26406 written |= (1 << 11);
b34f6357
DB
26407 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26408 }
26409frvbf_media_overflow (current_cpu, 8);
26410}
26411} else {
26412 {
26413 DI opval = tmp_tmp1;
26414 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26415 written |= (1 << 11);
b34f6357
DB
26416 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26417 }
26418}
26419}
26420}
26421}
e930b1f5 26422}
b34f6357
DB
26423}
26424
26425 abuf->written = written;
26426 return vpc;
26427#undef FLD
26428}
26429
26430/* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26431
26432static SEM_PC
26433SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26434{
26435#define FLD(f) abuf->fields.sfmt_cmmachs.f
26436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26437 int UNUSED written = 0;
26438 IADDR UNUSED pc = abuf->addr;
26439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26440
26441if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
e930b1f5 26442if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26443{
26444 HI tmp_argihi;
26445 HI tmp_argilo;
26446 HI tmp_argjhi;
26447 HI tmp_argjlo;
26448{
26449 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26450 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26451 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26452 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26453}
26454{
26455 DI tmp_tmp1;
26456 DI tmp_tmp2;
26457 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26458 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26459 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26460if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26461{
26462 {
26463 DI opval = MAKEDI (127, 0xffffffff);
26464 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26465 written |= (1 << 11);
b34f6357
DB
26466 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26467 }
26468frvbf_media_overflow (current_cpu, 8);
26469}
26470} else {
26471if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26472{
26473 {
26474 DI opval = MAKEDI (0xffffff80, 0);
26475 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26476 written |= (1 << 11);
b34f6357
DB
26477 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26478 }
26479frvbf_media_overflow (current_cpu, 8);
26480}
26481} else {
26482 {
26483 DI opval = tmp_tmp1;
26484 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26485 written |= (1 << 11);
b34f6357
DB
26486 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26487 }
26488}
26489}
26490}
26491}
e930b1f5 26492}
b34f6357
DB
26493}
26494
26495 abuf->written = written;
26496 return vpc;
26497#undef FLD
26498}
26499
26500/* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26501
26502static SEM_PC
26503SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26504{
26505#define FLD(f) abuf->fields.sfmt_cmmachs.f
26506 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26507 int UNUSED written = 0;
26508 IADDR UNUSED pc = abuf->addr;
26509 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26510
26511if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
e930b1f5 26512if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26513{
26514 UHI tmp_argihi;
26515 UHI tmp_argilo;
26516 UHI tmp_argjhi;
26517 UHI tmp_argjlo;
26518{
26519 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26520 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26521 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26522 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26523}
26524{
26525 DI tmp_tmp1;
26526 DI tmp_tmp2;
26527 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26528 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26529 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26530if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26531{
26532 {
26533 DI opval = MAKEDI (255, 0xffffffff);
26534 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26535 written |= (1 << 11);
b34f6357
DB
26536 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26537 }
26538frvbf_media_overflow (current_cpu, 8);
26539}
26540} else {
26541if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26542{
26543 {
26544 DI opval = MAKEDI (0, 0);
26545 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26546 written |= (1 << 11);
b34f6357
DB
26547 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26548 }
26549frvbf_media_overflow (current_cpu, 8);
26550}
26551} else {
26552 {
26553 DI opval = tmp_tmp1;
26554 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
e930b1f5 26555 written |= (1 << 11);
b34f6357
DB
26556 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26557 }
26558}
26559}
26560}
26561}
e930b1f5 26562}
b34f6357
DB
26563}
26564
26565 abuf->written = written;
26566 return vpc;
26567#undef FLD
26568}
26569
26570/* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26571
26572static SEM_PC
26573SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26574{
26575#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26576 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26577 int UNUSED written = 0;
26578 IADDR UNUSED pc = abuf->addr;
26579 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26580
e930b1f5 26581if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26582if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26583frvbf_media_acc_not_aligned (current_cpu);
26584} else {
26585if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26586frvbf_media_register_not_aligned (current_cpu);
26587} else {
26588{
26589 HI tmp_argihi;
26590 HI tmp_argilo;
26591 HI tmp_argjhi;
26592 HI tmp_argjlo;
26593{
26594 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26595 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26596 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26597 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26598}
26599{
26600 DI tmp_tmp1;
26601 DI tmp_tmp2;
26602 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26603 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26604 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26605if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26606{
26607 {
26608 DI opval = MAKEDI (127, 0xffffffff);
26609 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26610 written |= (1 << 13);
26611 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26612 }
26613frvbf_media_overflow (current_cpu, 8);
26614}
26615} else {
26616if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26617{
26618 {
26619 DI opval = MAKEDI (0xffffff80, 0);
26620 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26621 written |= (1 << 13);
26622 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26623 }
26624frvbf_media_overflow (current_cpu, 8);
26625}
26626} else {
26627 {
26628 DI opval = tmp_tmp1;
26629 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26630 written |= (1 << 13);
26631 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26632 }
26633}
26634}
26635}
26636{
26637 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26638 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26639 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26640 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26641}
26642{
26643 DI tmp_tmp1;
26644 DI tmp_tmp2;
26645 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26646 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26647 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26648if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26649{
26650 {
26651 DI opval = MAKEDI (127, 0xffffffff);
26652 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26653 written |= (1 << 14);
26654 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26655 }
26656frvbf_media_overflow (current_cpu, 4);
26657}
26658} else {
26659if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26660{
26661 {
26662 DI opval = MAKEDI (0xffffff80, 0);
26663 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26664 written |= (1 << 14);
26665 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26666 }
26667frvbf_media_overflow (current_cpu, 4);
26668}
26669} else {
26670 {
26671 DI opval = tmp_tmp1;
26672 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26673 written |= (1 << 14);
26674 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26675 }
26676}
26677}
26678}
26679}
26680}
e930b1f5 26681}
b34f6357
DB
26682}
26683
26684 abuf->written = written;
26685 return vpc;
26686#undef FLD
26687}
26688
26689/* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26690
26691static SEM_PC
26692SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26693{
26694#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26695 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26696 int UNUSED written = 0;
26697 IADDR UNUSED pc = abuf->addr;
26698 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26699
e930b1f5 26700if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26701if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26702frvbf_media_acc_not_aligned (current_cpu);
26703} else {
26704if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26705frvbf_media_register_not_aligned (current_cpu);
26706} else {
26707{
26708 UHI tmp_argihi;
26709 UHI tmp_argilo;
26710 UHI tmp_argjhi;
26711 UHI tmp_argjlo;
26712{
26713 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26714 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26715 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26716 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26717}
26718{
26719 DI tmp_tmp1;
26720 DI tmp_tmp2;
26721 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26722 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26723 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26724if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26725{
26726 {
26727 DI opval = MAKEDI (255, 0xffffffff);
26728 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26729 written |= (1 << 13);
26730 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26731 }
26732frvbf_media_overflow (current_cpu, 8);
26733}
26734} else {
26735if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26736{
26737 {
26738 DI opval = MAKEDI (0, 0);
26739 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26740 written |= (1 << 13);
26741 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26742 }
26743frvbf_media_overflow (current_cpu, 8);
26744}
26745} else {
26746 {
26747 DI opval = tmp_tmp1;
26748 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26749 written |= (1 << 13);
26750 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26751 }
26752}
26753}
26754}
26755{
26756 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26757 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26758 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26759 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26760}
26761{
26762 DI tmp_tmp1;
26763 DI tmp_tmp2;
26764 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26765 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26766 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26767if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26768{
26769 {
26770 DI opval = MAKEDI (255, 0xffffffff);
26771 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26772 written |= (1 << 14);
26773 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26774 }
26775frvbf_media_overflow (current_cpu, 4);
26776}
26777} else {
26778if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26779{
26780 {
26781 DI opval = MAKEDI (0, 0);
26782 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26783 written |= (1 << 14);
26784 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26785 }
26786frvbf_media_overflow (current_cpu, 4);
26787}
26788} else {
26789 {
26790 DI opval = tmp_tmp1;
26791 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26792 written |= (1 << 14);
26793 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26794 }
26795}
26796}
26797}
26798}
26799}
e930b1f5 26800}
b34f6357
DB
26801}
26802
26803 abuf->written = written;
26804 return vpc;
26805#undef FLD
26806}
26807
26808/* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26809
26810static SEM_PC
26811SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26812{
26813#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26814 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26815 int UNUSED written = 0;
26816 IADDR UNUSED pc = abuf->addr;
26817 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26818
e930b1f5 26819if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26820if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26821frvbf_media_acc_not_aligned (current_cpu);
26822} else {
26823if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26824frvbf_media_register_not_aligned (current_cpu);
26825} else {
26826{
26827 HI tmp_argihi;
26828 HI tmp_argilo;
26829 HI tmp_argjhi;
26830 HI tmp_argjlo;
26831{
26832 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26833 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26834 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26835 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26836}
26837{
26838 DI tmp_tmp1;
26839 DI tmp_tmp2;
26840 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26841 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26842 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26843if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26844{
26845 {
26846 DI opval = MAKEDI (127, 0xffffffff);
26847 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26848 written |= (1 << 13);
26849 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26850 }
26851frvbf_media_overflow (current_cpu, 8);
26852}
26853} else {
26854if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26855{
26856 {
26857 DI opval = MAKEDI (0xffffff80, 0);
26858 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26859 written |= (1 << 13);
26860 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26861 }
26862frvbf_media_overflow (current_cpu, 8);
26863}
26864} else {
26865 {
26866 DI opval = tmp_tmp1;
26867 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26868 written |= (1 << 13);
26869 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26870 }
26871}
26872}
26873}
26874{
26875 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26876 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26877 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26878 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26879}
26880{
26881 DI tmp_tmp1;
26882 DI tmp_tmp2;
26883 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26884 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26885 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26886if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26887{
26888 {
26889 DI opval = MAKEDI (127, 0xffffffff);
26890 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26891 written |= (1 << 14);
26892 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26893 }
26894frvbf_media_overflow (current_cpu, 4);
26895}
26896} else {
26897if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26898{
26899 {
26900 DI opval = MAKEDI (0xffffff80, 0);
26901 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26902 written |= (1 << 14);
26903 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26904 }
26905frvbf_media_overflow (current_cpu, 4);
26906}
26907} else {
26908 {
26909 DI opval = tmp_tmp1;
26910 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26911 written |= (1 << 14);
26912 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26913 }
26914}
26915}
26916}
26917}
26918}
e930b1f5 26919}
b34f6357
DB
26920}
26921
26922 abuf->written = written;
26923 return vpc;
26924#undef FLD
26925}
26926
26927/* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26928
26929static SEM_PC
26930SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26931{
26932#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26933 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26934 int UNUSED written = 0;
26935 IADDR UNUSED pc = abuf->addr;
26936 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26937
e930b1f5 26938if (frvbf_check_acc_range (current_cpu, FLD (f_ACC40Sk))) {
b34f6357
DB
26939if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26940frvbf_media_acc_not_aligned (current_cpu);
26941} else {
26942if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26943frvbf_media_register_not_aligned (current_cpu);
26944} else {
26945{
26946 UHI tmp_argihi;
26947 UHI tmp_argilo;
26948 UHI tmp_argjhi;
26949 UHI tmp_argjlo;
26950{
26951 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26952 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26953 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26954 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26955}
26956{
26957 DI tmp_tmp1;
26958 DI tmp_tmp2;
26959 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26960 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26961 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26962if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26963{
26964 {
26965 DI opval = MAKEDI (255, 0xffffffff);
26966 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26967 written |= (1 << 13);
26968 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26969 }
26970frvbf_media_overflow (current_cpu, 8);
26971}
26972} else {
26973if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26974{
26975 {
26976 DI opval = MAKEDI (0, 0);
26977 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26978 written |= (1 << 13);
26979 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26980 }
26981frvbf_media_overflow (current_cpu, 8);
26982}
26983} else {
26984 {
26985 DI opval = tmp_tmp1;
26986 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26987 written |= (1 << 13);
26988 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26989 }
26990}
26991}
26992}
26993{
26994 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26995 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26996 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26997 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26998}
26999{
27000 DI tmp_tmp1;
27001 DI tmp_tmp2;
27002 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
27003 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
27004 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
27005if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
27006{
27007 {
27008 DI opval = MAKEDI (255, 0xffffffff);
27009 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27010 written |= (1 << 14);
27011 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27012 }
27013frvbf_media_overflow (current_cpu, 4);
27014}
27015} else {
27016if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
27017{
27018 {
27019 DI opval = MAKEDI (0, 0);
27020 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27021 written |= (1 << 14);
27022 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27023 }
27024frvbf_media_overflow (current_cpu, 4);
27025}
27026} else {
27027 {
27028 DI opval = tmp_tmp1;
27029 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
27030 written |= (1 << 14);
27031 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27032 }
27033}
27034}
27035}
27036}
27037}
e930b1f5 27038}
b34f6357
DB
27039}
27040
27041 abuf->written = written;
27042 return vpc;
27043#undef FLD
27044}
27045
27046/* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
27047
27048static SEM_PC
27049SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27050{
27051#define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27052 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27053 int UNUSED written = 0;
27054 IADDR UNUSED pc = abuf->addr;
27055 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27056
27057{
27058 UHI tmp_tmp;
27059if (ANDSI (FLD (f_u6), 1)) {
27060 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27061} else {
27062 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27063}
27064 {
27065 UHI opval = tmp_tmp;
27066 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27067 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27068 }
27069 {
27070 UHI opval = tmp_tmp;
27071 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27072 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27073 }
27074}
27075
27076 return vpc;
27077#undef FLD
27078}
27079
27080/* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
27081
27082static SEM_PC
27083SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27084{
27085#define FLD(f) abuf->fields.sfmt_cmexpdhw.f
27086 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27087 int UNUSED written = 0;
27088 IADDR UNUSED pc = abuf->addr;
27089 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27090
27091if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27092{
27093 UHI tmp_tmp;
27094if (ANDSI (FLD (f_u6), 1)) {
27095 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27096} else {
27097 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27098}
27099 {
27100 UHI opval = tmp_tmp;
27101 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27102 written |= (1 << 7);
27103 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27104 }
27105 {
27106 UHI opval = tmp_tmp;
27107 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27108 written |= (1 << 8);
27109 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27110 }
27111}
27112}
27113
27114 abuf->written = written;
27115 return vpc;
27116#undef FLD
27117}
27118
27119/* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
27120
27121static SEM_PC
27122SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27123{
27124#define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27125 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27126 int UNUSED written = 0;
27127 IADDR UNUSED pc = abuf->addr;
27128 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27129
27130if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27131frvbf_media_register_not_aligned (current_cpu);
27132} else {
27133{
27134 UHI tmp_tmp;
27135 {
27136 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27137 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27138 written |= (1 << 6);
27139 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27140 }
27141if (ANDSI (FLD (f_u6), 1)) {
27142 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27143} else {
27144 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27145}
27146 {
27147 UHI opval = tmp_tmp;
27148 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27149 written |= (1 << 7);
27150 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27151 }
27152 {
27153 UHI opval = tmp_tmp;
27154 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27155 written |= (1 << 9);
27156 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27157 }
27158 {
27159 UHI opval = tmp_tmp;
27160 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27161 written |= (1 << 8);
27162 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27163 }
27164 {
27165 UHI opval = tmp_tmp;
27166 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27167 written |= (1 << 10);
27168 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27169 }
27170}
27171}
27172
27173 abuf->written = written;
27174 return vpc;
27175#undef FLD
27176}
27177
27178/* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
27179
27180static SEM_PC
27181SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27182{
27183#define FLD(f) abuf->fields.sfmt_cmexpdhd.f
27184 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27185 int UNUSED written = 0;
27186 IADDR UNUSED pc = abuf->addr;
27187 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27188
27189if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27190frvbf_media_register_not_aligned (current_cpu);
27191} else {
27192if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27193{
27194 UHI tmp_tmp;
27195 {
27196 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27197 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27198 written |= (1 << 8);
27199 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27200 }
27201if (ANDSI (FLD (f_u6), 1)) {
27202 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27203} else {
27204 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27205}
27206 {
27207 UHI opval = tmp_tmp;
27208 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27209 written |= (1 << 9);
27210 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27211 }
27212 {
27213 UHI opval = tmp_tmp;
27214 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27215 written |= (1 << 11);
27216 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27217 }
27218 {
27219 UHI opval = tmp_tmp;
27220 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27221 written |= (1 << 10);
27222 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27223 }
27224 {
27225 UHI opval = tmp_tmp;
27226 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27227 written |= (1 << 12);
27228 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27229 }
27230}
27231}
27232}
27233
27234 abuf->written = written;
27235 return vpc;
27236#undef FLD
27237}
27238
27239/* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
27240
27241static SEM_PC
27242SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27243{
27244#define FLD(f) abuf->fields.sfmt_cmaddhss.f
27245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27246 int UNUSED written = 0;
27247 IADDR UNUSED pc = abuf->addr;
27248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27249
27250{
27251 {
27252 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27253 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27254 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27255 }
27256 {
27257 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27258 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27259 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27260 }
27261}
27262
27263 return vpc;
27264#undef FLD
27265}
27266
27267/* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27268
27269static SEM_PC
27270SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27271{
27272#define FLD(f) abuf->fields.sfmt_mdpackh.f
27273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27274 int UNUSED written = 0;
27275 IADDR UNUSED pc = abuf->addr;
27276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27277
27278if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27279frvbf_media_register_not_aligned (current_cpu);
27280} else {
27281{
27282 {
27283 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27284 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27285 written |= (1 << 10);
27286 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27287 }
27288 {
27289 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27290 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27291 written |= (1 << 11);
27292 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27293 }
27294 {
27295 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27296 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27297 written |= (1 << 12);
27298 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27299 }
27300{
27301 {
27302 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27303 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27304 written |= (1 << 13);
27305 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27306 }
27307 {
27308 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27309 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27310 written |= (1 << 15);
27311 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27312 }
27313}
27314{
27315 {
27316 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27317 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27318 written |= (1 << 14);
27319 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27320 }
27321 {
27322 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27323 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27324 written |= (1 << 16);
27325 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27326 }
27327}
27328}
27329}
27330
27331 abuf->written = written;
27332 return vpc;
27333#undef FLD
27334}
27335
27336/* munpackh: munpackh$pack $FRinti,$FRintkeven */
27337
27338static SEM_PC
27339SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27340{
27341#define FLD(f) abuf->fields.sfmt_munpackh.f
27342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27343 int UNUSED written = 0;
27344 IADDR UNUSED pc = abuf->addr;
27345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27346
27347if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27348frvbf_media_register_not_aligned (current_cpu);
27349} else {
27350{
27351 {
27352 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27353 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27354 written |= (1 << 6);
27355 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27356 }
27357 {
27358 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27359 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27360 written |= (1 << 7);
27361 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27362 }
27363{
27364 {
27365 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27366 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27367 written |= (1 << 8);
27368 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27369 }
27370 {
27371 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27372 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27373 written |= (1 << 10);
27374 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27375 }
27376 {
27377 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27378 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27379 written |= (1 << 9);
27380 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27381 }
27382 {
27383 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27384 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27385 written |= (1 << 11);
27386 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27387 }
27388}
27389}
27390}
27391
27392 abuf->written = written;
27393 return vpc;
27394#undef FLD
27395}
27396
27397/* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27398
27399static SEM_PC
27400SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27401{
27402#define FLD(f) abuf->fields.sfmt_mdunpackh.f
27403 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27404 int UNUSED written = 0;
27405 IADDR UNUSED pc = abuf->addr;
27406 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27407
27408if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27409frvbf_media_register_not_aligned (current_cpu);
27410} else {
27411{
27412 {
27413 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27414 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27415 written |= (1 << 8);
27416 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27417 }
27418 {
27419 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27420 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27421 written |= (1 << 9);
27422 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27423 }
27424{
27425 {
27426 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27427 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27428 written |= (1 << 10);
27429 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27430 }
27431 {
27432 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27433 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27434 written |= (1 << 14);
27435 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27436 }
27437 {
27438 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27439 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27440 written |= (1 << 12);
27441 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27442 }
27443 {
27444 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27445 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27446 written |= (1 << 16);
27447 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27448 }
27449}
27450{
27451 {
27452 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27453 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27454 written |= (1 << 11);
27455 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27456 }
27457 {
27458 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27459 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27460 written |= (1 << 15);
27461 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27462 }
27463 {
27464 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27465 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27466 written |= (1 << 13);
27467 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27468 }
27469 {
27470 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27471 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27472 written |= (1 << 17);
27473 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27474 }
27475}
27476}
27477}
27478
27479 abuf->written = written;
27480 return vpc;
27481#undef FLD
27482}
27483
27484/* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27485
27486static SEM_PC
27487SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27488{
27489#define FLD(f) abuf->fields.sfmt_cmbtoh.f
27490 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27491 int UNUSED written = 0;
27492 IADDR UNUSED pc = abuf->addr;
27493 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27494
27495{
27496 {
27497 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27498 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27499 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27500 }
27501 {
27502 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27503 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27504 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27505 }
27506if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27507frvbf_media_register_not_aligned (current_cpu);
27508} else {
27509{
27510 {
27511 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27512 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27513 written |= (1 << 10);
27514 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27515 }
27516 {
27517 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27518 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27519 written |= (1 << 12);
27520 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27521 }
27522 {
27523 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27524 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27525 written |= (1 << 11);
27526 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27527 }
27528 {
27529 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27530 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27531 written |= (1 << 13);
27532 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27533 }
27534}
27535}
27536}
27537
27538 abuf->written = written;
27539 return vpc;
27540#undef FLD
27541}
27542
27543/* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27544
27545static SEM_PC
27546SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27547{
27548#define FLD(f) abuf->fields.sfmt_cmbtoh.f
27549 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27550 int UNUSED written = 0;
27551 IADDR UNUSED pc = abuf->addr;
27552 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27553
27554{
27555 {
27556 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27557 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27558 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27559 }
27560 {
27561 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27562 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27563 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27564 }
27565if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27566frvbf_media_register_not_aligned (current_cpu);
27567} else {
27568if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27569{
27570 {
27571 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27572 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27573 written |= (1 << 12);
27574 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27575 }
27576 {
27577 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27578 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27579 written |= (1 << 14);
27580 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27581 }
27582 {
27583 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27584 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27585 written |= (1 << 13);
27586 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27587 }
27588 {
27589 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27590 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27591 written |= (1 << 15);
27592 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27593 }
27594}
27595}
27596}
27597}
27598
27599 abuf->written = written;
27600 return vpc;
27601#undef FLD
27602}
27603
27604/* mhtob: mhtob$pack $FRintjeven,$FRintk */
27605
27606static SEM_PC
27607SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27608{
27609#define FLD(f) abuf->fields.sfmt_cmhtob.f
27610 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27611 int UNUSED written = 0;
27612 IADDR UNUSED pc = abuf->addr;
27613 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27614
27615{
27616 {
27617 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27618 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27619 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27620 }
27621 {
27622 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27623 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27624 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27625 }
27626if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27627frvbf_media_register_not_aligned (current_cpu);
27628} else {
27629{
27630 {
27631 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27632 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27633 written |= (1 << 13);
27634 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27635 }
27636 {
27637 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27638 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27639 written |= (1 << 12);
27640 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27641 }
27642 {
27643 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27644 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27645 written |= (1 << 11);
27646 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27647 }
27648 {
27649 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27650 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27651 written |= (1 << 10);
27652 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27653 }
27654}
27655}
27656}
27657
27658 abuf->written = written;
27659 return vpc;
27660#undef FLD
27661}
27662
27663/* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27664
27665static SEM_PC
27666SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27667{
27668#define FLD(f) abuf->fields.sfmt_cmhtob.f
27669 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27670 int UNUSED written = 0;
27671 IADDR UNUSED pc = abuf->addr;
27672 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27673
27674{
27675 {
27676 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27677 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27678 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27679 }
27680 {
27681 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27682 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27683 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27684 }
27685if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27686frvbf_media_register_not_aligned (current_cpu);
27687} else {
27688if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27689{
27690 {
27691 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27692 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27693 written |= (1 << 15);
27694 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27695 }
27696 {
27697 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27698 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27699 written |= (1 << 14);
27700 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27701 }
27702 {
27703 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27704 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27705 written |= (1 << 13);
27706 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27707 }
27708 {
27709 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27710 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27711 written |= (1 << 12);
27712 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27713 }
27714}
27715}
27716}
27717}
27718
27719 abuf->written = written;
27720 return vpc;
27721#undef FLD
27722}
27723
27724/* mbtohe: mbtohe$pack $FRintj,$FRintk */
27725
27726static SEM_PC
27727SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27728{
27729#define FLD(f) abuf->fields.sfmt_cmbtohe.f
27730 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27731 int UNUSED written = 0;
27732 IADDR UNUSED pc = abuf->addr;
27733 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27734
27735{
27736 {
27737 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27738 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27739 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27740 }
27741 {
27742 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27743 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27744 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27745 }
27746if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27747frvbf_media_register_not_aligned (current_cpu);
27748} else {
27749{
27750 {
27751 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27752 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27753 written |= (1 << 10);
27754 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27755 }
27756 {
27757 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27758 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27759 written |= (1 << 14);
27760 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27761 }
27762 {
27763 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27764 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27765 written |= (1 << 11);
27766 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27767 }
27768 {
27769 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27770 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27771 written |= (1 << 15);
27772 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27773 }
27774 {
27775 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27776 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27777 written |= (1 << 12);
27778 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27779 }
27780 {
27781 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27782 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27783 written |= (1 << 16);
27784 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27785 }
27786 {
27787 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27788 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27789 written |= (1 << 13);
27790 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27791 }
27792 {
27793 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27794 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27795 written |= (1 << 17);
27796 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27797 }
27798}
27799}
27800}
27801
27802 abuf->written = written;
27803 return vpc;
27804#undef FLD
27805}
27806
27807/* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27808
27809static SEM_PC
27810SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27811{
27812#define FLD(f) abuf->fields.sfmt_cmbtohe.f
27813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27814 int UNUSED written = 0;
27815 IADDR UNUSED pc = abuf->addr;
27816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27817
27818{
27819 {
27820 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27821 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27822 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27823 }
27824 {
27825 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27826 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27827 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27828 }
27829if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27830frvbf_media_register_not_aligned (current_cpu);
27831} else {
27832if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27833{
27834 {
27835 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27836 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27837 written |= (1 << 12);
27838 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27839 }
27840 {
27841 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27842 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27843 written |= (1 << 16);
27844 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27845 }
27846 {
27847 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27848 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27849 written |= (1 << 13);
27850 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27851 }
27852 {
27853 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27854 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27855 written |= (1 << 17);
27856 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27857 }
27858 {
27859 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27860 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27861 written |= (1 << 14);
27862 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27863 }
27864 {
27865 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27866 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27867 written |= (1 << 18);
27868 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27869 }
27870 {
27871 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27872 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27873 written |= (1 << 15);
27874 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27875 }
27876 {
27877 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27878 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27879 written |= (1 << 19);
27880 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27881 }
27882}
27883}
27884}
27885}
27886
27887 abuf->written = written;
27888 return vpc;
27889#undef FLD
27890}
27891
d03ea14f 27892/* mnop: mnop$pack */
b34f6357
DB
27893
27894static SEM_PC
d03ea14f 27895SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
b34f6357 27896{
d03ea14f
DB
27897#define FLD(f) abuf->fields.fmt_empty.f
27898 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27899 int UNUSED written = 0;
27900 IADDR UNUSED pc = abuf->addr;
27901 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27902
27903((void) 0); /*nop*/
27904
27905 return vpc;
27906#undef FLD
27907}
27908
27909/* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27910
27911static SEM_PC
27912SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27913{
27914#define FLD(f) abuf->fields.sfmt_mdasaccs.f
27915 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27916 int UNUSED written = 0;
27917 IADDR UNUSED pc = abuf->addr;
27918 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27919
27920frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27921
27922 return vpc;
27923#undef FLD
27924}
27925
27926/* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27927
27928static SEM_PC
27929SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27930{
27931#define FLD(f) abuf->fields.sfmt_mdasaccs.f
b34f6357
DB
27932 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27933 int UNUSED written = 0;
27934 IADDR UNUSED pc = abuf->addr;
27935 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27936
d03ea14f 27937frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
b34f6357
DB
27938
27939 return vpc;
27940#undef FLD
27941}
27942
27943/* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27944
27945static SEM_PC
27946SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27947{
27948#define FLD(f) abuf->fields.sfmt_mcuti.f
27949 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27950 int UNUSED written = 0;
27951 IADDR UNUSED pc = abuf->addr;
27952 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27953
27954 {
27955 SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27956 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27957 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27958 }
27959
27960 return vpc;
27961#undef FLD
27962}
27963
27964/* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27965
27966static SEM_PC
27967SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27968{
27969#define FLD(f) abuf->fields.sfmt_mrdaccg.f
27970 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27971 int UNUSED written = 0;
27972 IADDR UNUSED pc = abuf->addr;
27973 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27974
27975 {
27976 SI opval = GET_H_ACCG (FLD (f_ACCGi));
27977 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27978 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27979 }
27980
27981 return vpc;
27982#undef FLD
27983}
27984
27985/* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27986
27987static SEM_PC
27988SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27989{
27990#define FLD(f) abuf->fields.sfmt_cmmachs.f
27991 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27992 int UNUSED written = 0;
27993 IADDR UNUSED pc = abuf->addr;
27994 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27995
27996 {
27997 DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27998 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27999 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
28000 }
28001
28002 return vpc;
28003#undef FLD
28004}
28005
28006/* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
28007
28008static SEM_PC
28009SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28010{
28011#define FLD(f) abuf->fields.sfmt_mwtaccg.f
28012 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28013 int UNUSED written = 0;
28014 IADDR UNUSED pc = abuf->addr;
28015 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28016
1c453cd6
DB
28017{
28018frv_ref_SI (GET_H_ACCG (FLD (f_ACCGk)));
b34f6357
DB
28019 {
28020 USI opval = GET_H_FR_INT (FLD (f_FRi));
28021 sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
28022 TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
28023 }
1c453cd6 28024}
b34f6357
DB
28025
28026 return vpc;
28027#undef FLD
28028}
28029
28030/* mcop1: mcop1$pack $FRi,$FRj,$FRk */
28031
28032static SEM_PC
28033SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28034{
28035#define FLD(f) abuf->fields.fmt_empty.f
28036 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28037 int UNUSED written = 0;
28038 IADDR UNUSED pc = abuf->addr;
28039 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28040
28041frvbf_media_cop (current_cpu, 1);
28042
28043 return vpc;
28044#undef FLD
28045}
28046
28047/* mcop2: mcop2$pack $FRi,$FRj,$FRk */
28048
28049static SEM_PC
28050SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28051{
28052#define FLD(f) abuf->fields.fmt_empty.f
28053 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28054 int UNUSED written = 0;
28055 IADDR UNUSED pc = abuf->addr;
28056 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28057
28058frvbf_media_cop (current_cpu, 2);
28059
28060 return vpc;
28061#undef FLD
28062}
28063
28064/* fnop: fnop$pack */
28065
28066static SEM_PC
28067SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
28068{
28069#define FLD(f) abuf->fields.fmt_empty.f
28070 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
28071 int UNUSED written = 0;
28072 IADDR UNUSED pc = abuf->addr;
28073 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
28074
28075((void) 0); /*nop*/
28076
28077 return vpc;
28078#undef FLD
28079}
28080
28081/* Table of all semantic fns. */
28082
28083static const struct sem_fn_desc sem_fns[] = {
28084 { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
28085 { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
28086 { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
28087 { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
28088 { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
28089 { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
28090 { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
28091 { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
28092 { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
28093 { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
28094 { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
28095 { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
28096 { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
28097 { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
28098 { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
28099 { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
28100 { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
28101 { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
e930b1f5
DB
28102 { FRVBF_INSN_SMU, SEM_FN_NAME (frvbf,smu) },
28103 { FRVBF_INSN_SMASS, SEM_FN_NAME (frvbf,smass) },
28104 { FRVBF_INSN_SMSSS, SEM_FN_NAME (frvbf,smsss) },
b34f6357
DB
28105 { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
28106 { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
28107 { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
e930b1f5
DB
28108 { FRVBF_INSN_SLASS, SEM_FN_NAME (frvbf,slass) },
28109 { FRVBF_INSN_SCUTSS, SEM_FN_NAME (frvbf,scutss) },
b34f6357
DB
28110 { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
28111 { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
28112 { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
28113 { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
28114 { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
28115 { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
28116 { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
28117 { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
28118 { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
28119 { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
28120 { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
28121 { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
28122 { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
28123 { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
28124 { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
28125 { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
28126 { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
28127 { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
28128 { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
28129 { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
28130 { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
28131 { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
28132 { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
28133 { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
28134 { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
28135 { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
28136 { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
28137 { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
28138 { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
28139 { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
28140 { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
28141 { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
28142 { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
28143 { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
28144 { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
28145 { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
28146 { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
e930b1f5
DB
28147 { FRVBF_INSN_ADDSS, SEM_FN_NAME (frvbf,addss) },
28148 { FRVBF_INSN_SUBSS, SEM_FN_NAME (frvbf,subss) },
b34f6357
DB
28149 { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
28150 { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
28151 { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
28152 { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
28153 { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
28154 { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
28155 { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
28156 { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
28157 { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
28158 { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
28159 { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
28160 { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
28161 { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
28162 { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
28163 { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
28164 { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
28165 { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
28166 { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
28167 { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
28168 { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
28169 { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
28170 { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
28171 { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
28172 { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
28173 { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
28174 { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
28175 { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
28176 { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
28177 { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
28178 { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
28179 { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
28180 { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
28181 { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
28182 { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
28183 { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
28184 { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
28185 { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
28186 { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
28187 { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
28188 { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
28189 { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
28190 { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
28191 { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
28192 { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
28193 { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
28194 { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
28195 { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
28196 { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
28197 { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
28198 { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
28199 { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
28200 { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
28201 { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
28202 { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
28203 { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
28204 { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
28205 { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
28206 { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
28207 { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
28208 { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
28209 { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
28210 { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
28211 { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
28212 { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
28213 { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
28214 { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
28215 { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
28216 { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
28217 { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
28218 { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
28219 { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
28220 { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
28221 { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
28222 { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
28223 { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
28224 { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
28225 { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
28226 { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
28227 { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
28228 { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
28229 { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
28230 { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
28231 { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
28232 { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
28233 { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
28234 { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
28235 { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
28236 { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
28237 { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
28238 { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
28239 { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
28240 { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
28241 { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
28242 { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
28243 { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
28244 { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
28245 { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
28246 { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
28247 { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
28248 { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
28249 { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
28250 { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
28251 { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
28252 { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28253 { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28254 { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28255 { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28256 { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28257 { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28258 { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
b34f6357
DB
28259 { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28260 { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28261 { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28262 { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28263 { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28264 { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28265 { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28266 { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28267 { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
28268 { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
28269 { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
28270 { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
28271 { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
28272 { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
28273 { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28274 { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28275 { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28276 { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
28277 { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
28278 { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28279 { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28280 { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28281 { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
28282 { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
28283 { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28284 { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28285 { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28286 { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28287 { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28288 { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28289 { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28290 { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28291 { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28292 { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28293 { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28294 { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28295 { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28296 { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28297 { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28298 { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28299 { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28300 { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28301 { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28302 { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28303 { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28304 { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28305 { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28306 { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28307 { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28308 { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28309 { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28310 { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28311 { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28312 { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28313 { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28314 { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28315 { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28316 { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28317 { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28318 { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28319 { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28320 { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28321 { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28322 { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28323 { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28324 { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28325 { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28326 { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28327 { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28328 { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28329 { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28330 { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28331 { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28332 { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28333 { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28334 { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28335 { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28336 { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28337 { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28338 { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28339 { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28340 { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28341 { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28342 { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28343 { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28344 { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28345 { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28346 { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28347 { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28348 { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28349 { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28350 { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28351 { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28352 { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28353 { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28354 { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28355 { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28356 { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28357 { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28358 { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28359 { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28360 { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28361 { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28362 { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28363 { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28364 { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28365 { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28366 { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28367 { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28368 { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28369 { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28370 { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28371 { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28372 { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28373 { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28374 { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28375 { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28376 { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28377 { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28378 { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28379 { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28380 { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28381 { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28382 { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28383 { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28384 { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28385 { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28386 { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28387 { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28388 { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28389 { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28390 { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28391 { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28392 { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28393 { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28394 { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28395 { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28396 { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28397 { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28398 { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28399 { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28400 { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28401 { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28402 { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28403 { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28404 { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28405 { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28406 { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28407 { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28408 { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28409 { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28410 { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28411 { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28412 { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28413 { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28414 { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28415 { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28416 { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28417 { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28418 { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28419 { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28420 { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28421 { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28422 { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28423 { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28424 { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28425 { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28426 { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28427 { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28428 { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28429 { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28430 { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28431 { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28432 { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28433 { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28434 { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28435 { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28436 { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28437 { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28438 { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28439 { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28440 { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28441 { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28442 { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28443 { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28444 { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28445 { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28446 { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28447 { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28448 { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28449 { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28450 { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28451 { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28452 { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28453 { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28454 { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28455 { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28456 { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28457 { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28458 { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28459 { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28460 { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28461 { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28462 { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28463 { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28464 { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28465 { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28466 { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28467 { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28468 { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28469 { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28470 { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28471 { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28472 { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28473 { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28474 { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28475 { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28476 { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28477 { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28478 { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28479 { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28480 { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28481 { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28482 { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28483 { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28484 { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28485 { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28486 { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28487 { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28488 { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28489 { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28490 { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28491 { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28492 { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28493 { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28494 { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28495 { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28496 { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28497 { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28498 { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28499 { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28500 { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28501 { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28502 { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28503 { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28504 { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28505 { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28506 { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28507 { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28508 { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28509 { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28510 { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28511 { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28512 { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28513 { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28514 { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28515 { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28516 { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28517 { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28518 { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28519 { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28520 { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28521 { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28522 { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28523 { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28524 { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28525 { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28526 { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28527 { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28528 { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28529 { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28530 { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28531 { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28532 { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28533 { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28534 { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28535 { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28536 { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28537 { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28538 { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28539 { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28540 { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28541 { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28542 { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28543 { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28544 { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28545 { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28546 { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28547 { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28548 { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28549 { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28550 { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28551 { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28552 { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28553 { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28554 { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28555 { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28556 { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28557 { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28558 { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28559 { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28560 { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28561 { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28562 { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28563 { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28564 { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28565 { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28566 { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28567 { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28568 { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28569 { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28570 { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28571 { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28572 { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28573 { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28574 { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28575 { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28576 { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28577 { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28578 { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28579 { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28580 { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28581 { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28582 { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28583 { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28584 { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28585 { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28586 { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28587 { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28588 { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28589 { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28590 { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28591 { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28592 { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28593 { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28594 { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28595 { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28596 { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28597 { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28598 { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28599 { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28600 { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28601 { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28602 { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28603 { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28604 { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28605 { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28606 { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28607 { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28608 { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28609 { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28610 { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28611 { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28612 { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28613 { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28614 { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28615 { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28616 { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28617 { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28618 { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28619 { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28620 { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28621 { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28622 { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28623 { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28624 { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28625 { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28626 { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28627 { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28628 { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28629 { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28630 { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28631 { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28632 { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28633 { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28634 { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28635 { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28636 { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28637 { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28638 { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28639 { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28640 { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28641 { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28642 { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28643 { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28644 { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28645 { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28646 { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28647 { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28648 { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28649 { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28650 { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28651 { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28652 { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28653 { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28654 { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28655 { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28656 { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28657 { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28658 { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28659 { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28660 { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28661 { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28662 { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28663 { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28664 { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28665 { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28666 { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28667 { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28668 { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28669 { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28670 { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28671 { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28672 { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28673 { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28674 { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28675 { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28676 { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28677 { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28678 { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28679 { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28680 { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28681 { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28682 { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28683 { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28684 { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28685 { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28686 { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28687 { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28688 { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28689 { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28690 { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28691 { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28692 { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28693 { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28694 { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28695 { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28696 { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28697 { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28698 { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28699 { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28700 { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28701 { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28702 { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28703 { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28704 { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28705 { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28706 { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28707 { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28708 { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28709 { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28710 { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28711 { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28712 { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28713 { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28714 { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28715 { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28716 { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28717 { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28718 { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28719 { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28720 { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28721 { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28722 { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28723 { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28724 { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28725 { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28726 { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28727 { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28728 { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28729 { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28730 { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28731 { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28732 { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28733 { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28734 { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28735 { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28736 { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28737 { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28738 { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28739 { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28740 { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28741 { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28742 { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28743 { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28744 { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28745 { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28746 { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28747 { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28748 { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28749 { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28750 { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28751 { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28752 { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28753 { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28754 { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28755 { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28756 { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28757 { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28758 { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28759 { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28760 { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28761 { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28762 { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28763 { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28764 { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28765 { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28766 { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28767 { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28768 { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28769 { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28770 { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28771 { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28772 { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28773 { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28774 { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28775 { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28776 { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28777 { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28778 { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28779 { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28780 { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28781 { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28782 { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28783 { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28784 { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28785 { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28786 { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28787 { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28788 { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28789 { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28790 { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28791 { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28792 { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28793 { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28794 { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28795 { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28796 { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28797 { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28798 { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28799 { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28800 { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28801 { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28802 { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28803 { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28804 { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28805 { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28806 { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28807 { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28808 { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28809 { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28810 { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28811 { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28812 { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28813 { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28814 { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28815 { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28816 { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28817 { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28818 { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28819 { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28820 { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28821 { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28822 { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28823 { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28824 { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28825 { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
d03ea14f
DB
28826 { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28827 { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28828 { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
b34f6357
DB
28829 { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28830 { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28831 { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28832 { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28833 { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28834 { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28835 { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28836 { 0, 0 }
28837};
28838
28839/* Add the semantic fns to IDESC_TABLE. */
28840
28841void
28842SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28843{
28844 IDESC *idesc_table = CPU_IDESC (current_cpu);
28845 const struct sem_fn_desc *sf;
28846 int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28847
28848 for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28849 {
28850 const CGEN_INSN *insn = idesc_table[sf->index].idata;
28851 int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28852 || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28853#if FAST_P
28854 if (valid_p)
28855 idesc_table[sf->index].sem_fast = sf->fn;
28856 else
28857 idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28858#else
28859 if (valid_p)
28860 idesc_table[sf->index].sem_full = sf->fn;
28861 else
28862 idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28863#endif
28864 }
28865}
28866