Add enum values for HP extensions to DWARF standard
[deliverable/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{
314#define FLD(f) abuf->fields.sfmt_addcc.f
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
452/* sll: sll$pack $GRi,$GRj,$GRk */
453
454static SEM_PC
455SEM_FN_NAME (frvbf,sll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
456{
457#define FLD(f) abuf->fields.sfmt_addcc.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 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
465 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
466 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
467 }
468
469 return vpc;
470#undef FLD
471}
472
473/* srl: srl$pack $GRi,$GRj,$GRk */
474
475static SEM_PC
476SEM_FN_NAME (frvbf,srl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
477{
478#define FLD(f) abuf->fields.sfmt_addcc.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 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
486 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
487 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
488 }
489
490 return vpc;
491#undef FLD
492}
493
494/* sra: sra$pack $GRi,$GRj,$GRk */
495
496static SEM_PC
497SEM_FN_NAME (frvbf,sra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
498{
499#define FLD(f) abuf->fields.sfmt_addcc.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 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
507 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
508 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
509 }
510
511 return vpc;
512#undef FLD
513}
514
515/* scan: scan$pack $GRi,$GRj,$GRk */
516
517static SEM_PC
518SEM_FN_NAME (frvbf,scan) (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 tmp_tmp1;
528 SI tmp_tmp2;
529 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
530 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
531 {
532 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
533 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
534 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
535 }
536}
537
538 return vpc;
539#undef FLD
540}
541
542/* cadd: cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
543
544static SEM_PC
545SEM_FN_NAME (frvbf,cadd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
546{
547#define FLD(f) abuf->fields.sfmt_cswap.f
548 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
549 int UNUSED written = 0;
550 IADDR UNUSED pc = abuf->addr;
551 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
552
553if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
554 {
555 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
556 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
557 written |= (1 << 4);
558 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
559 }
560}
561
562 abuf->written = written;
563 return vpc;
564#undef FLD
565}
566
567/* csub: csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
568
569static SEM_PC
570SEM_FN_NAME (frvbf,csub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
571{
572#define FLD(f) abuf->fields.sfmt_cswap.f
573 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
574 int UNUSED written = 0;
575 IADDR UNUSED pc = abuf->addr;
576 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
577
578if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
579 {
580 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
581 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
582 written |= (1 << 4);
583 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
584 }
585}
586
587 abuf->written = written;
588 return vpc;
589#undef FLD
590}
591
592/* cand: cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
593
594static SEM_PC
595SEM_FN_NAME (frvbf,cand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
596{
597#define FLD(f) abuf->fields.sfmt_cswap.f
598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
599 int UNUSED written = 0;
600 IADDR UNUSED pc = abuf->addr;
601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
602
603if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
604 {
605 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
606 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
607 written |= (1 << 4);
608 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
609 }
610}
611
612 abuf->written = written;
613 return vpc;
614#undef FLD
615}
616
617/* cor: cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
618
619static SEM_PC
620SEM_FN_NAME (frvbf,cor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
621{
622#define FLD(f) abuf->fields.sfmt_cswap.f
623 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
624 int UNUSED written = 0;
625 IADDR UNUSED pc = abuf->addr;
626 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
627
628if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
629 {
630 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
631 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
632 written |= (1 << 4);
633 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
634 }
635}
636
637 abuf->written = written;
638 return vpc;
639#undef FLD
640}
641
642/* cxor: cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
643
644static SEM_PC
645SEM_FN_NAME (frvbf,cxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
646{
647#define FLD(f) abuf->fields.sfmt_cswap.f
648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
649 int UNUSED written = 0;
650 IADDR UNUSED pc = abuf->addr;
651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
652
653if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
654 {
655 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
656 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
657 written |= (1 << 4);
658 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
659 }
660}
661
662 abuf->written = written;
663 return vpc;
664#undef FLD
665}
666
667/* cnot: cnot$pack $GRj,$GRk,$CCi,$cond */
668
669static SEM_PC
670SEM_FN_NAME (frvbf,cnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
671{
672#define FLD(f) abuf->fields.sfmt_cswap.f
673 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
674 int UNUSED written = 0;
675 IADDR UNUSED pc = abuf->addr;
676 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
677
678if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
679 {
680 SI opval = INVSI (GET_H_GR (FLD (f_GRj)));
681 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
682 written |= (1 << 3);
683 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
684 }
685}
686
687 abuf->written = written;
688 return vpc;
689#undef FLD
690}
691
692/* csmul: csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
693
694static SEM_PC
695SEM_FN_NAME (frvbf,csmul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
696{
697#define FLD(f) abuf->fields.sfmt_clddu.f
698 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
699 int UNUSED written = 0;
700 IADDR UNUSED pc = abuf->addr;
701 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
702
703if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
704 {
705 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
706 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
707 written |= (1 << 4);
708 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
709 }
710}
711
712 abuf->written = written;
713 return vpc;
714#undef FLD
715}
716
717/* csdiv: csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
718
719static SEM_PC
720SEM_FN_NAME (frvbf,csdiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
721{
722#define FLD(f) abuf->fields.sfmt_cswap.f
723 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
724 int UNUSED written = 0;
725 IADDR UNUSED pc = abuf->addr;
726 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
727
728if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
729{
730frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
731; /*clobber*/
732}
733}
734
735 abuf->written = written;
736 return vpc;
737#undef FLD
738}
739
740/* cudiv: cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
741
742static SEM_PC
743SEM_FN_NAME (frvbf,cudiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
744{
745#define FLD(f) abuf->fields.sfmt_cswap.f
746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
747 int UNUSED written = 0;
748 IADDR UNUSED pc = abuf->addr;
749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
750
751if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
752{
753frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_GRk), 0);
754; /*clobber*/
755}
756}
757
758 abuf->written = written;
759 return vpc;
760#undef FLD
761}
762
763/* csll: csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
764
765static SEM_PC
766SEM_FN_NAME (frvbf,csll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
767{
768#define FLD(f) abuf->fields.sfmt_cswap.f
769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
770 int UNUSED written = 0;
771 IADDR UNUSED pc = abuf->addr;
772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
773
774if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
775 {
776 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
777 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
778 written |= (1 << 4);
779 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
780 }
781}
782
783 abuf->written = written;
784 return vpc;
785#undef FLD
786}
787
788/* csrl: csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
789
790static SEM_PC
791SEM_FN_NAME (frvbf,csrl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
792{
793#define FLD(f) abuf->fields.sfmt_cswap.f
794 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
795 int UNUSED written = 0;
796 IADDR UNUSED pc = abuf->addr;
797 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
798
799if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
800 {
801 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
802 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
803 written |= (1 << 4);
804 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
805 }
806}
807
808 abuf->written = written;
809 return vpc;
810#undef FLD
811}
812
813/* csra: csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
814
815static SEM_PC
816SEM_FN_NAME (frvbf,csra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
817{
818#define FLD(f) abuf->fields.sfmt_cswap.f
819 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
820 int UNUSED written = 0;
821 IADDR UNUSED pc = abuf->addr;
822 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
823
824if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
825 {
826 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (GET_H_GR (FLD (f_GRj)), 31));
827 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
828 written |= (1 << 4);
829 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
830 }
831}
832
833 abuf->written = written;
834 return vpc;
835#undef FLD
836}
837
838/* cscan: cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
839
840static SEM_PC
841SEM_FN_NAME (frvbf,cscan) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
842{
843#define FLD(f) abuf->fields.sfmt_cswap.f
844 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
845 int UNUSED written = 0;
846 IADDR UNUSED pc = abuf->addr;
847 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
848
849if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
850{
851 SI tmp_tmp1;
852 SI tmp_tmp2;
853 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
854 tmp_tmp2 = SRASI (GET_H_GR (FLD (f_GRj)), 1);
855 {
856 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
857 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
858 written |= (1 << 4);
859 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
860 }
861}
862}
863
864 abuf->written = written;
865 return vpc;
866#undef FLD
867}
868
869/* addcc: addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
870
871static SEM_PC
872SEM_FN_NAME (frvbf,addcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
873{
874#define FLD(f) abuf->fields.sfmt_addcc.f
875 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
876 int UNUSED written = 0;
877 IADDR UNUSED pc = abuf->addr;
878 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
879
880{
881 BI tmp_tmp;
882 QI tmp_cc;
883 SI tmp_result;
884 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
885 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
886if (EQBI (tmp_tmp, 0)) {
887 tmp_cc = ANDQI (tmp_cc, 13);
888} else {
889 tmp_cc = ORQI (tmp_cc, 2);
890}
891 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
892if (EQBI (tmp_tmp, 0)) {
893 tmp_cc = ANDQI (tmp_cc, 14);
894} else {
895 tmp_cc = ORQI (tmp_cc, 1);
896}
897 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
898if (EQSI (tmp_result, 0)) {
899 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
900} else {
901if (LTSI (tmp_result, 0)) {
902 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
903} else {
904 tmp_cc = ANDQI (tmp_cc, 3);
905}
906}
907 {
908 SI opval = tmp_result;
909 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
910 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
911 }
912 {
913 UQI opval = tmp_cc;
914 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
915 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
916 }
917}
918
919 return vpc;
920#undef FLD
921}
922
923/* subcc: subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
924
925static SEM_PC
926SEM_FN_NAME (frvbf,subcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
927{
928#define FLD(f) abuf->fields.sfmt_addcc.f
929 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
930 int UNUSED written = 0;
931 IADDR UNUSED pc = abuf->addr;
932 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
933
934{
935 BI tmp_tmp;
936 QI tmp_cc;
937 SI tmp_result;
938 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
939 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
940if (EQBI (tmp_tmp, 0)) {
941 tmp_cc = ANDQI (tmp_cc, 13);
942} else {
943 tmp_cc = ORQI (tmp_cc, 2);
944}
945 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
946if (EQBI (tmp_tmp, 0)) {
947 tmp_cc = ANDQI (tmp_cc, 14);
948} else {
949 tmp_cc = ORQI (tmp_cc, 1);
950}
951 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
952if (EQSI (tmp_result, 0)) {
953 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
954} else {
955if (LTSI (tmp_result, 0)) {
956 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
957} else {
958 tmp_cc = ANDQI (tmp_cc, 3);
959}
960}
961 {
962 SI opval = tmp_result;
963 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
964 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
965 }
966 {
967 UQI opval = tmp_cc;
968 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
969 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
970 }
971}
972
973 return vpc;
974#undef FLD
975}
976
977/* andcc: andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
978
979static SEM_PC
980SEM_FN_NAME (frvbf,andcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
981{
982#define FLD(f) abuf->fields.sfmt_addcc.f
983 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
984 int UNUSED written = 0;
985 IADDR UNUSED pc = abuf->addr;
986 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
987
988{
989 SI tmp_tmp;
990 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
991 {
992 SI opval = tmp_tmp;
993 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
994 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
995 }
996if (EQSI (tmp_tmp, 0)) {
997 {
998 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
999 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1000 written |= (1 << 4);
1001 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1002 }
1003} else {
1004if (LTSI (tmp_tmp, 0)) {
1005 {
1006 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1007 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1008 written |= (1 << 4);
1009 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1010 }
1011} else {
1012 {
1013 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1014 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1015 written |= (1 << 4);
1016 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1017 }
1018}
1019}
1020}
1021
1022 abuf->written = written;
1023 return vpc;
1024#undef FLD
1025}
1026
1027/* orcc: orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1028
1029static SEM_PC
1030SEM_FN_NAME (frvbf,orcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1031{
1032#define FLD(f) abuf->fields.sfmt_addcc.f
1033 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1034 int UNUSED written = 0;
1035 IADDR UNUSED pc = abuf->addr;
1036 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1037
1038{
1039 SI tmp_tmp;
1040 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1041 {
1042 SI opval = tmp_tmp;
1043 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1044 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1045 }
1046if (EQSI (tmp_tmp, 0)) {
1047 {
1048 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1049 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1050 written |= (1 << 4);
1051 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1052 }
1053} else {
1054if (LTSI (tmp_tmp, 0)) {
1055 {
1056 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1057 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1058 written |= (1 << 4);
1059 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1060 }
1061} else {
1062 {
1063 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1064 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1065 written |= (1 << 4);
1066 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1067 }
1068}
1069}
1070}
1071
1072 abuf->written = written;
1073 return vpc;
1074#undef FLD
1075}
1076
1077/* xorcc: xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1078
1079static SEM_PC
1080SEM_FN_NAME (frvbf,xorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1081{
1082#define FLD(f) abuf->fields.sfmt_addcc.f
1083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1084 int UNUSED written = 0;
1085 IADDR UNUSED pc = abuf->addr;
1086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1087
1088{
1089 SI tmp_tmp;
1090 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1091 {
1092 SI opval = tmp_tmp;
1093 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1094 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1095 }
1096if (EQSI (tmp_tmp, 0)) {
1097 {
1098 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
1099 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1100 written |= (1 << 4);
1101 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1102 }
1103} else {
1104if (LTSI (tmp_tmp, 0)) {
1105 {
1106 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
1107 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1108 written |= (1 << 4);
1109 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1110 }
1111} else {
1112 {
1113 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
1114 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1115 written |= (1 << 4);
1116 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1117 }
1118}
1119}
1120}
1121
1122 abuf->written = written;
1123 return vpc;
1124#undef FLD
1125}
1126
1127/* sllcc: sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1128
1129static SEM_PC
1130SEM_FN_NAME (frvbf,sllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1131{
1132#define FLD(f) abuf->fields.sfmt_addcc.f
1133 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1134 int UNUSED written = 0;
1135 IADDR UNUSED pc = abuf->addr;
1136 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1137
1138{
1139 SI tmp_shift;
1140 SI tmp_tmp;
1141 QI tmp_cc;
1142 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1143 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)]));
1144 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1145 {
1146 SI opval = tmp_tmp;
1147 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1148 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1149 }
1150if (EQSI (tmp_tmp, 0)) {
1151 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1152} else {
1153if (LTSI (tmp_tmp, 0)) {
1154 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1155} else {
1156 tmp_cc = ANDQI (tmp_cc, 3);
1157}
1158}
1159 {
1160 UQI opval = tmp_cc;
1161 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1162 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1163 }
1164}
1165
1166 return vpc;
1167#undef FLD
1168}
1169
1170/* srlcc: srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1171
1172static SEM_PC
1173SEM_FN_NAME (frvbf,srlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1174{
1175#define FLD(f) abuf->fields.sfmt_addcc.f
1176 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1177 int UNUSED written = 0;
1178 IADDR UNUSED pc = abuf->addr;
1179 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1180
1181{
1182 SI tmp_shift;
1183 SI tmp_tmp;
1184 QI tmp_cc;
1185 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1186 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)]));
1187 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1188 {
1189 SI opval = tmp_tmp;
1190 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1191 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1192 }
1193if (EQSI (tmp_tmp, 0)) {
1194 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1195} else {
1196if (LTSI (tmp_tmp, 0)) {
1197 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1198} else {
1199 tmp_cc = ANDQI (tmp_cc, 3);
1200}
1201}
1202 {
1203 UQI opval = tmp_cc;
1204 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1205 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1206 }
1207}
1208
1209 return vpc;
1210#undef FLD
1211}
1212
1213/* sracc: sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1214
1215static SEM_PC
1216SEM_FN_NAME (frvbf,sracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1217{
1218#define FLD(f) abuf->fields.sfmt_addcc.f
1219 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1220 int UNUSED written = 0;
1221 IADDR UNUSED pc = abuf->addr;
1222 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1223
1224{
1225 SI tmp_shift;
1226 SI tmp_tmp;
1227 QI tmp_cc;
1228 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1229 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)]));
1230 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1231 {
1232 SI opval = tmp_tmp;
1233 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1234 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1235 }
1236if (EQSI (tmp_tmp, 0)) {
1237 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1238} else {
1239if (LTSI (tmp_tmp, 0)) {
1240 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1241} else {
1242 tmp_cc = ANDQI (tmp_cc, 3);
1243}
1244}
1245 {
1246 UQI opval = tmp_cc;
1247 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1248 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1249 }
1250}
1251
1252 return vpc;
1253#undef FLD
1254}
1255
1256/* smulcc: smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1257
1258static SEM_PC
1259SEM_FN_NAME (frvbf,smulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1260{
1261#define FLD(f) abuf->fields.sfmt_smulcc.f
1262 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1263 int UNUSED written = 0;
1264 IADDR UNUSED pc = abuf->addr;
1265 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1266
1267{
1268 DI tmp_tmp;
1269 QI tmp_cc;
1270 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1271 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1272if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1273 tmp_cc = ANDQI (tmp_cc, 7);
1274} else {
1275 tmp_cc = ORQI (tmp_cc, 8);
1276}
1277if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1278 tmp_cc = ANDQI (tmp_cc, 11);
1279} else {
1280 tmp_cc = ORQI (tmp_cc, 4);
1281}
1282 {
1283 DI opval = tmp_tmp;
1284 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1285 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1286 }
1287 {
1288 UQI opval = tmp_cc;
1289 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1290 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1291 }
1292}
1293
1294 return vpc;
1295#undef FLD
1296}
1297
1298/* umulcc: umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
1299
1300static SEM_PC
1301SEM_FN_NAME (frvbf,umulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1302{
1303#define FLD(f) abuf->fields.sfmt_smulcc.f
1304 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1305 int UNUSED written = 0;
1306 IADDR UNUSED pc = abuf->addr;
1307 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1308
1309{
1310 DI tmp_tmp;
1311 QI tmp_cc;
1312 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1313 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (GET_H_GR (FLD (f_GRj))));
1314if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1315 tmp_cc = ANDQI (tmp_cc, 7);
1316} else {
1317 tmp_cc = ORQI (tmp_cc, 8);
1318}
1319if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1320 tmp_cc = ANDQI (tmp_cc, 11);
1321} else {
1322 tmp_cc = ORQI (tmp_cc, 4);
1323}
1324 {
1325 DI opval = tmp_tmp;
1326 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1327 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1328 }
1329 {
1330 UQI opval = tmp_cc;
1331 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1332 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1333 }
1334}
1335
1336 return vpc;
1337#undef FLD
1338}
1339
1340/* caddcc: caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1341
1342static SEM_PC
1343SEM_FN_NAME (frvbf,caddcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1344{
1345#define FLD(f) abuf->fields.sfmt_caddcc.f
1346 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1347 int UNUSED written = 0;
1348 IADDR UNUSED pc = abuf->addr;
1349 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1350
1351if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1352{
1353 BI tmp_tmp;
1354 QI tmp_cc;
1355 SI tmp_result;
1356 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1357 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1358if (EQBI (tmp_tmp, 0)) {
1359 tmp_cc = ANDQI (tmp_cc, 13);
1360} else {
1361 tmp_cc = ORQI (tmp_cc, 2);
1362}
1363 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1364if (EQBI (tmp_tmp, 0)) {
1365 tmp_cc = ANDQI (tmp_cc, 14);
1366} else {
1367 tmp_cc = ORQI (tmp_cc, 1);
1368}
1369 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1370if (EQSI (tmp_result, 0)) {
1371 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1372} else {
1373if (LTSI (tmp_result, 0)) {
1374 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1375} else {
1376 tmp_cc = ANDQI (tmp_cc, 3);
1377}
1378}
1379 {
1380 SI opval = tmp_result;
1381 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1382 written |= (1 << 6);
1383 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1384 }
1385 {
1386 UQI opval = tmp_cc;
1387 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1388 written |= (1 << 7);
1389 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1390 }
1391}
1392}
1393
1394 abuf->written = written;
1395 return vpc;
1396#undef FLD
1397}
1398
1399/* csubcc: csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1400
1401static SEM_PC
1402SEM_FN_NAME (frvbf,csubcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1403{
1404#define FLD(f) abuf->fields.sfmt_caddcc.f
1405 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1406 int UNUSED written = 0;
1407 IADDR UNUSED pc = abuf->addr;
1408 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1409
1410if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1411{
1412 BI tmp_tmp;
1413 QI tmp_cc;
1414 SI tmp_result;
1415 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1416 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1417if (EQBI (tmp_tmp, 0)) {
1418 tmp_cc = ANDQI (tmp_cc, 13);
1419} else {
1420 tmp_cc = ORQI (tmp_cc, 2);
1421}
1422 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), 0);
1423if (EQBI (tmp_tmp, 0)) {
1424 tmp_cc = ANDQI (tmp_cc, 14);
1425} else {
1426 tmp_cc = ORQI (tmp_cc, 1);
1427}
1428 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1429if (EQSI (tmp_result, 0)) {
1430 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1431} else {
1432if (LTSI (tmp_result, 0)) {
1433 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1434} else {
1435 tmp_cc = ANDQI (tmp_cc, 3);
1436}
1437}
1438 {
1439 SI opval = tmp_result;
1440 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1441 written |= (1 << 6);
1442 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1443 }
1444 {
1445 UQI opval = tmp_cc;
1446 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1447 written |= (1 << 7);
1448 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1449 }
1450}
1451}
1452
1453 abuf->written = written;
1454 return vpc;
1455#undef FLD
1456}
1457
1458/* csmulcc: csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
1459
1460static SEM_PC
1461SEM_FN_NAME (frvbf,csmulcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1462{
1463#define FLD(f) abuf->fields.sfmt_csmulcc.f
1464 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1465 int UNUSED written = 0;
1466 IADDR UNUSED pc = abuf->addr;
1467 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1468
1469if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1470{
1471 DI tmp_tmp;
1472 QI tmp_cc;
1473 tmp_cc = CPU (h_iccr[((FLD (f_CCi)) & (3))]);
1474 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (GET_H_GR (FLD (f_GRj))));
1475if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
1476 tmp_cc = ANDQI (tmp_cc, 7);
1477} else {
1478 tmp_cc = ORQI (tmp_cc, 8);
1479}
1480if (EQBI (EQDI (tmp_tmp, 0), 0)) {
1481 tmp_cc = ANDQI (tmp_cc, 11);
1482} else {
1483 tmp_cc = ORQI (tmp_cc, 4);
1484}
1485 {
1486 DI opval = tmp_tmp;
1487 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
1488 written |= (1 << 6);
1489 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
1490 }
1491 {
1492 UQI opval = tmp_cc;
1493 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1494 written |= (1 << 7);
1495 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1496 }
1497}
1498}
1499
1500 abuf->written = written;
1501 return vpc;
1502#undef FLD
1503}
1504
1505/* candcc: candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1506
1507static SEM_PC
1508SEM_FN_NAME (frvbf,candcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1509{
1510#define FLD(f) abuf->fields.sfmt_caddcc.f
1511 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1512 int UNUSED written = 0;
1513 IADDR UNUSED pc = abuf->addr;
1514 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1515
1516if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1517{
1518 SI tmp_tmp;
1519 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1520 {
1521 SI opval = tmp_tmp;
1522 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1523 written |= (1 << 6);
1524 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1525 }
1526if (EQSI (tmp_tmp, 0)) {
1527 {
1528 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1529 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1530 written |= (1 << 7);
1531 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1532 }
1533} else {
1534if (LTSI (tmp_tmp, 0)) {
1535 {
1536 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1537 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1538 written |= (1 << 7);
1539 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1540 }
1541} else {
1542 {
1543 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1544 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1545 written |= (1 << 7);
1546 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1547 }
1548}
1549}
1550}
1551}
1552
1553 abuf->written = written;
1554 return vpc;
1555#undef FLD
1556}
1557
1558/* corcc: corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1559
1560static SEM_PC
1561SEM_FN_NAME (frvbf,corcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1562{
1563#define FLD(f) abuf->fields.sfmt_caddcc.f
1564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1565 int UNUSED written = 0;
1566 IADDR UNUSED pc = abuf->addr;
1567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1568
1569if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1570{
1571 SI tmp_tmp;
1572 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1573 {
1574 SI opval = tmp_tmp;
1575 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1576 written |= (1 << 6);
1577 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1578 }
1579if (EQSI (tmp_tmp, 0)) {
1580 {
1581 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1582 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1583 written |= (1 << 7);
1584 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1585 }
1586} else {
1587if (LTSI (tmp_tmp, 0)) {
1588 {
1589 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1590 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1591 written |= (1 << 7);
1592 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1593 }
1594} else {
1595 {
1596 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1597 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1598 written |= (1 << 7);
1599 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1600 }
1601}
1602}
1603}
1604}
1605
1606 abuf->written = written;
1607 return vpc;
1608#undef FLD
1609}
1610
1611/* cxorcc: cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1612
1613static SEM_PC
1614SEM_FN_NAME (frvbf,cxorcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1615{
1616#define FLD(f) abuf->fields.sfmt_caddcc.f
1617 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1618 int UNUSED written = 0;
1619 IADDR UNUSED pc = abuf->addr;
1620 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1621
1622if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1623{
1624 SI tmp_tmp;
1625 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
1626 {
1627 SI opval = tmp_tmp;
1628 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1629 written |= (1 << 6);
1630 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1631 }
1632if (EQSI (tmp_tmp, 0)) {
1633 {
1634 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 7), 4);
1635 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1636 written |= (1 << 7);
1637 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1638 }
1639} else {
1640if (LTSI (tmp_tmp, 0)) {
1641 {
1642 UQI opval = ORQI (ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 11), 8);
1643 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1644 written |= (1 << 7);
1645 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1646 }
1647} else {
1648 {
1649 UQI opval = ANDQI (CPU (h_iccr[((FLD (f_CCi)) & (3))]), 3);
1650 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1651 written |= (1 << 7);
1652 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1653 }
1654}
1655}
1656}
1657}
1658
1659 abuf->written = written;
1660 return vpc;
1661#undef FLD
1662}
1663
1664/* csllcc: csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1665
1666static SEM_PC
1667SEM_FN_NAME (frvbf,csllcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1668{
1669#define FLD(f) abuf->fields.sfmt_caddcc.f
1670 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1671 int UNUSED written = 0;
1672 IADDR UNUSED pc = abuf->addr;
1673 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1674
1675if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1676{
1677 SI tmp_shift;
1678 SI tmp_tmp;
1679 QI tmp_cc;
1680 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1681 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))]));
1682 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1683 {
1684 SI opval = tmp_tmp;
1685 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1686 written |= (1 << 6);
1687 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1688 }
1689if (EQSI (tmp_tmp, 0)) {
1690 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1691} else {
1692if (LTSI (tmp_tmp, 0)) {
1693 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1694} else {
1695 tmp_cc = ANDQI (tmp_cc, 3);
1696}
1697}
1698 {
1699 UQI opval = tmp_cc;
1700 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1701 written |= (1 << 7);
1702 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1703 }
1704}
1705}
1706
1707 abuf->written = written;
1708 return vpc;
1709#undef FLD
1710}
1711
1712/* csrlcc: csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1713
1714static SEM_PC
1715SEM_FN_NAME (frvbf,csrlcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1716{
1717#define FLD(f) abuf->fields.sfmt_caddcc.f
1718 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1719 int UNUSED written = 0;
1720 IADDR UNUSED pc = abuf->addr;
1721 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1722
1723if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1724{
1725 SI tmp_shift;
1726 SI tmp_tmp;
1727 QI tmp_cc;
1728 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1729 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))]));
1730 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
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 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1739} else {
1740if (LTSI (tmp_tmp, 0)) {
1741 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1742} else {
1743 tmp_cc = ANDQI (tmp_cc, 3);
1744}
1745}
1746 {
1747 UQI opval = tmp_cc;
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}
1753}
1754
1755 abuf->written = written;
1756 return vpc;
1757#undef FLD
1758}
1759
1760/* csracc: csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
1761
1762static SEM_PC
1763SEM_FN_NAME (frvbf,csracc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1764{
1765#define FLD(f) abuf->fields.sfmt_caddcc.f
1766 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1767 int UNUSED written = 0;
1768 IADDR UNUSED pc = abuf->addr;
1769 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1770
1771if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
1772{
1773 SI tmp_shift;
1774 SI tmp_tmp;
1775 QI tmp_cc;
1776 tmp_shift = ANDSI (GET_H_GR (FLD (f_GRj)), 31);
1777 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))]));
1778 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
1779 {
1780 SI opval = tmp_tmp;
1781 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1782 written |= (1 << 6);
1783 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1784 }
1785if (EQSI (tmp_tmp, 0)) {
1786 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1787} else {
1788if (LTSI (tmp_tmp, 0)) {
1789 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1790} else {
1791 tmp_cc = ANDQI (tmp_cc, 3);
1792}
1793}
1794 {
1795 UQI opval = tmp_cc;
1796 sim_queue_qi_write (current_cpu, & CPU (h_iccr[((FLD (f_CCi)) & (3))]), opval);
1797 written |= (1 << 7);
1798 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1799 }
1800}
1801}
1802
1803 abuf->written = written;
1804 return vpc;
1805#undef FLD
1806}
1807
1808/* addx: addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1809
1810static SEM_PC
1811SEM_FN_NAME (frvbf,addx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1812{
1813#define FLD(f) abuf->fields.sfmt_addcc.f
1814 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1815 int UNUSED written = 0;
1816 IADDR UNUSED pc = abuf->addr;
1817 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1818
1819 {
1820 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)));
1821 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1822 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1823 }
1824
1825 return vpc;
1826#undef FLD
1827}
1828
1829/* subx: subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
1830
1831static SEM_PC
1832SEM_FN_NAME (frvbf,subx) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1833{
1834#define FLD(f) abuf->fields.sfmt_addcc.f
1835 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1836 int UNUSED written = 0;
1837 IADDR UNUSED pc = abuf->addr;
1838 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1839
1840 {
1841 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)));
1842 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1843 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1844 }
1845
1846 return vpc;
1847#undef FLD
1848}
1849
1850/* addxcc: addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1851
1852static SEM_PC
1853SEM_FN_NAME (frvbf,addxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1854{
1855#define FLD(f) abuf->fields.sfmt_addcc.f
1856 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1857 int UNUSED written = 0;
1858 IADDR UNUSED pc = abuf->addr;
1859 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1860
1861{
1862 SI tmp_tmp;
1863 QI tmp_cc;
1864 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1865 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1866if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1867 tmp_cc = ANDQI (tmp_cc, 13);
1868} else {
1869 tmp_cc = ORQI (tmp_cc, 2);
1870}
1871if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1872 tmp_cc = ANDQI (tmp_cc, 14);
1873} else {
1874 tmp_cc = ORQI (tmp_cc, 1);
1875}
1876if (EQSI (tmp_tmp, 0)) {
1877 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1878} else {
1879if (LTSI (tmp_tmp, 0)) {
1880 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1881} else {
1882 tmp_cc = ANDQI (tmp_cc, 3);
1883}
1884}
1885 {
1886 SI opval = tmp_tmp;
1887 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1888 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1889 }
1890 {
1891 UQI opval = tmp_cc;
1892 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1893 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1894 }
1895}
1896
1897 return vpc;
1898#undef FLD
1899}
1900
1901/* subxcc: subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
1902
1903static SEM_PC
1904SEM_FN_NAME (frvbf,subxcc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1905{
1906#define FLD(f) abuf->fields.sfmt_addcc.f
1907 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1908 int UNUSED written = 0;
1909 IADDR UNUSED pc = abuf->addr;
1910 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1911
1912{
1913 SI tmp_tmp;
1914 QI tmp_cc;
1915 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
1916 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1)));
1917if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1918 tmp_cc = ANDQI (tmp_cc, 13);
1919} else {
1920 tmp_cc = ORQI (tmp_cc, 2);
1921}
1922if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
1923 tmp_cc = ANDQI (tmp_cc, 14);
1924} else {
1925 tmp_cc = ORQI (tmp_cc, 1);
1926}
1927if (EQSI (tmp_tmp, 0)) {
1928 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
1929} else {
1930if (LTSI (tmp_tmp, 0)) {
1931 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
1932} else {
1933 tmp_cc = ANDQI (tmp_cc, 3);
1934}
1935}
1936 {
1937 SI opval = tmp_tmp;
1938 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1939 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1940 }
1941 {
1942 UQI opval = tmp_cc;
1943 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
1944 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
1945 }
1946}
1947
1948 return vpc;
1949#undef FLD
1950}
1951
1952/* addi: addi$pack $GRi,$s12,$GRk */
1953
1954static SEM_PC
1955SEM_FN_NAME (frvbf,addi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1956{
1957#define FLD(f) abuf->fields.sfmt_swapi.f
1958 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1959 int UNUSED written = 0;
1960 IADDR UNUSED pc = abuf->addr;
1961 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1962
1963 {
1964 SI opval = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
1965 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1966 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1967 }
1968
1969 return vpc;
1970#undef FLD
1971}
1972
1973/* subi: subi$pack $GRi,$s12,$GRk */
1974
1975static SEM_PC
1976SEM_FN_NAME (frvbf,subi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1977{
1978#define FLD(f) abuf->fields.sfmt_swapi.f
1979 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
1980 int UNUSED written = 0;
1981 IADDR UNUSED pc = abuf->addr;
1982 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
1983
1984 {
1985 SI opval = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
1986 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
1987 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
1988 }
1989
1990 return vpc;
1991#undef FLD
1992}
1993
1994/* andi: andi$pack $GRi,$s12,$GRk */
1995
1996static SEM_PC
1997SEM_FN_NAME (frvbf,andi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
1998{
1999#define FLD(f) abuf->fields.sfmt_swapi.f
2000 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2001 int UNUSED written = 0;
2002 IADDR UNUSED pc = abuf->addr;
2003 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2004
2005 {
2006 SI opval = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2007 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2008 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2009 }
2010
2011 return vpc;
2012#undef FLD
2013}
2014
2015/* ori: ori$pack $GRi,$s12,$GRk */
2016
2017static SEM_PC
2018SEM_FN_NAME (frvbf,ori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2019{
2020#define FLD(f) abuf->fields.sfmt_swapi.f
2021 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2022 int UNUSED written = 0;
2023 IADDR UNUSED pc = abuf->addr;
2024 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2025
2026 {
2027 SI opval = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2028 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2029 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2030 }
2031
2032 return vpc;
2033#undef FLD
2034}
2035
2036/* xori: xori$pack $GRi,$s12,$GRk */
2037
2038static SEM_PC
2039SEM_FN_NAME (frvbf,xori) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2040{
2041#define FLD(f) abuf->fields.sfmt_swapi.f
2042 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2043 int UNUSED written = 0;
2044 IADDR UNUSED pc = abuf->addr;
2045 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2046
2047 {
2048 SI opval = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
2049 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2050 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2051 }
2052
2053 return vpc;
2054#undef FLD
2055}
2056
2057/* sdivi: sdivi$pack $GRi,$s12,$GRk */
2058
2059static SEM_PC
2060SEM_FN_NAME (frvbf,sdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2061{
2062#define FLD(f) abuf->fields.sfmt_swapi.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{
2069frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2070; /*clobber*/
2071}
2072
2073 return vpc;
2074#undef FLD
2075}
2076
2077/* nsdivi: nsdivi$pack $GRi,$s12,$GRk */
2078
2079static SEM_PC
2080SEM_FN_NAME (frvbf,nsdivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2081{
2082#define FLD(f) abuf->fields.sfmt_swapi.f
2083 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2084 int UNUSED written = 0;
2085 IADDR UNUSED pc = abuf->addr;
2086 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2087
2088{
2089frvbf_signed_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2090; /*clobber*/
2091}
2092
2093 return vpc;
2094#undef FLD
2095}
2096
2097/* udivi: udivi$pack $GRi,$s12,$GRk */
2098
2099static SEM_PC
2100SEM_FN_NAME (frvbf,udivi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2101{
2102#define FLD(f) abuf->fields.sfmt_swapi.f
2103 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2104 int UNUSED written = 0;
2105 IADDR UNUSED pc = abuf->addr;
2106 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2107
2108{
2109frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 0);
2110; /*clobber*/
2111}
2112
2113 return vpc;
2114#undef FLD
2115}
2116
2117/* nudivi: nudivi$pack $GRi,$s12,$GRk */
2118
2119static SEM_PC
2120SEM_FN_NAME (frvbf,nudivi) (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{
2129frvbf_unsigned_integer_divide (current_cpu, GET_H_GR (FLD (f_GRi)), FLD (f_d12), FLD (f_GRk), 1);
2130; /*clobber*/
2131}
2132
2133 return vpc;
2134#undef FLD
2135}
2136
2137/* smuli: smuli$pack $GRi,$s12,$GRdoublek */
2138
2139static SEM_PC
2140SEM_FN_NAME (frvbf,smuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2141{
2142#define FLD(f) abuf->fields.sfmt_smuli.f
2143 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2144 int UNUSED written = 0;
2145 IADDR UNUSED pc = abuf->addr;
2146 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2147
2148 {
2149 DI opval = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_d12)));
2150 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2151 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2152 }
2153
2154 return vpc;
2155#undef FLD
2156}
2157
2158/* umuli: umuli$pack $GRi,$s12,$GRdoublek */
2159
2160static SEM_PC
2161SEM_FN_NAME (frvbf,umuli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2162{
2163#define FLD(f) abuf->fields.sfmt_smuli.f
2164 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2165 int UNUSED written = 0;
2166 IADDR UNUSED pc = abuf->addr;
2167 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2168
2169 {
2170 DI opval = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_d12)));
2171 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2172 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2173 }
2174
2175 return vpc;
2176#undef FLD
2177}
2178
2179/* slli: slli$pack $GRi,$s12,$GRk */
2180
2181static SEM_PC
2182SEM_FN_NAME (frvbf,slli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2183{
2184#define FLD(f) abuf->fields.sfmt_swapi.f
2185 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2186 int UNUSED written = 0;
2187 IADDR UNUSED pc = abuf->addr;
2188 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2189
2190 {
2191 SI opval = SLLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2192 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2193 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2194 }
2195
2196 return vpc;
2197#undef FLD
2198}
2199
2200/* srli: srli$pack $GRi,$s12,$GRk */
2201
2202static SEM_PC
2203SEM_FN_NAME (frvbf,srli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2204{
2205#define FLD(f) abuf->fields.sfmt_swapi.f
2206 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2207 int UNUSED written = 0;
2208 IADDR UNUSED pc = abuf->addr;
2209 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2210
2211 {
2212 SI opval = SRLSI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2213 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2214 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2215 }
2216
2217 return vpc;
2218#undef FLD
2219}
2220
2221/* srai: srai$pack $GRi,$s12,$GRk */
2222
2223static SEM_PC
2224SEM_FN_NAME (frvbf,srai) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2225{
2226#define FLD(f) abuf->fields.sfmt_swapi.f
2227 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2228 int UNUSED written = 0;
2229 IADDR UNUSED pc = abuf->addr;
2230 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2231
2232 {
2233 SI opval = SRASI (GET_H_GR (FLD (f_GRi)), ANDSI (FLD (f_d12), 31));
2234 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2235 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2236 }
2237
2238 return vpc;
2239#undef FLD
2240}
2241
2242/* scani: scani$pack $GRi,$s12,$GRk */
2243
2244static SEM_PC
2245SEM_FN_NAME (frvbf,scani) (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{
2254 SI tmp_tmp1;
2255 SI tmp_tmp2;
2256 tmp_tmp1 = GET_H_GR (FLD (f_GRi));
2257 tmp_tmp2 = SRASI (FLD (f_d12), 1);
2258 {
2259 SI opval = frvbf_scan_result (current_cpu, XORSI (tmp_tmp1, tmp_tmp2));
2260 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2261 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2262 }
2263}
2264
2265 return vpc;
2266#undef FLD
2267}
2268
2269/* addicc: addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2270
2271static SEM_PC
2272SEM_FN_NAME (frvbf,addicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2273{
2274#define FLD(f) abuf->fields.sfmt_addicc.f
2275 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2276 int UNUSED written = 0;
2277 IADDR UNUSED pc = abuf->addr;
2278 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2279
2280{
2281 BI tmp_tmp;
2282 QI tmp_cc;
2283 SI tmp_result;
2284 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2285 tmp_tmp = ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2286if (EQBI (tmp_tmp, 0)) {
2287 tmp_cc = ANDQI (tmp_cc, 13);
2288} else {
2289 tmp_cc = ORQI (tmp_cc, 2);
2290}
2291 tmp_tmp = ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2292if (EQBI (tmp_tmp, 0)) {
2293 tmp_cc = ANDQI (tmp_cc, 14);
2294} else {
2295 tmp_cc = ORQI (tmp_cc, 1);
2296}
2297 tmp_result = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2298if (EQSI (tmp_result, 0)) {
2299 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2300} else {
2301if (LTSI (tmp_result, 0)) {
2302 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2303} else {
2304 tmp_cc = ANDQI (tmp_cc, 3);
2305}
2306}
2307 {
2308 SI opval = tmp_result;
2309 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2310 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2311 }
2312 {
2313 UQI opval = tmp_cc;
2314 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2315 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2316 }
2317}
2318
2319 return vpc;
2320#undef FLD
2321}
2322
2323/* subicc: subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2324
2325static SEM_PC
2326SEM_FN_NAME (frvbf,subicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2327{
2328#define FLD(f) abuf->fields.sfmt_addicc.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 BI tmp_tmp;
2336 QI tmp_cc;
2337 SI tmp_result;
2338 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2339 tmp_tmp = SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2340if (EQBI (tmp_tmp, 0)) {
2341 tmp_cc = ANDQI (tmp_cc, 13);
2342} else {
2343 tmp_cc = ORQI (tmp_cc, 2);
2344}
2345 tmp_tmp = SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), 0);
2346if (EQBI (tmp_tmp, 0)) {
2347 tmp_cc = ANDQI (tmp_cc, 14);
2348} else {
2349 tmp_cc = ORQI (tmp_cc, 1);
2350}
2351 tmp_result = SUBSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2352if (EQSI (tmp_result, 0)) {
2353 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2354} else {
2355if (LTSI (tmp_result, 0)) {
2356 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2357} else {
2358 tmp_cc = ANDQI (tmp_cc, 3);
2359}
2360}
2361 {
2362 SI opval = tmp_result;
2363 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2364 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2365 }
2366 {
2367 UQI opval = tmp_cc;
2368 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2369 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2370 }
2371}
2372
2373 return vpc;
2374#undef FLD
2375}
2376
2377/* andicc: andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2378
2379static SEM_PC
2380SEM_FN_NAME (frvbf,andicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2381{
2382#define FLD(f) abuf->fields.sfmt_addicc.f
2383 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2384 int UNUSED written = 0;
2385 IADDR UNUSED pc = abuf->addr;
2386 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2387
2388{
2389 SI tmp_tmp;
2390 tmp_tmp = ANDSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2391 {
2392 SI opval = tmp_tmp;
2393 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2394 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2395 }
2396if (EQSI (tmp_tmp, 0)) {
2397 {
2398 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2399 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2400 written |= (1 << 4);
2401 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2402 }
2403} else {
2404if (LTSI (tmp_tmp, 0)) {
2405 {
2406 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2407 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2408 written |= (1 << 4);
2409 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2410 }
2411} else {
2412 {
2413 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2414 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2415 written |= (1 << 4);
2416 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2417 }
2418}
2419}
2420}
2421
2422 abuf->written = written;
2423 return vpc;
2424#undef FLD
2425}
2426
2427/* oricc: oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2428
2429static SEM_PC
2430SEM_FN_NAME (frvbf,oricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2431{
2432#define FLD(f) abuf->fields.sfmt_addicc.f
2433 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2434 int UNUSED written = 0;
2435 IADDR UNUSED pc = abuf->addr;
2436 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2437
2438{
2439 SI tmp_tmp;
2440 tmp_tmp = ORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2441 {
2442 SI opval = tmp_tmp;
2443 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2444 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2445 }
2446if (EQSI (tmp_tmp, 0)) {
2447 {
2448 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2449 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2450 written |= (1 << 4);
2451 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2452 }
2453} else {
2454if (LTSI (tmp_tmp, 0)) {
2455 {
2456 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2457 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2458 written |= (1 << 4);
2459 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2460 }
2461} else {
2462 {
2463 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2464 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2465 written |= (1 << 4);
2466 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2467 }
2468}
2469}
2470}
2471
2472 abuf->written = written;
2473 return vpc;
2474#undef FLD
2475}
2476
2477/* xoricc: xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
2478
2479static SEM_PC
2480SEM_FN_NAME (frvbf,xoricc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2481{
2482#define FLD(f) abuf->fields.sfmt_addicc.f
2483 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2484 int UNUSED written = 0;
2485 IADDR UNUSED pc = abuf->addr;
2486 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2487
2488{
2489 SI tmp_tmp;
2490 tmp_tmp = XORSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10));
2491 {
2492 SI opval = tmp_tmp;
2493 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2494 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2495 }
2496if (EQSI (tmp_tmp, 0)) {
2497 {
2498 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 7), 4);
2499 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2500 written |= (1 << 4);
2501 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2502 }
2503} else {
2504if (LTSI (tmp_tmp, 0)) {
2505 {
2506 UQI opval = ORQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 11), 8);
2507 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2508 written |= (1 << 4);
2509 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2510 }
2511} else {
2512 {
2513 UQI opval = ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 3);
2514 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2515 written |= (1 << 4);
2516 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2517 }
2518}
2519}
2520}
2521
2522 abuf->written = written;
2523 return vpc;
2524#undef FLD
2525}
2526
2527/* smulicc: smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2528
2529static SEM_PC
2530SEM_FN_NAME (frvbf,smulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2531{
2532#define FLD(f) abuf->fields.sfmt_smulicc.f
2533 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2534 int UNUSED written = 0;
2535 IADDR UNUSED pc = abuf->addr;
2536 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2537
2538{
2539 DI tmp_tmp;
2540 QI tmp_cc;
2541 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2542 tmp_tmp = MULDI (EXTSIDI (GET_H_GR (FLD (f_GRi))), EXTSIDI (FLD (f_s10)));
2543if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2544 tmp_cc = ANDQI (tmp_cc, 7);
2545} else {
2546 tmp_cc = ORQI (tmp_cc, 8);
2547}
2548if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2549 tmp_cc = ANDQI (tmp_cc, 11);
2550} else {
2551 tmp_cc = ORQI (tmp_cc, 4);
2552}
2553 {
2554 DI opval = tmp_tmp;
2555 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2556 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2557 }
2558 {
2559 UQI opval = tmp_cc;
2560 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2561 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2562 }
2563}
2564
2565 return vpc;
2566#undef FLD
2567}
2568
2569/* umulicc: umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
2570
2571static SEM_PC
2572SEM_FN_NAME (frvbf,umulicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2573{
2574#define FLD(f) abuf->fields.sfmt_smulicc.f
2575 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2576 int UNUSED written = 0;
2577 IADDR UNUSED pc = abuf->addr;
2578 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2579
2580{
2581 DI tmp_tmp;
2582 QI tmp_cc;
2583 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2584 tmp_tmp = MULDI (ZEXTSIDI (GET_H_GR (FLD (f_GRi))), ZEXTSIDI (FLD (f_s10)));
2585if (EQDI (SRLDI (tmp_tmp, 63), 0)) {
2586 tmp_cc = ANDQI (tmp_cc, 7);
2587} else {
2588 tmp_cc = ORQI (tmp_cc, 8);
2589}
2590if (EQBI (EQDI (tmp_tmp, 0), 0)) {
2591 tmp_cc = ANDQI (tmp_cc, 11);
2592} else {
2593 tmp_cc = ORQI (tmp_cc, 4);
2594}
2595 {
2596 DI opval = tmp_tmp;
2597 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
2598 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
2599 }
2600 {
2601 UQI opval = tmp_cc;
2602 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2603 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2604 }
2605}
2606
2607 return vpc;
2608#undef FLD
2609}
2610
2611/* sllicc: sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2612
2613static SEM_PC
2614SEM_FN_NAME (frvbf,sllicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2615{
2616#define FLD(f) abuf->fields.sfmt_addicc.f
2617 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2618 int UNUSED written = 0;
2619 IADDR UNUSED pc = abuf->addr;
2620 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2621
2622{
2623 SI tmp_shift;
2624 SI tmp_tmp;
2625 QI tmp_cc;
2626 tmp_shift = ANDSI (FLD (f_s10), 31);
2627 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)]));
2628 tmp_tmp = SLLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2629 {
2630 SI opval = tmp_tmp;
2631 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2632 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2633 }
2634if (EQSI (tmp_tmp, 0)) {
2635 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2636} else {
2637if (LTSI (tmp_tmp, 0)) {
2638 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2639} else {
2640 tmp_cc = ANDQI (tmp_cc, 3);
2641}
2642}
2643 {
2644 UQI opval = tmp_cc;
2645 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2646 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2647 }
2648}
2649
2650 return vpc;
2651#undef FLD
2652}
2653
2654/* srlicc: srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2655
2656static SEM_PC
2657SEM_FN_NAME (frvbf,srlicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2658{
2659#define FLD(f) abuf->fields.sfmt_addicc.f
2660 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2661 int UNUSED written = 0;
2662 IADDR UNUSED pc = abuf->addr;
2663 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2664
2665{
2666 SI tmp_shift;
2667 SI tmp_tmp;
2668 QI tmp_cc;
2669 tmp_shift = ANDSI (FLD (f_s10), 31);
2670 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)]));
2671 tmp_tmp = SRLSI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2672 {
2673 SI opval = tmp_tmp;
2674 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2675 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2676 }
2677if (EQSI (tmp_tmp, 0)) {
2678 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2679} else {
2680if (LTSI (tmp_tmp, 0)) {
2681 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2682} else {
2683 tmp_cc = ANDQI (tmp_cc, 3);
2684}
2685}
2686 {
2687 UQI opval = tmp_cc;
2688 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2689 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2690 }
2691}
2692
2693 return vpc;
2694#undef FLD
2695}
2696
2697/* sraicc: sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2698
2699static SEM_PC
2700SEM_FN_NAME (frvbf,sraicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2701{
2702#define FLD(f) abuf->fields.sfmt_addicc.f
2703 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2704 int UNUSED written = 0;
2705 IADDR UNUSED pc = abuf->addr;
2706 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2707
2708{
2709 SI tmp_shift;
2710 SI tmp_tmp;
2711 QI tmp_cc;
2712 tmp_shift = ANDSI (FLD (f_s10), 31);
2713 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)]));
2714 tmp_tmp = SRASI (GET_H_GR (FLD (f_GRi)), tmp_shift);
2715 {
2716 SI opval = tmp_tmp;
2717 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2718 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2719 }
2720if (EQSI (tmp_tmp, 0)) {
2721 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2722} else {
2723if (LTSI (tmp_tmp, 0)) {
2724 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2725} else {
2726 tmp_cc = ANDQI (tmp_cc, 3);
2727}
2728}
2729 {
2730 UQI opval = tmp_cc;
2731 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2732 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2733 }
2734}
2735
2736 return vpc;
2737#undef FLD
2738}
2739
2740/* addxi: addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2741
2742static SEM_PC
2743SEM_FN_NAME (frvbf,addxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2744{
2745#define FLD(f) abuf->fields.sfmt_addicc.f
2746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2747 int UNUSED written = 0;
2748 IADDR UNUSED pc = abuf->addr;
2749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2750
2751 {
2752 SI opval = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2753 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2754 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2755 }
2756
2757 return vpc;
2758#undef FLD
2759}
2760
2761/* subxi: subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
2762
2763static SEM_PC
2764SEM_FN_NAME (frvbf,subxi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2765{
2766#define FLD(f) abuf->fields.sfmt_addicc.f
2767 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2768 int UNUSED written = 0;
2769 IADDR UNUSED pc = abuf->addr;
2770 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2771
2772 {
2773 SI opval = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_1)]), 1)));
2774 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2775 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2776 }
2777
2778 return vpc;
2779#undef FLD
2780}
2781
2782/* addxicc: addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2783
2784static SEM_PC
2785SEM_FN_NAME (frvbf,addxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2786{
2787#define FLD(f) abuf->fields.sfmt_addicc.f
2788 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2789 int UNUSED written = 0;
2790 IADDR UNUSED pc = abuf->addr;
2791 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2792
2793{
2794 SI tmp_tmp;
2795 QI tmp_cc;
2796 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2797 tmp_tmp = ADDCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2798if (EQSI (ADDOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2799 tmp_cc = ANDQI (tmp_cc, 13);
2800} else {
2801 tmp_cc = ORQI (tmp_cc, 2);
2802}
2803if (EQSI (ADDCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2804 tmp_cc = ANDQI (tmp_cc, 14);
2805} else {
2806 tmp_cc = ORQI (tmp_cc, 1);
2807}
2808if (EQSI (tmp_tmp, 0)) {
2809 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2810} else {
2811if (LTSI (tmp_tmp, 0)) {
2812 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2813} else {
2814 tmp_cc = ANDQI (tmp_cc, 3);
2815}
2816}
2817 {
2818 SI opval = tmp_tmp;
2819 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2820 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2821 }
2822 {
2823 UQI opval = tmp_cc;
2824 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2825 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2826 }
2827}
2828
2829 return vpc;
2830#undef FLD
2831}
2832
2833/* subxicc: subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
2834
2835static SEM_PC
2836SEM_FN_NAME (frvbf,subxicc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2837{
2838#define FLD(f) abuf->fields.sfmt_addicc.f
2839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2840 int UNUSED written = 0;
2841 IADDR UNUSED pc = abuf->addr;
2842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2843
2844{
2845 SI tmp_tmp;
2846 QI tmp_cc;
2847 tmp_cc = CPU (h_iccr[FLD (f_ICCi_1)]);
2848 tmp_tmp = SUBCSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1)));
2849if (EQSI (SUBOFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2850 tmp_cc = ANDQI (tmp_cc, 13);
2851} else {
2852 tmp_cc = ORQI (tmp_cc, 2);
2853}
2854if (EQSI (SUBCFSI (GET_H_GR (FLD (f_GRi)), FLD (f_s10), TRUNCQIBI (ANDQI (tmp_cc, 1))), 0)) {
2855 tmp_cc = ANDQI (tmp_cc, 14);
2856} else {
2857 tmp_cc = ORQI (tmp_cc, 1);
2858}
2859if (EQSI (tmp_tmp, 0)) {
2860 tmp_cc = ORQI (ANDQI (tmp_cc, 7), 4);
2861} else {
2862if (LTSI (tmp_tmp, 0)) {
2863 tmp_cc = ORQI (ANDQI (tmp_cc, 11), 8);
2864} else {
2865 tmp_cc = ANDQI (tmp_cc, 3);
2866}
2867}
2868 {
2869 SI opval = tmp_tmp;
2870 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
2871 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
2872 }
2873 {
2874 UQI opval = tmp_cc;
2875 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2876 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2877 }
2878}
2879
2880 return vpc;
2881#undef FLD
2882}
2883
2884/* cmpb: cmpb$pack $GRi,$GRj,$ICCi_1 */
2885
2886static SEM_PC
2887SEM_FN_NAME (frvbf,cmpb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2888{
2889#define FLD(f) abuf->fields.sfmt_smulcc.f
2890 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2891 int UNUSED written = 0;
2892 IADDR UNUSED pc = abuf->addr;
2893 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2894
2895{
2896 QI tmp_cc;
2897if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 0xff000000), ANDSI (GET_H_GR (FLD (f_GRj)), 0xff000000)), 0)) {
2898 tmp_cc = ANDQI (tmp_cc, 7);
2899} else {
2900 tmp_cc = ORQI (tmp_cc, 8);
2901}
2902if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 16711680), ANDSI (GET_H_GR (FLD (f_GRj)), 16711680)), 0)) {
2903 tmp_cc = ANDQI (tmp_cc, 11);
2904} else {
2905 tmp_cc = ORQI (tmp_cc, 4);
2906}
2907if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 65280), ANDSI (GET_H_GR (FLD (f_GRj)), 65280)), 0)) {
2908 tmp_cc = ANDQI (tmp_cc, 13);
2909} else {
2910 tmp_cc = ORQI (tmp_cc, 2);
2911}
2912if (EQBI (EQSI (ANDSI (GET_H_GR (FLD (f_GRi)), 255), ANDSI (GET_H_GR (FLD (f_GRj)), 255)), 0)) {
2913 tmp_cc = ANDQI (tmp_cc, 14);
2914} else {
2915 tmp_cc = ORQI (tmp_cc, 1);
2916}
2917 {
2918 UQI opval = tmp_cc;
2919 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2920 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2921 }
2922}
2923
2924 return vpc;
2925#undef FLD
2926}
2927
2928/* cmpba: cmpba$pack $GRi,$GRj,$ICCi_1 */
2929
2930static SEM_PC
2931SEM_FN_NAME (frvbf,cmpba) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2932{
2933#define FLD(f) abuf->fields.sfmt_smulcc.f
2934 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2935 int UNUSED written = 0;
2936 IADDR UNUSED pc = abuf->addr;
2937 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2938
2939{
2940 QI tmp_cc;
2941 tmp_cc = 0;
2942if (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)) {
2943 tmp_cc = ANDQI (tmp_cc, 14);
2944} else {
2945 tmp_cc = ORQI (tmp_cc, 1);
2946}
2947 {
2948 UQI opval = tmp_cc;
2949 sim_queue_qi_write (current_cpu, & CPU (h_iccr[FLD (f_ICCi_1)]), opval);
2950 TRACE_RESULT (current_cpu, abuf, "iccr", 'x', opval);
2951 }
2952}
2953
2954 return vpc;
2955#undef FLD
2956}
2957
2958/* setlo: setlo$pack $ulo16,$GRklo */
2959
2960static SEM_PC
2961SEM_FN_NAME (frvbf,setlo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2962{
2963#define FLD(f) abuf->fields.sfmt_setlo.f
2964 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2965 int UNUSED written = 0;
2966 IADDR UNUSED pc = abuf->addr;
2967 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2968
2969 {
2970 UHI opval = FLD (f_u16);
2971 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_lo_set, FLD (f_GRk), opval);
2972 TRACE_RESULT (current_cpu, abuf, "gr_lo", 'x', opval);
2973 }
2974
2975 return vpc;
2976#undef FLD
2977}
2978
2979/* sethi: sethi$pack $uhi16,$GRkhi */
2980
2981static SEM_PC
2982SEM_FN_NAME (frvbf,sethi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
2983{
2984#define FLD(f) abuf->fields.sfmt_sethi.f
2985 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
2986 int UNUSED written = 0;
2987 IADDR UNUSED pc = abuf->addr;
2988 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
2989
2990 {
2991 UHI opval = FLD (f_u16);
2992 sim_queue_fn_hi_write (current_cpu, frvbf_h_gr_hi_set, FLD (f_GRk), opval);
2993 TRACE_RESULT (current_cpu, abuf, "gr_hi", 'x', opval);
2994 }
2995
2996 return vpc;
2997#undef FLD
2998}
2999
3000/* setlos: setlos$pack $slo16,$GRk */
3001
3002static SEM_PC
3003SEM_FN_NAME (frvbf,setlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3004{
3005#define FLD(f) abuf->fields.sfmt_setlos.f
3006 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3007 int UNUSED written = 0;
3008 IADDR UNUSED pc = abuf->addr;
3009 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3010
3011 {
3012 SI opval = FLD (f_s16);
3013 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3014 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3015 }
3016
3017 return vpc;
3018#undef FLD
3019}
3020
3021/* ldsb: ldsb$pack @($GRi,$GRj),$GRk */
3022
3023static SEM_PC
3024SEM_FN_NAME (frvbf,ldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3025{
3026#define FLD(f) abuf->fields.sfmt_addcc.f
3027 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3028 int UNUSED written = 0;
3029 IADDR UNUSED pc = abuf->addr;
3030 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3031
3032 {
3033 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3034 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3035 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3036 }
3037
3038 return vpc;
3039#undef FLD
3040}
3041
3042/* ldub: ldub$pack @($GRi,$GRj),$GRk */
3043
3044static SEM_PC
3045SEM_FN_NAME (frvbf,ldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3046{
3047#define FLD(f) abuf->fields.sfmt_addcc.f
3048 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3049 int UNUSED written = 0;
3050 IADDR UNUSED pc = abuf->addr;
3051 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3052
3053 {
3054 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3055 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3056 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3057 }
3058
3059 return vpc;
3060#undef FLD
3061}
3062
3063/* ldsh: ldsh$pack @($GRi,$GRj),$GRk */
3064
3065static SEM_PC
3066SEM_FN_NAME (frvbf,ldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3067{
3068#define FLD(f) abuf->fields.sfmt_addcc.f
3069 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3070 int UNUSED written = 0;
3071 IADDR UNUSED pc = abuf->addr;
3072 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3073
3074 {
3075 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3076 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3077 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3078 }
3079
3080 return vpc;
3081#undef FLD
3082}
3083
3084/* lduh: lduh$pack @($GRi,$GRj),$GRk */
3085
3086static SEM_PC
3087SEM_FN_NAME (frvbf,lduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3088{
3089#define FLD(f) abuf->fields.sfmt_addcc.f
3090 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3091 int UNUSED written = 0;
3092 IADDR UNUSED pc = abuf->addr;
3093 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3094
3095 {
3096 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3097 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3098 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3099 }
3100
3101 return vpc;
3102#undef FLD
3103}
3104
3105/* ld: ld$pack @($GRi,$GRj),$GRk */
3106
3107static SEM_PC
3108SEM_FN_NAME (frvbf,ld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3109{
3110#define FLD(f) abuf->fields.sfmt_addcc.f
3111 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3112 int UNUSED written = 0;
3113 IADDR UNUSED pc = abuf->addr;
3114 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3115
3116 {
3117 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3118 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3119 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3120 }
3121
3122 return vpc;
3123#undef FLD
3124}
3125
3126/* ldbf: ldbf$pack @($GRi,$GRj),$FRintk */
3127
3128static SEM_PC
3129SEM_FN_NAME (frvbf,ldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3130{
3131#define FLD(f) abuf->fields.sfmt_cldbfu.f
3132 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3133 int UNUSED written = 0;
3134 IADDR UNUSED pc = abuf->addr;
3135 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3136
3137 {
3138 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3139 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3140 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3141 }
3142
3143 return vpc;
3144#undef FLD
3145}
3146
3147/* ldhf: ldhf$pack @($GRi,$GRj),$FRintk */
3148
3149static SEM_PC
3150SEM_FN_NAME (frvbf,ldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3151{
3152#define FLD(f) abuf->fields.sfmt_cldbfu.f
3153 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3154 int UNUSED written = 0;
3155 IADDR UNUSED pc = abuf->addr;
3156 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3157
3158 {
3159 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3160 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3161 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3162 }
3163
3164 return vpc;
3165#undef FLD
3166}
3167
3168/* ldf: ldf$pack @($GRi,$GRj),$FRintk */
3169
3170static SEM_PC
3171SEM_FN_NAME (frvbf,ldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3172{
3173#define FLD(f) abuf->fields.sfmt_cldbfu.f
3174 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3175 int UNUSED written = 0;
3176 IADDR UNUSED pc = abuf->addr;
3177 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3178
3179 {
3180 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3181 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3182 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3183 }
3184
3185 return vpc;
3186#undef FLD
3187}
3188
3189/* ldc: ldc$pack @($GRi,$GRj),$CPRk */
3190
3191static SEM_PC
3192SEM_FN_NAME (frvbf,ldc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3193{
3194#define FLD(f) abuf->fields.sfmt_ldcu.f
3195 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3196 int UNUSED written = 0;
3197 IADDR UNUSED pc = abuf->addr;
3198 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3199
3200 {
3201 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3202 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
3203 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
3204 }
3205
3206 return vpc;
3207#undef FLD
3208}
3209
3210/* nldsb: nldsb$pack @($GRi,$GRj),$GRk */
3211
3212static SEM_PC
3213SEM_FN_NAME (frvbf,nldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3214{
3215#define FLD(f) abuf->fields.sfmt_addcc.f
3216 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3217 int UNUSED written = 0;
3218 IADDR UNUSED pc = abuf->addr;
3219 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3220
3221{
3222 BI tmp_do_op;
3223 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3224if (tmp_do_op) {
3225 {
3226 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3227 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3228 written |= (1 << 6);
3229 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3230 }
3231}
3232}
3233
3234 abuf->written = written;
3235 return vpc;
3236#undef FLD
3237}
3238
3239/* nldub: nldub$pack @($GRi,$GRj),$GRk */
3240
3241static SEM_PC
3242SEM_FN_NAME (frvbf,nldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3243{
3244#define FLD(f) abuf->fields.sfmt_addcc.f
3245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3246 int UNUSED written = 0;
3247 IADDR UNUSED pc = abuf->addr;
3248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3249
3250{
3251 BI tmp_do_op;
3252 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3253if (tmp_do_op) {
3254 {
3255 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3256 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3257 written |= (1 << 6);
3258 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3259 }
3260}
3261}
3262
3263 abuf->written = written;
3264 return vpc;
3265#undef FLD
3266}
3267
3268/* nldsh: nldsh$pack @($GRi,$GRj),$GRk */
3269
3270static SEM_PC
3271SEM_FN_NAME (frvbf,nldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3272{
3273#define FLD(f) abuf->fields.sfmt_addcc.f
3274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3275 int UNUSED written = 0;
3276 IADDR UNUSED pc = abuf->addr;
3277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3278
3279{
3280 BI tmp_do_op;
3281 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
3282if (tmp_do_op) {
3283 {
3284 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3285 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3286 written |= (1 << 6);
3287 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3288 }
3289}
3290}
3291
3292 abuf->written = written;
3293 return vpc;
3294#undef FLD
3295}
3296
3297/* nlduh: nlduh$pack @($GRi,$GRj),$GRk */
3298
3299static SEM_PC
3300SEM_FN_NAME (frvbf,nlduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3301{
3302#define FLD(f) abuf->fields.sfmt_addcc.f
3303 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3304 int UNUSED written = 0;
3305 IADDR UNUSED pc = abuf->addr;
3306 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3307
3308{
3309 BI tmp_do_op;
3310 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
3311if (tmp_do_op) {
3312 {
3313 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3314 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3315 written |= (1 << 6);
3316 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3317 }
3318}
3319}
3320
3321 abuf->written = written;
3322 return vpc;
3323#undef FLD
3324}
3325
3326/* nld: nld$pack @($GRi,$GRj),$GRk */
3327
3328static SEM_PC
3329SEM_FN_NAME (frvbf,nld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3330{
3331#define FLD(f) abuf->fields.sfmt_addcc.f
3332 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3333 int UNUSED written = 0;
3334 IADDR UNUSED pc = abuf->addr;
3335 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3336
3337{
3338 BI tmp_do_op;
3339 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
3340if (tmp_do_op) {
3341 {
3342 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3343 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3344 written |= (1 << 6);
3345 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3346 }
3347}
3348}
3349
3350 abuf->written = written;
3351 return vpc;
3352#undef FLD
3353}
3354
3355/* nldbf: nldbf$pack @($GRi,$GRj),$FRintk */
3356
3357static SEM_PC
3358SEM_FN_NAME (frvbf,nldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3359{
3360#define FLD(f) abuf->fields.sfmt_cldbfu.f
3361 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3362 int UNUSED written = 0;
3363 IADDR UNUSED pc = abuf->addr;
3364 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3365
3366{
3367 BI tmp_do_op;
3368 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
3369if (tmp_do_op) {
3370 {
3371 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3372 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3373 written |= (1 << 6);
3374 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3375 }
3376}
3377}
3378
3379 abuf->written = written;
3380 return vpc;
3381#undef FLD
3382}
3383
3384/* nldhf: nldhf$pack @($GRi,$GRj),$FRintk */
3385
3386static SEM_PC
3387SEM_FN_NAME (frvbf,nldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3388{
3389#define FLD(f) abuf->fields.sfmt_cldbfu.f
3390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3391 int UNUSED written = 0;
3392 IADDR UNUSED pc = abuf->addr;
3393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3394
3395{
3396 BI tmp_do_op;
3397 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
3398if (tmp_do_op) {
3399 {
3400 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3401 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3402 written |= (1 << 6);
3403 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3404 }
3405}
3406}
3407
3408 abuf->written = written;
3409 return vpc;
3410#undef FLD
3411}
3412
3413/* nldf: nldf$pack @($GRi,$GRj),$FRintk */
3414
3415static SEM_PC
3416SEM_FN_NAME (frvbf,nldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3417{
3418#define FLD(f) abuf->fields.sfmt_cldbfu.f
3419 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3420 int UNUSED written = 0;
3421 IADDR UNUSED pc = abuf->addr;
3422 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3423
3424{
3425 BI tmp_do_op;
3426 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
3427if (tmp_do_op) {
3428 {
3429 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
3430 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
3431 written |= (1 << 6);
3432 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
3433 }
3434}
3435}
3436
3437 abuf->written = written;
3438 return vpc;
3439#undef FLD
3440}
3441
3442/* ldd: ldd$pack @($GRi,$GRj),$GRdoublek */
3443
3444static SEM_PC
3445SEM_FN_NAME (frvbf,ldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3446{
3447#define FLD(f) abuf->fields.sfmt_smulcc.f
3448 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3449 int UNUSED written = 0;
3450 IADDR UNUSED pc = abuf->addr;
3451 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3452
3453{
3454 SI tmp_address;
3455if (NESI (FLD (f_GRk), 0)) {
3456{
3457 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3458 {
3459 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3460 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3461 written |= (1 << 4);
3462 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3463 }
3464}
3465}
3466}
3467
3468 abuf->written = written;
3469 return vpc;
3470#undef FLD
3471}
3472
3473/* lddf: lddf$pack @($GRi,$GRj),$FRdoublek */
3474
3475static SEM_PC
3476SEM_FN_NAME (frvbf,lddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3477{
3478#define FLD(f) abuf->fields.sfmt_clddfu.f
3479 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3480 int UNUSED written = 0;
3481 IADDR UNUSED pc = abuf->addr;
3482 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3483
3484{
3485 SI tmp_address;
3486{
3487 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3488 {
3489 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3490 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3491 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3492 }
3493}
3494}
3495
3496 return vpc;
3497#undef FLD
3498}
3499
3500/* lddc: lddc$pack @($GRi,$GRj),$CPRdoublek */
3501
3502static SEM_PC
3503SEM_FN_NAME (frvbf,lddc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3504{
3505#define FLD(f) abuf->fields.sfmt_lddcu.f
3506 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3507 int UNUSED written = 0;
3508 IADDR UNUSED pc = abuf->addr;
3509 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3510
3511{
3512 SI tmp_address;
3513{
3514 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3515 {
3516 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3517 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
3518 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
3519 }
3520}
3521}
3522
3523 return vpc;
3524#undef FLD
3525}
3526
3527/* nldd: nldd$pack @($GRi,$GRj),$GRdoublek */
3528
3529static SEM_PC
3530SEM_FN_NAME (frvbf,nldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3531{
3532#define FLD(f) abuf->fields.sfmt_smulcc.f
3533 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3534 int UNUSED written = 0;
3535 IADDR UNUSED pc = abuf->addr;
3536 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3537
3538{
3539 SI tmp_address;
3540{
3541 BI tmp_do_op;
3542 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
3543if (tmp_do_op) {
3544if (NESI (FLD (f_GRk), 0)) {
3545{
3546 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3547 {
3548 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
3549 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
3550 written |= (1 << 6);
3551 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
3552 }
3553}
3554}
3555}
3556}
3557}
3558
3559 abuf->written = written;
3560 return vpc;
3561#undef FLD
3562}
3563
3564/* nlddf: nlddf$pack @($GRi,$GRj),$FRdoublek */
3565
3566static SEM_PC
3567SEM_FN_NAME (frvbf,nlddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3568{
3569#define FLD(f) abuf->fields.sfmt_clddfu.f
3570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3571 int UNUSED written = 0;
3572 IADDR UNUSED pc = abuf->addr;
3573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3574
3575{
3576 SI tmp_address;
3577{
3578 BI tmp_do_op;
3579 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
3580if (tmp_do_op) {
3581{
3582 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3583 {
3584 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
3585 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
3586 written |= (1 << 6);
3587 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
3588 }
3589}
3590}
3591}
3592}
3593
3594 abuf->written = written;
3595 return vpc;
3596#undef FLD
3597}
3598
3599/* ldq: ldq$pack @($GRi,$GRj),$GRk */
3600
3601static SEM_PC
3602SEM_FN_NAME (frvbf,ldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3603{
3604#define FLD(f) abuf->fields.sfmt_smulcc.f
3605 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3606 int UNUSED written = 0;
3607 IADDR UNUSED pc = abuf->addr;
3608 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3609
3610{
3611 SI tmp_address;
3612{
3613 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3614frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3615}
3616}
3617
3618 return vpc;
3619#undef FLD
3620}
3621
3622/* ldqf: ldqf$pack @($GRi,$GRj),$FRintk */
3623
3624static SEM_PC
3625SEM_FN_NAME (frvbf,ldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3626{
3627#define FLD(f) abuf->fields.sfmt_cstdfu.f
3628 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3629 int UNUSED written = 0;
3630 IADDR UNUSED pc = abuf->addr;
3631 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3632
3633{
3634 SI tmp_address;
3635{
3636 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3637frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3638}
3639}
3640
3641 return vpc;
3642#undef FLD
3643}
3644
3645/* ldqc: ldqc$pack @($GRi,$GRj),$CPRk */
3646
3647static SEM_PC
3648SEM_FN_NAME (frvbf,ldqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3649{
3650#define FLD(f) abuf->fields.sfmt_stdcu.f
3651 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3652 int UNUSED written = 0;
3653 IADDR UNUSED pc = abuf->addr;
3654 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3655
3656{
3657 SI tmp_address;
3658{
3659 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3660frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
3661}
3662}
3663
3664 return vpc;
3665#undef FLD
3666}
3667
3668/* nldq: nldq$pack @($GRi,$GRj),$GRk */
3669
3670static SEM_PC
3671SEM_FN_NAME (frvbf,nldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3672{
3673#define FLD(f) abuf->fields.sfmt_smulcc.f
3674 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3675 int UNUSED written = 0;
3676 IADDR UNUSED pc = abuf->addr;
3677 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3678
3679{
3680 SI tmp_address;
3681{
3682 BI tmp_do_op;
3683 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
3684if (tmp_do_op) {
3685{
3686 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3687frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
3688}
3689}
3690}
3691}
3692
3693 return vpc;
3694#undef FLD
3695}
3696
3697/* nldqf: nldqf$pack @($GRi,$GRj),$FRintk */
3698
3699static SEM_PC
3700SEM_FN_NAME (frvbf,nldqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3701{
3702#define FLD(f) abuf->fields.sfmt_cstdfu.f
3703 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3704 int UNUSED written = 0;
3705 IADDR UNUSED pc = abuf->addr;
3706 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3707
3708{
3709 SI tmp_address;
3710{
3711 BI tmp_do_op;
3712 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
3713if (tmp_do_op) {
3714{
3715 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3716frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
3717}
3718}
3719}
3720}
3721
3722 return vpc;
3723#undef FLD
3724}
3725
3726/* ldsbu: ldsbu$pack @($GRi,$GRj),$GRk */
3727
3728static SEM_PC
3729SEM_FN_NAME (frvbf,ldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3730{
3731#define FLD(f) abuf->fields.sfmt_cldsbu.f
3732 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3733 int UNUSED written = 0;
3734 IADDR UNUSED pc = abuf->addr;
3735 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3736
3737{
3738 USI tmp_address;
3739 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3740 {
3741 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3742 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3743 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3744 }
3745if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3746{
3747 {
3748 SI opval = tmp_address;
3749 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3750 written |= (1 << 5);
3751 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3752 }
3753frvbf_force_update (current_cpu);
3754}
3755}
3756}
3757
3758 abuf->written = written;
3759 return vpc;
3760#undef FLD
3761}
3762
3763/* ldubu: ldubu$pack @($GRi,$GRj),$GRk */
3764
3765static SEM_PC
3766SEM_FN_NAME (frvbf,ldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3767{
3768#define FLD(f) abuf->fields.sfmt_cldsbu.f
3769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3770 int UNUSED written = 0;
3771 IADDR UNUSED pc = abuf->addr;
3772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3773
3774{
3775 USI tmp_address;
3776 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3777 {
3778 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3779 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3780 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3781 }
3782if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3783{
3784 {
3785 SI opval = tmp_address;
3786 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3787 written |= (1 << 5);
3788 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3789 }
3790frvbf_force_update (current_cpu);
3791}
3792}
3793}
3794
3795 abuf->written = written;
3796 return vpc;
3797#undef FLD
3798}
3799
3800/* ldshu: ldshu$pack @($GRi,$GRj),$GRk */
3801
3802static SEM_PC
3803SEM_FN_NAME (frvbf,ldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3804{
3805#define FLD(f) abuf->fields.sfmt_cldsbu.f
3806 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3807 int UNUSED written = 0;
3808 IADDR UNUSED pc = abuf->addr;
3809 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3810
3811{
3812 USI tmp_address;
3813 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3814 {
3815 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
3816 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3817 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3818 }
3819if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3820{
3821 {
3822 SI opval = tmp_address;
3823 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3824 written |= (1 << 5);
3825 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3826 }
3827frvbf_force_update (current_cpu);
3828}
3829}
3830}
3831
3832 abuf->written = written;
3833 return vpc;
3834#undef FLD
3835}
3836
3837/* lduhu: lduhu$pack @($GRi,$GRj),$GRk */
3838
3839static SEM_PC
3840SEM_FN_NAME (frvbf,lduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3841{
3842#define FLD(f) abuf->fields.sfmt_cldsbu.f
3843 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3844 int UNUSED written = 0;
3845 IADDR UNUSED pc = abuf->addr;
3846 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3847
3848{
3849 USI tmp_address;
3850 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3851 {
3852 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
3853 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3854 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3855 }
3856if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3857{
3858 {
3859 SI opval = tmp_address;
3860 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3861 written |= (1 << 5);
3862 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3863 }
3864frvbf_force_update (current_cpu);
3865}
3866}
3867}
3868
3869 abuf->written = written;
3870 return vpc;
3871#undef FLD
3872}
3873
3874/* ldu: ldu$pack @($GRi,$GRj),$GRk */
3875
3876static SEM_PC
3877SEM_FN_NAME (frvbf,ldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3878{
3879#define FLD(f) abuf->fields.sfmt_cldsbu.f
3880 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3881 int UNUSED written = 0;
3882 IADDR UNUSED pc = abuf->addr;
3883 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3884
3885{
3886 USI tmp_address;
3887 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3888 {
3889 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
3890 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3891 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3892 }
3893if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3894{
3895 {
3896 SI opval = tmp_address;
3897 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3898 written |= (1 << 5);
3899 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3900 }
3901frvbf_force_update (current_cpu);
3902}
3903}
3904}
3905
3906 abuf->written = written;
3907 return vpc;
3908#undef FLD
3909}
3910
3911/* nldsbu: nldsbu$pack @($GRi,$GRj),$GRk */
3912
3913static SEM_PC
3914SEM_FN_NAME (frvbf,nldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3915{
3916#define FLD(f) abuf->fields.sfmt_cldsbu.f
3917 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3918 int UNUSED written = 0;
3919 IADDR UNUSED pc = abuf->addr;
3920 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3921
3922{
3923 BI tmp_do_op;
3924 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 1, 0);
3925if (tmp_do_op) {
3926{
3927 USI tmp_address;
3928 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3929 {
3930 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
3931 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3932 written |= (1 << 7);
3933 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3934 }
3935if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3936{
3937 {
3938 SI opval = tmp_address;
3939 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3940 written |= (1 << 6);
3941 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3942 }
3943frvbf_force_update (current_cpu);
3944}
3945}
3946}
3947}
3948}
3949
3950 abuf->written = written;
3951 return vpc;
3952#undef FLD
3953}
3954
3955/* nldubu: nldubu$pack @($GRi,$GRj),$GRk */
3956
3957static SEM_PC
3958SEM_FN_NAME (frvbf,nldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
3959{
3960#define FLD(f) abuf->fields.sfmt_cldsbu.f
3961 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
3962 int UNUSED written = 0;
3963 IADDR UNUSED pc = abuf->addr;
3964 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
3965
3966{
3967 BI tmp_do_op;
3968 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 0, 0);
3969if (tmp_do_op) {
3970{
3971 USI tmp_address;
3972 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
3973 {
3974 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
3975 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
3976 written |= (1 << 7);
3977 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3978 }
3979if (NESI (FLD (f_GRi), FLD (f_GRk))) {
3980{
3981 {
3982 SI opval = tmp_address;
3983 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
3984 written |= (1 << 6);
3985 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
3986 }
3987frvbf_force_update (current_cpu);
3988}
3989}
3990}
3991}
3992}
3993
3994 abuf->written = written;
3995 return vpc;
3996#undef FLD
3997}
3998
3999/* nldshu: nldshu$pack @($GRi,$GRj),$GRk */
4000
4001static SEM_PC
4002SEM_FN_NAME (frvbf,nldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4003{
4004#define FLD(f) abuf->fields.sfmt_cldsbu.f
4005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4006 int UNUSED written = 0;
4007 IADDR UNUSED pc = abuf->addr;
4008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4009
4010{
4011 BI tmp_do_op;
4012 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 3, 0);
4013if (tmp_do_op) {
4014{
4015 USI tmp_address;
4016 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4017 {
4018 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
4019 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4020 written |= (1 << 7);
4021 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4022 }
4023if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4024{
4025 {
4026 SI opval = tmp_address;
4027 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4028 written |= (1 << 6);
4029 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4030 }
4031frvbf_force_update (current_cpu);
4032}
4033}
4034}
4035}
4036}
4037
4038 abuf->written = written;
4039 return vpc;
4040#undef FLD
4041}
4042
4043/* nlduhu: nlduhu$pack @($GRi,$GRj),$GRk */
4044
4045static SEM_PC
4046SEM_FN_NAME (frvbf,nlduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4047{
4048#define FLD(f) abuf->fields.sfmt_cldsbu.f
4049 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4050 int UNUSED written = 0;
4051 IADDR UNUSED pc = abuf->addr;
4052 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4053
4054{
4055 BI tmp_do_op;
4056 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 2, 0);
4057if (tmp_do_op) {
4058{
4059 USI tmp_address;
4060 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4061 {
4062 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4063 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4064 written |= (1 << 7);
4065 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4066 }
4067if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4068{
4069 {
4070 SI opval = tmp_address;
4071 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4072 written |= (1 << 6);
4073 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4074 }
4075frvbf_force_update (current_cpu);
4076}
4077}
4078}
4079}
4080}
4081
4082 abuf->written = written;
4083 return vpc;
4084#undef FLD
4085}
4086
4087/* nldu: nldu$pack @($GRi,$GRj),$GRk */
4088
4089static SEM_PC
4090SEM_FN_NAME (frvbf,nldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4091{
4092#define FLD(f) abuf->fields.sfmt_cldsbu.f
4093 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4094 int UNUSED written = 0;
4095 IADDR UNUSED pc = abuf->addr;
4096 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4097
4098{
4099 BI tmp_do_op;
4100 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 4, 0);
4101if (tmp_do_op) {
4102{
4103 USI tmp_address;
4104 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4105 {
4106 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4107 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4108 written |= (1 << 7);
4109 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4110 }
4111if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4112{
4113 {
4114 SI opval = tmp_address;
4115 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4116 written |= (1 << 6);
4117 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4118 }
4119frvbf_force_update (current_cpu);
4120}
4121}
4122}
4123}
4124}
4125
4126 abuf->written = written;
4127 return vpc;
4128#undef FLD
4129}
4130
4131/* ldbfu: ldbfu$pack @($GRi,$GRj),$FRintk */
4132
4133static SEM_PC
4134SEM_FN_NAME (frvbf,ldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4135{
4136#define FLD(f) abuf->fields.sfmt_cldbfu.f
4137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4138 int UNUSED written = 0;
4139 IADDR UNUSED pc = abuf->addr;
4140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4141
4142{
4143 USI tmp_address;
4144 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4145 {
4146 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4147 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4148 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4149 }
4150 {
4151 SI opval = tmp_address;
4152 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4153 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4154 }
4155frvbf_force_update (current_cpu);
4156}
4157
4158 return vpc;
4159#undef FLD
4160}
4161
4162/* ldhfu: ldhfu$pack @($GRi,$GRj),$FRintk */
4163
4164static SEM_PC
4165SEM_FN_NAME (frvbf,ldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4166{
4167#define FLD(f) abuf->fields.sfmt_cldbfu.f
4168 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4169 int UNUSED written = 0;
4170 IADDR UNUSED pc = abuf->addr;
4171 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4172
4173{
4174 USI tmp_address;
4175 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4176 {
4177 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4178 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4179 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4180 }
4181 {
4182 SI opval = tmp_address;
4183 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4184 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4185 }
4186frvbf_force_update (current_cpu);
4187}
4188
4189 return vpc;
4190#undef FLD
4191}
4192
4193/* ldfu: ldfu$pack @($GRi,$GRj),$FRintk */
4194
4195static SEM_PC
4196SEM_FN_NAME (frvbf,ldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4197{
4198#define FLD(f) abuf->fields.sfmt_cldbfu.f
4199 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4200 int UNUSED written = 0;
4201 IADDR UNUSED pc = abuf->addr;
4202 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4203
4204{
4205 USI tmp_address;
4206 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4207 {
4208 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4209 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4210 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4211 }
4212 {
4213 SI opval = tmp_address;
4214 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4215 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4216 }
4217frvbf_force_update (current_cpu);
4218}
4219
4220 return vpc;
4221#undef FLD
4222}
4223
4224/* ldcu: ldcu$pack @($GRi,$GRj),$CPRk */
4225
4226static SEM_PC
4227SEM_FN_NAME (frvbf,ldcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4228{
4229#define FLD(f) abuf->fields.sfmt_ldcu.f
4230 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4231 int UNUSED written = 0;
4232 IADDR UNUSED pc = abuf->addr;
4233 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4234
4235{
4236 USI tmp_address;
4237 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4238 {
4239 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4240 sim_queue_si_write (current_cpu, & CPU (h_cpr[FLD (f_CPRk)]), opval);
4241 TRACE_RESULT (current_cpu, abuf, "cpr", 'x', opval);
4242 }
4243 {
4244 SI opval = tmp_address;
4245 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4246 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4247 }
4248frvbf_force_update (current_cpu);
4249}
4250
4251 return vpc;
4252#undef FLD
4253}
4254
4255/* nldbfu: nldbfu$pack @($GRi,$GRj),$FRintk */
4256
4257static SEM_PC
4258SEM_FN_NAME (frvbf,nldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4259{
4260#define FLD(f) abuf->fields.sfmt_cldbfu.f
4261 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4262 int UNUSED written = 0;
4263 IADDR UNUSED pc = abuf->addr;
4264 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4265
4266{
4267 BI tmp_do_op;
4268 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 0, 1);
4269if (tmp_do_op) {
4270{
4271 USI tmp_address;
4272 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4273 {
4274 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
4275 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4276 written |= (1 << 6);
4277 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4278 }
4279 {
4280 SI opval = tmp_address;
4281 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4282 written |= (1 << 7);
4283 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4284 }
4285frvbf_force_update (current_cpu);
4286}
4287}
4288}
4289
4290 abuf->written = written;
4291 return vpc;
4292#undef FLD
4293}
4294
4295/* nldhfu: nldhfu$pack @($GRi,$GRj),$FRintk */
4296
4297static SEM_PC
4298SEM_FN_NAME (frvbf,nldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4299{
4300#define FLD(f) abuf->fields.sfmt_cldbfu.f
4301 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4302 int UNUSED written = 0;
4303 IADDR UNUSED pc = abuf->addr;
4304 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4305
4306{
4307 BI tmp_do_op;
4308 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 2, 1);
4309if (tmp_do_op) {
4310{
4311 USI tmp_address;
4312 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4313 {
4314 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
4315 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4316 written |= (1 << 6);
4317 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4318 }
4319 {
4320 SI opval = tmp_address;
4321 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4322 written |= (1 << 7);
4323 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4324 }
4325frvbf_force_update (current_cpu);
4326}
4327}
4328}
4329
4330 abuf->written = written;
4331 return vpc;
4332#undef FLD
4333}
4334
4335/* nldfu: nldfu$pack @($GRi,$GRj),$FRintk */
4336
4337static SEM_PC
4338SEM_FN_NAME (frvbf,nldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4339{
4340#define FLD(f) abuf->fields.sfmt_cldbfu.f
4341 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4342 int UNUSED written = 0;
4343 IADDR UNUSED pc = abuf->addr;
4344 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4345
4346{
4347 BI tmp_do_op;
4348 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 4, 1);
4349if (tmp_do_op) {
4350{
4351 USI tmp_address;
4352 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4353 {
4354 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
4355 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4356 written |= (1 << 6);
4357 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4358 }
4359 {
4360 SI opval = tmp_address;
4361 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4362 written |= (1 << 7);
4363 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4364 }
4365frvbf_force_update (current_cpu);
4366}
4367}
4368}
4369
4370 abuf->written = written;
4371 return vpc;
4372#undef FLD
4373}
4374
4375/* lddu: lddu$pack @($GRi,$GRj),$GRdoublek */
4376
4377static SEM_PC
4378SEM_FN_NAME (frvbf,lddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4379{
4380#define FLD(f) abuf->fields.sfmt_clddu.f
4381 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4382 int UNUSED written = 0;
4383 IADDR UNUSED pc = abuf->addr;
4384 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4385
4386{
4387 SI tmp_address;
4388if (NESI (FLD (f_GRk), 0)) {
4389{
4390 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4391 {
4392 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4393 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4394 written |= (1 << 5);
4395 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4396 }
4397}
4398}
4399if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4400{
4401 {
4402 SI opval = tmp_address;
4403 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4404 written |= (1 << 6);
4405 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4406 }
4407frvbf_force_update (current_cpu);
4408}
4409}
4410}
4411
4412 abuf->written = written;
4413 return vpc;
4414#undef FLD
4415}
4416
4417/* nlddu: nlddu$pack @($GRi,$GRj),$GRdoublek */
4418
4419static SEM_PC
4420SEM_FN_NAME (frvbf,nlddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4421{
4422#define FLD(f) abuf->fields.sfmt_clddu.f
4423 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4424 int UNUSED written = 0;
4425 IADDR UNUSED pc = abuf->addr;
4426 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4427
4428{
4429 BI tmp_do_op;
4430 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 5, 0);
4431if (tmp_do_op) {
4432{
4433 SI tmp_address;
4434if (NESI (FLD (f_GRk), 0)) {
4435{
4436 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4437 {
4438 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4439 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
4440 written |= (1 << 6);
4441 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
4442 }
4443}
4444}
4445if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4446{
4447 {
4448 SI opval = tmp_address;
4449 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4450 written |= (1 << 7);
4451 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4452 }
4453frvbf_force_update (current_cpu);
4454}
4455}
4456}
4457}
4458}
4459
4460 abuf->written = written;
4461 return vpc;
4462#undef FLD
4463}
4464
4465/* lddfu: lddfu$pack @($GRi,$GRj),$FRdoublek */
4466
4467static SEM_PC
4468SEM_FN_NAME (frvbf,lddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4469{
4470#define FLD(f) abuf->fields.sfmt_clddfu.f
4471 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4472 int UNUSED written = 0;
4473 IADDR UNUSED pc = abuf->addr;
4474 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4475
4476{
4477 SI tmp_address;
4478{
4479 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4480 {
4481 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4482 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4483 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4484 }
4485}
4486 {
4487 SI opval = tmp_address;
4488 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4489 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4490 }
4491frvbf_force_update (current_cpu);
4492}
4493
4494 return vpc;
4495#undef FLD
4496}
4497
4498/* lddcu: lddcu$pack @($GRi,$GRj),$CPRdoublek */
4499
4500static SEM_PC
4501SEM_FN_NAME (frvbf,lddcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4502{
4503#define FLD(f) abuf->fields.sfmt_lddcu.f
4504 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4505 int UNUSED written = 0;
4506 IADDR UNUSED pc = abuf->addr;
4507 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4508
4509{
4510 SI tmp_address;
4511{
4512 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4513 {
4514 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
4515 sim_queue_fn_di_write (current_cpu, frvbf_h_cpr_double_set, FLD (f_CPRk), opval);
4516 TRACE_RESULT (current_cpu, abuf, "cpr_double", 'D', opval);
4517 }
4518}
4519 {
4520 SI opval = tmp_address;
4521 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4522 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4523 }
4524frvbf_force_update (current_cpu);
4525}
4526
4527 return vpc;
4528#undef FLD
4529}
4530
4531/* nlddfu: nlddfu$pack @($GRi,$GRj),$FRdoublek */
4532
4533static SEM_PC
4534SEM_FN_NAME (frvbf,nlddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4535{
4536#define FLD(f) abuf->fields.sfmt_clddfu.f
4537 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4538 int UNUSED written = 0;
4539 IADDR UNUSED pc = abuf->addr;
4540 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4541
4542{
4543 BI tmp_do_op;
4544 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 5, 1);
4545if (tmp_do_op) {
4546{
4547 SI tmp_address;
4548{
4549 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4550 {
4551 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
4552 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
4553 written |= (1 << 6);
4554 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
4555 }
4556}
4557 {
4558 SI opval = tmp_address;
4559 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4560 written |= (1 << 7);
4561 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4562 }
4563frvbf_force_update (current_cpu);
4564}
4565}
4566}
4567
4568 abuf->written = written;
4569 return vpc;
4570#undef FLD
4571}
4572
4573/* ldqu: ldqu$pack @($GRi,$GRj),$GRk */
4574
4575static SEM_PC
4576SEM_FN_NAME (frvbf,ldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4577{
4578#define FLD(f) abuf->fields.sfmt_cstdu.f
4579 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4580 int UNUSED written = 0;
4581 IADDR UNUSED pc = abuf->addr;
4582 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4583
4584{
4585 SI tmp_address;
4586{
4587 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4588frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4589}
4590if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4591{
4592 {
4593 SI opval = tmp_address;
4594 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4595 written |= (1 << 5);
4596 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4597 }
4598frvbf_force_update (current_cpu);
4599}
4600}
4601}
4602
4603 abuf->written = written;
4604 return vpc;
4605#undef FLD
4606}
4607
4608/* nldqu: nldqu$pack @($GRi,$GRj),$GRk */
4609
4610static SEM_PC
4611SEM_FN_NAME (frvbf,nldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4612{
4613#define FLD(f) abuf->fields.sfmt_cstdu.f
4614 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4615 int UNUSED written = 0;
4616 IADDR UNUSED pc = abuf->addr;
4617 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4618
4619{
4620 BI tmp_do_op;
4621 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_GRk), 0, 6, 0);
4622if (tmp_do_op) {
4623{
4624 SI tmp_address;
4625{
4626 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4627frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
4628}
4629if (NESI (FLD (f_GRi), FLD (f_GRk))) {
4630{
4631 {
4632 SI opval = tmp_address;
4633 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4634 written |= (1 << 6);
4635 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4636 }
4637frvbf_force_update (current_cpu);
4638}
4639}
4640}
4641}
4642}
4643
4644 abuf->written = written;
4645 return vpc;
4646#undef FLD
4647}
4648
4649/* ldqfu: ldqfu$pack @($GRi,$GRj),$FRintk */
4650
4651static SEM_PC
4652SEM_FN_NAME (frvbf,ldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4653{
4654#define FLD(f) abuf->fields.sfmt_cstdfu.f
4655 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4656 int UNUSED written = 0;
4657 IADDR UNUSED pc = abuf->addr;
4658 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4659
4660{
4661 SI tmp_address;
4662{
4663 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4664frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4665}
4666 {
4667 SI opval = tmp_address;
4668 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4669 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4670 }
4671frvbf_force_update (current_cpu);
4672}
4673
4674 return vpc;
4675#undef FLD
4676}
4677
4678/* ldqcu: ldqcu$pack @($GRi,$GRj),$CPRk */
4679
4680static SEM_PC
4681SEM_FN_NAME (frvbf,ldqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4682{
4683#define FLD(f) abuf->fields.sfmt_stdcu.f
4684 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4685 int UNUSED written = 0;
4686 IADDR UNUSED pc = abuf->addr;
4687 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4688
4689{
4690 SI tmp_address;
4691{
4692 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4693frvbf_load_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
4694}
4695 {
4696 SI opval = tmp_address;
4697 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4698 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4699 }
4700frvbf_force_update (current_cpu);
4701}
4702
4703 return vpc;
4704#undef FLD
4705}
4706
4707/* nldqfu: nldqfu$pack @($GRi,$GRj),$FRintk */
4708
4709static SEM_PC
4710SEM_FN_NAME (frvbf,nldqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4711{
4712#define FLD(f) abuf->fields.sfmt_cstdfu.f
4713 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4714 int UNUSED written = 0;
4715 IADDR UNUSED pc = abuf->addr;
4716 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4717
4718{
4719 BI tmp_do_op;
4720 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), FLD (f_GRj), FLD (f_FRk), 0, 6, 1);
4721if (tmp_do_op) {
4722{
4723 SI tmp_address;
4724{
4725 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
4726frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
4727}
4728 {
4729 SI opval = tmp_address;
4730 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
4731 written |= (1 << 6);
4732 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4733 }
4734frvbf_force_update (current_cpu);
4735}
4736}
4737}
4738
4739 abuf->written = written;
4740 return vpc;
4741#undef FLD
4742}
4743
4744/* ldsbi: ldsbi$pack @($GRi,$d12),$GRk */
4745
4746static SEM_PC
4747SEM_FN_NAME (frvbf,ldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4748{
4749#define FLD(f) abuf->fields.sfmt_swapi.f
4750 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4751 int UNUSED written = 0;
4752 IADDR UNUSED pc = abuf->addr;
4753 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4754
4755 {
4756 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4757 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4758 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4759 }
4760
4761 return vpc;
4762#undef FLD
4763}
4764
4765/* ldshi: ldshi$pack @($GRi,$d12),$GRk */
4766
4767static SEM_PC
4768SEM_FN_NAME (frvbf,ldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4769{
4770#define FLD(f) abuf->fields.sfmt_swapi.f
4771 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4772 int UNUSED written = 0;
4773 IADDR UNUSED pc = abuf->addr;
4774 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4775
4776 {
4777 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4778 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4779 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4780 }
4781
4782 return vpc;
4783#undef FLD
4784}
4785
4786/* ldi: ldi$pack @($GRi,$d12),$GRk */
4787
4788static SEM_PC
4789SEM_FN_NAME (frvbf,ldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4790{
4791#define FLD(f) abuf->fields.sfmt_swapi.f
4792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4793 int UNUSED written = 0;
4794 IADDR UNUSED pc = abuf->addr;
4795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4796
4797 {
4798 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4799 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4800 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4801 }
4802
4803 return vpc;
4804#undef FLD
4805}
4806
4807/* ldubi: ldubi$pack @($GRi,$d12),$GRk */
4808
4809static SEM_PC
4810SEM_FN_NAME (frvbf,ldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4811{
4812#define FLD(f) abuf->fields.sfmt_swapi.f
4813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4814 int UNUSED written = 0;
4815 IADDR UNUSED pc = abuf->addr;
4816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4817
4818 {
4819 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4820 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4821 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4822 }
4823
4824 return vpc;
4825#undef FLD
4826}
4827
4828/* lduhi: lduhi$pack @($GRi,$d12),$GRk */
4829
4830static SEM_PC
4831SEM_FN_NAME (frvbf,lduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4832{
4833#define FLD(f) abuf->fields.sfmt_swapi.f
4834 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4835 int UNUSED written = 0;
4836 IADDR UNUSED pc = abuf->addr;
4837 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4838
4839 {
4840 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4841 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4842 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4843 }
4844
4845 return vpc;
4846#undef FLD
4847}
4848
4849/* ldbfi: ldbfi$pack @($GRi,$d12),$FRintk */
4850
4851static SEM_PC
4852SEM_FN_NAME (frvbf,ldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4853{
4854#define FLD(f) abuf->fields.sfmt_ldbfi.f
4855 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4856 int UNUSED written = 0;
4857 IADDR UNUSED pc = abuf->addr;
4858 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4859
4860 {
4861 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4862 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4863 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4864 }
4865
4866 return vpc;
4867#undef FLD
4868}
4869
4870/* ldhfi: ldhfi$pack @($GRi,$d12),$FRintk */
4871
4872static SEM_PC
4873SEM_FN_NAME (frvbf,ldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4874{
4875#define FLD(f) abuf->fields.sfmt_ldbfi.f
4876 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4877 int UNUSED written = 0;
4878 IADDR UNUSED pc = abuf->addr;
4879 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4880
4881 {
4882 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4883 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4884 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4885 }
4886
4887 return vpc;
4888#undef FLD
4889}
4890
4891/* ldfi: ldfi$pack @($GRi,$d12),$FRintk */
4892
4893static SEM_PC
4894SEM_FN_NAME (frvbf,ldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4895{
4896#define FLD(f) abuf->fields.sfmt_ldbfi.f
4897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4898 int UNUSED written = 0;
4899 IADDR UNUSED pc = abuf->addr;
4900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4901
4902 {
4903 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4904 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
4905 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
4906 }
4907
4908 return vpc;
4909#undef FLD
4910}
4911
4912/* nldsbi: nldsbi$pack @($GRi,$d12),$GRk */
4913
4914static SEM_PC
4915SEM_FN_NAME (frvbf,nldsbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4916{
4917#define FLD(f) abuf->fields.sfmt_swapi.f
4918 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4919 int UNUSED written = 0;
4920 IADDR UNUSED pc = abuf->addr;
4921 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4922
4923{
4924 BI tmp_do_op;
4925 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 1, 0);
4926if (tmp_do_op) {
4927 {
4928 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4929 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4930 written |= (1 << 5);
4931 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4932 }
4933}
4934}
4935
4936 abuf->written = written;
4937 return vpc;
4938#undef FLD
4939}
4940
4941/* nldubi: nldubi$pack @($GRi,$d12),$GRk */
4942
4943static SEM_PC
4944SEM_FN_NAME (frvbf,nldubi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4945{
4946#define FLD(f) abuf->fields.sfmt_swapi.f
4947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4948 int UNUSED written = 0;
4949 IADDR UNUSED pc = abuf->addr;
4950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4951
4952{
4953 BI tmp_do_op;
4954 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 0, 0);
4955if (tmp_do_op) {
4956 {
4957 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4958 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4959 written |= (1 << 5);
4960 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4961 }
4962}
4963}
4964
4965 abuf->written = written;
4966 return vpc;
4967#undef FLD
4968}
4969
4970/* nldshi: nldshi$pack @($GRi,$d12),$GRk */
4971
4972static SEM_PC
4973SEM_FN_NAME (frvbf,nldshi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
4974{
4975#define FLD(f) abuf->fields.sfmt_swapi.f
4976 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
4977 int UNUSED written = 0;
4978 IADDR UNUSED pc = abuf->addr;
4979 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
4980
4981{
4982 BI tmp_do_op;
4983 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 3, 0);
4984if (tmp_do_op) {
4985 {
4986 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
4987 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
4988 written |= (1 << 5);
4989 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
4990 }
4991}
4992}
4993
4994 abuf->written = written;
4995 return vpc;
4996#undef FLD
4997}
4998
4999/* nlduhi: nlduhi$pack @($GRi,$d12),$GRk */
5000
5001static SEM_PC
5002SEM_FN_NAME (frvbf,nlduhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5003{
5004#define FLD(f) abuf->fields.sfmt_swapi.f
5005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5006 int UNUSED written = 0;
5007 IADDR UNUSED pc = abuf->addr;
5008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5009
5010{
5011 BI tmp_do_op;
5012 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 2, 0);
5013if (tmp_do_op) {
5014 {
5015 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5016 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5017 written |= (1 << 5);
5018 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5019 }
5020}
5021}
5022
5023 abuf->written = written;
5024 return vpc;
5025#undef FLD
5026}
5027
5028/* nldi: nldi$pack @($GRi,$d12),$GRk */
5029
5030static SEM_PC
5031SEM_FN_NAME (frvbf,nldi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5032{
5033#define FLD(f) abuf->fields.sfmt_swapi.f
5034 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5035 int UNUSED written = 0;
5036 IADDR UNUSED pc = abuf->addr;
5037 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5038
5039{
5040 BI tmp_do_op;
5041 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 4, 0);
5042if (tmp_do_op) {
5043 {
5044 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5045 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
5046 written |= (1 << 5);
5047 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5048 }
5049}
5050}
5051
5052 abuf->written = written;
5053 return vpc;
5054#undef FLD
5055}
5056
5057/* nldbfi: nldbfi$pack @($GRi,$d12),$FRintk */
5058
5059static SEM_PC
5060SEM_FN_NAME (frvbf,nldbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5061{
5062#define FLD(f) abuf->fields.sfmt_ldbfi.f
5063 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5064 int UNUSED written = 0;
5065 IADDR UNUSED pc = abuf->addr;
5066 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5067
5068{
5069 BI tmp_do_op;
5070 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 0, 1);
5071if (tmp_do_op) {
5072 {
5073 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5074 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5075 written |= (1 << 5);
5076 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5077 }
5078}
5079}
5080
5081 abuf->written = written;
5082 return vpc;
5083#undef FLD
5084}
5085
5086/* nldhfi: nldhfi$pack @($GRi,$d12),$FRintk */
5087
5088static SEM_PC
5089SEM_FN_NAME (frvbf,nldhfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5090{
5091#define FLD(f) abuf->fields.sfmt_ldbfi.f
5092 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5093 int UNUSED written = 0;
5094 IADDR UNUSED pc = abuf->addr;
5095 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5096
5097{
5098 BI tmp_do_op;
5099 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 2, 1);
5100if (tmp_do_op) {
5101 {
5102 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5103 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5104 written |= (1 << 5);
5105 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5106 }
5107}
5108}
5109
5110 abuf->written = written;
5111 return vpc;
5112#undef FLD
5113}
5114
5115/* nldfi: nldfi$pack @($GRi,$d12),$FRintk */
5116
5117static SEM_PC
5118SEM_FN_NAME (frvbf,nldfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5119{
5120#define FLD(f) abuf->fields.sfmt_ldbfi.f
5121 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5122 int UNUSED written = 0;
5123 IADDR UNUSED pc = abuf->addr;
5124 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5125
5126{
5127 BI tmp_do_op;
5128 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 4, 1);
5129if (tmp_do_op) {
5130 {
5131 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)));
5132 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
5133 written |= (1 << 5);
5134 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
5135 }
5136}
5137}
5138
5139 abuf->written = written;
5140 return vpc;
5141#undef FLD
5142}
5143
5144/* lddi: lddi$pack @($GRi,$d12),$GRdoublek */
5145
5146static SEM_PC
5147SEM_FN_NAME (frvbf,lddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5148{
5149#define FLD(f) abuf->fields.sfmt_smuli.f
5150 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5151 int UNUSED written = 0;
5152 IADDR UNUSED pc = abuf->addr;
5153 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5154
5155{
5156 SI tmp_address;
5157if (NESI (FLD (f_GRk), 0)) {
5158{
5159 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5160 {
5161 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5162 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5163 written |= (1 << 4);
5164 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5165 }
5166}
5167}
5168}
5169
5170 abuf->written = written;
5171 return vpc;
5172#undef FLD
5173}
5174
5175/* lddfi: lddfi$pack @($GRi,$d12),$FRdoublek */
5176
5177static SEM_PC
5178SEM_FN_NAME (frvbf,lddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5179{
5180#define FLD(f) abuf->fields.sfmt_lddfi.f
5181 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5182 int UNUSED written = 0;
5183 IADDR UNUSED pc = abuf->addr;
5184 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5185
5186{
5187 SI tmp_address;
5188{
5189 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5190 {
5191 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5192 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5193 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5194 }
5195}
5196}
5197
5198 return vpc;
5199#undef FLD
5200}
5201
5202/* nlddi: nlddi$pack @($GRi,$d12),$GRdoublek */
5203
5204static SEM_PC
5205SEM_FN_NAME (frvbf,nlddi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5206{
5207#define FLD(f) abuf->fields.sfmt_smuli.f
5208 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5209 int UNUSED written = 0;
5210 IADDR UNUSED pc = abuf->addr;
5211 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5212
5213{
5214 SI tmp_address;
5215{
5216 BI tmp_do_op;
5217 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 5, 0);
5218if (tmp_do_op) {
5219if (NESI (FLD (f_GRk), 0)) {
5220{
5221 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5222 {
5223 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
5224 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
5225 written |= (1 << 5);
5226 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
5227 }
5228}
5229}
5230}
5231}
5232}
5233
5234 abuf->written = written;
5235 return vpc;
5236#undef FLD
5237}
5238
5239/* nlddfi: nlddfi$pack @($GRi,$d12),$FRdoublek */
5240
5241static SEM_PC
5242SEM_FN_NAME (frvbf,nlddfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5243{
5244#define FLD(f) abuf->fields.sfmt_lddfi.f
5245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5246 int UNUSED written = 0;
5247 IADDR UNUSED pc = abuf->addr;
5248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5249
5250{
5251 SI tmp_address;
5252{
5253 BI tmp_do_op;
5254 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 5, 1);
5255if (tmp_do_op) {
5256{
5257 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5258 {
5259 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
5260 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
5261 written |= (1 << 5);
5262 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
5263 }
5264}
5265}
5266}
5267}
5268
5269 abuf->written = written;
5270 return vpc;
5271#undef FLD
5272}
5273
5274/* ldqi: ldqi$pack @($GRi,$d12),$GRk */
5275
5276static SEM_PC
5277SEM_FN_NAME (frvbf,ldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5278{
5279#define FLD(f) abuf->fields.sfmt_stdi.f
5280 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5281 int UNUSED written = 0;
5282 IADDR UNUSED pc = abuf->addr;
5283 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5284
5285{
5286 SI tmp_address;
5287{
5288 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5289frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5290}
5291}
5292
5293 return vpc;
5294#undef FLD
5295}
5296
5297/* ldqfi: ldqfi$pack @($GRi,$d12),$FRintk */
5298
5299static SEM_PC
5300SEM_FN_NAME (frvbf,ldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5301{
5302#define FLD(f) abuf->fields.sfmt_stdfi.f
5303 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5304 int UNUSED written = 0;
5305 IADDR UNUSED pc = abuf->addr;
5306 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5307
5308{
5309 SI tmp_address;
5310{
5311 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5312frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5313}
5314}
5315
5316 return vpc;
5317#undef FLD
5318}
5319
5320/* nldqi: nldqi$pack @($GRi,$d12),$GRk */
5321
5322static SEM_PC
5323SEM_FN_NAME (frvbf,nldqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5324{
5325#define FLD(f) abuf->fields.sfmt_stdi.f
5326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5327 int UNUSED written = 0;
5328 IADDR UNUSED pc = abuf->addr;
5329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5330
5331{
5332 SI tmp_address;
5333{
5334 BI tmp_do_op;
5335 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_GRk), FLD (f_d12), 6, 0);
5336if (tmp_do_op) {
5337{
5338 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5339frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5340}
5341}
5342}
5343}
5344
5345 return vpc;
5346#undef FLD
5347}
5348
5349/* nldqfi: nldqfi$pack @($GRi,$d12),$FRintk */
5350
5351static SEM_PC
5352SEM_FN_NAME (frvbf,nldqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5353{
5354#define FLD(f) abuf->fields.sfmt_stdfi.f
5355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5356 int UNUSED written = 0;
5357 IADDR UNUSED pc = abuf->addr;
5358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5359
5360{
5361 SI tmp_address;
5362{
5363 BI tmp_do_op;
5364 tmp_do_op = frvbf_check_non_excepting_load (current_cpu, FLD (f_GRi), -1, FLD (f_FRk), FLD (f_d12), 6, 1);
5365if (tmp_do_op) {
5366{
5367 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
5368frvbf_load_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5369}
5370}
5371}
5372}
5373
5374 return vpc;
5375#undef FLD
5376}
5377
5378/* stb: stb$pack $GRk,@($GRi,$GRj) */
5379
5380static SEM_PC
5381SEM_FN_NAME (frvbf,stb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5382{
5383#define FLD(f) abuf->fields.sfmt_cswap.f
5384 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5385 int UNUSED written = 0;
5386 IADDR UNUSED pc = abuf->addr;
5387 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5388
5389frvbf_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)));
5390
5391 return vpc;
5392#undef FLD
5393}
5394
5395/* sth: sth$pack $GRk,@($GRi,$GRj) */
5396
5397static SEM_PC
5398SEM_FN_NAME (frvbf,sth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5399{
5400#define FLD(f) abuf->fields.sfmt_cswap.f
5401 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5402 int UNUSED written = 0;
5403 IADDR UNUSED pc = abuf->addr;
5404 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5405
5406frvbf_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)));
5407
5408 return vpc;
5409#undef FLD
5410}
5411
5412/* st: st$pack $GRk,@($GRi,$GRj) */
5413
5414static SEM_PC
5415SEM_FN_NAME (frvbf,st) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5416{
5417#define FLD(f) abuf->fields.sfmt_cswap.f
5418 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5419 int UNUSED written = 0;
5420 IADDR UNUSED pc = abuf->addr;
5421 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5422
5423frvbf_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)));
5424
5425 return vpc;
5426#undef FLD
5427}
5428
5429/* stbf: stbf$pack $FRintk,@($GRi,$GRj) */
5430
5431static SEM_PC
5432SEM_FN_NAME (frvbf,stbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5433{
5434#define FLD(f) abuf->fields.sfmt_cstbfu.f
5435 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5436 int UNUSED written = 0;
5437 IADDR UNUSED pc = abuf->addr;
5438 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5439
5440frvbf_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)));
5441
5442 return vpc;
5443#undef FLD
5444}
5445
5446/* sthf: sthf$pack $FRintk,@($GRi,$GRj) */
5447
5448static SEM_PC
5449SEM_FN_NAME (frvbf,sthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5450{
5451#define FLD(f) abuf->fields.sfmt_cstbfu.f
5452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5453 int UNUSED written = 0;
5454 IADDR UNUSED pc = abuf->addr;
5455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5456
5457frvbf_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)));
5458
5459 return vpc;
5460#undef FLD
5461}
5462
5463/* stf: stf$pack $FRintk,@($GRi,$GRj) */
5464
5465static SEM_PC
5466SEM_FN_NAME (frvbf,stf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5467{
5468#define FLD(f) abuf->fields.sfmt_cstbfu.f
5469 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5470 int UNUSED written = 0;
5471 IADDR UNUSED pc = abuf->addr;
5472 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5473
5474frvbf_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)));
5475
5476 return vpc;
5477#undef FLD
5478}
5479
5480/* stc: stc$pack $CPRk,@($GRi,$GRj) */
5481
5482static SEM_PC
5483SEM_FN_NAME (frvbf,stc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5484{
5485#define FLD(f) abuf->fields.sfmt_stcu.f
5486 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5487 int UNUSED written = 0;
5488 IADDR UNUSED pc = abuf->addr;
5489 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5490
5491frvbf_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)]));
5492
5493 return vpc;
5494#undef FLD
5495}
5496
5497/* rstb: rstb$pack $GRk,@($GRi,$GRj) */
5498
5499static SEM_PC
5500SEM_FN_NAME (frvbf,rstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5501{
5502#define FLD(f) abuf->fields.sfmt_cswap.f
5503 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5504 int UNUSED written = 0;
5505 IADDR UNUSED pc = abuf->addr;
5506 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5507
5508{
5509 SI tmp_address;
5510 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5511frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5512frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 1, 0);
5513}
5514
5515 return vpc;
5516#undef FLD
5517}
5518
5519/* rsth: rsth$pack $GRk,@($GRi,$GRj) */
5520
5521static SEM_PC
5522SEM_FN_NAME (frvbf,rsth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5523{
5524#define FLD(f) abuf->fields.sfmt_cswap.f
5525 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5526 int UNUSED written = 0;
5527 IADDR UNUSED pc = abuf->addr;
5528 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5529
5530{
5531 SI tmp_address;
5532 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5533frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5534frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 2, 0);
5535}
5536
5537 return vpc;
5538#undef FLD
5539}
5540
5541/* rst: rst$pack $GRk,@($GRi,$GRj) */
5542
5543static SEM_PC
5544SEM_FN_NAME (frvbf,rst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5545{
5546#define FLD(f) abuf->fields.sfmt_cswap.f
5547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5548 int UNUSED written = 0;
5549 IADDR UNUSED pc = abuf->addr;
5550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5551
5552{
5553 SI tmp_address;
5554 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5555frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5556frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 4, 0);
5557}
5558
5559 return vpc;
5560#undef FLD
5561}
5562
5563/* rstbf: rstbf$pack $FRintk,@($GRi,$GRj) */
5564
5565static SEM_PC
5566SEM_FN_NAME (frvbf,rstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5567{
5568#define FLD(f) abuf->fields.sfmt_cstbfu.f
5569 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5570 int UNUSED written = 0;
5571 IADDR UNUSED pc = abuf->addr;
5572 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5573
5574{
5575 SI tmp_address;
5576 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5577frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5578frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 1, 1);
5579}
5580
5581 return vpc;
5582#undef FLD
5583}
5584
5585/* rsthf: rsthf$pack $FRintk,@($GRi,$GRj) */
5586
5587static SEM_PC
5588SEM_FN_NAME (frvbf,rsthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5589{
5590#define FLD(f) abuf->fields.sfmt_cstbfu.f
5591 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5592 int UNUSED written = 0;
5593 IADDR UNUSED pc = abuf->addr;
5594 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5595
5596{
5597 SI tmp_address;
5598 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5599frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5600frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 2, 1);
5601}
5602
5603 return vpc;
5604#undef FLD
5605}
5606
5607/* rstf: rstf$pack $FRintk,@($GRi,$GRj) */
5608
5609static SEM_PC
5610SEM_FN_NAME (frvbf,rstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5611{
5612#define FLD(f) abuf->fields.sfmt_cstbfu.f
5613 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5614 int UNUSED written = 0;
5615 IADDR UNUSED pc = abuf->addr;
5616 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5617
5618{
5619 SI tmp_address;
5620 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5621frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5622frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 4, 1);
5623}
5624
5625 return vpc;
5626#undef FLD
5627}
5628
5629/* std: std$pack $GRk,@($GRi,$GRj) */
5630
5631static SEM_PC
5632SEM_FN_NAME (frvbf,std) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5633{
5634#define FLD(f) abuf->fields.sfmt_cstdu.f
5635 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5636 int UNUSED written = 0;
5637 IADDR UNUSED pc = abuf->addr;
5638 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5639
5640{
5641 SI tmp_address;
5642{
5643 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5644frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5645}
5646}
5647
5648 return vpc;
5649#undef FLD
5650}
5651
5652/* stdf: stdf$pack $FRk,@($GRi,$GRj) */
5653
5654static SEM_PC
5655SEM_FN_NAME (frvbf,stdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5656{
5657#define FLD(f) abuf->fields.sfmt_cstdfu.f
5658 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5659 int UNUSED written = 0;
5660 IADDR UNUSED pc = abuf->addr;
5661 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5662
5663{
5664 SI tmp_address;
5665{
5666 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5667frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5668}
5669}
5670
5671 return vpc;
5672#undef FLD
5673}
5674
5675/* stdc: stdc$pack $CPRk,@($GRi,$GRj) */
5676
5677static SEM_PC
5678SEM_FN_NAME (frvbf,stdc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5679{
5680#define FLD(f) abuf->fields.sfmt_stdcu.f
5681 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5682 int UNUSED written = 0;
5683 IADDR UNUSED pc = abuf->addr;
5684 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5685
5686{
5687 SI tmp_address;
5688{
5689 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5690frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
5691}
5692}
5693
5694 return vpc;
5695#undef FLD
5696}
5697
5698/* rstd: rstd$pack $GRk,@($GRi,$GRj) */
5699
5700static SEM_PC
5701SEM_FN_NAME (frvbf,rstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5702{
5703#define FLD(f) abuf->fields.sfmt_cstdu.f
5704 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5705 int UNUSED written = 0;
5706 IADDR UNUSED pc = abuf->addr;
5707 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5708
5709{
5710 SI tmp_address;
5711{
5712 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5713frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
5714}
5715frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 8, 0);
5716}
5717
5718 return vpc;
5719#undef FLD
5720}
5721
5722/* rstdf: rstdf$pack $FRk,@($GRi,$GRj) */
5723
5724static SEM_PC
5725SEM_FN_NAME (frvbf,rstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5726{
5727#define FLD(f) abuf->fields.sfmt_cstdfu.f
5728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5729 int UNUSED written = 0;
5730 IADDR UNUSED pc = abuf->addr;
5731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5732
5733{
5734 SI tmp_address;
5735{
5736 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5737frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
5738}
5739frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 8, 1);
5740}
5741
5742 return vpc;
5743#undef FLD
5744}
5745
5746/* stq: stq$pack $GRk,@($GRi,$GRj) */
5747
5748static SEM_PC
5749SEM_FN_NAME (frvbf,stq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5750{
5751#define FLD(f) abuf->fields.sfmt_smulcc.f
5752 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5753 int UNUSED written = 0;
5754 IADDR UNUSED pc = abuf->addr;
5755 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5756
5757{
5758 SI tmp_address;
5759{
5760 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5761frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5762}
5763}
5764
5765 return vpc;
5766#undef FLD
5767}
5768
5769/* stqf: stqf$pack $FRintk,@($GRi,$GRj) */
5770
5771static SEM_PC
5772SEM_FN_NAME (frvbf,stqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5773{
5774#define FLD(f) abuf->fields.sfmt_cstdfu.f
5775 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5776 int UNUSED written = 0;
5777 IADDR UNUSED pc = abuf->addr;
5778 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5779
5780{
5781 SI tmp_address;
5782{
5783 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5784frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5785}
5786}
5787
5788 return vpc;
5789#undef FLD
5790}
5791
5792/* stqc: stqc$pack $CPRk,@($GRi,$GRj) */
5793
5794static SEM_PC
5795SEM_FN_NAME (frvbf,stqc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5796{
5797#define FLD(f) abuf->fields.sfmt_stdcu.f
5798 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5799 int UNUSED written = 0;
5800 IADDR UNUSED pc = abuf->addr;
5801 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5802
5803{
5804 SI tmp_address;
5805{
5806 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5807frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
5808}
5809}
5810
5811 return vpc;
5812#undef FLD
5813}
5814
5815/* rstq: rstq$pack $GRk,@($GRi,$GRj) */
5816
5817static SEM_PC
5818SEM_FN_NAME (frvbf,rstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5819{
5820#define FLD(f) abuf->fields.sfmt_smulcc.f
5821 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5822 int UNUSED written = 0;
5823 IADDR UNUSED pc = abuf->addr;
5824 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5825
5826{
5827 SI tmp_address;
5828{
5829 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5830frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
5831}
5832frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_GRk), 16, 0);
5833}
5834
5835 return vpc;
5836#undef FLD
5837}
5838
5839/* rstqf: rstqf$pack $FRintk,@($GRi,$GRj) */
5840
5841static SEM_PC
5842SEM_FN_NAME (frvbf,rstqf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5843{
5844#define FLD(f) abuf->fields.sfmt_cstdfu.f
5845 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5846 int UNUSED written = 0;
5847 IADDR UNUSED pc = abuf->addr;
5848 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5849
5850{
5851 SI tmp_address;
5852{
5853 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5854frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
5855}
5856frvbf_check_recovering_store (current_cpu, tmp_address, FLD (f_FRk), 16, 1);
5857}
5858
5859 return vpc;
5860#undef FLD
5861}
5862
5863/* stbu: stbu$pack $GRk,@($GRi,$GRj) */
5864
5865static SEM_PC
5866SEM_FN_NAME (frvbf,stbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5867{
5868#define FLD(f) abuf->fields.sfmt_cstbu.f
5869 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5870 int UNUSED written = 0;
5871 IADDR UNUSED pc = abuf->addr;
5872 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5873
5874{
5875 USI tmp_address;
5876 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5877frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5878 {
5879 SI opval = tmp_address;
5880 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5881 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5882 }
5883}
5884
5885 return vpc;
5886#undef FLD
5887}
5888
5889/* sthu: sthu$pack $GRk,@($GRi,$GRj) */
5890
5891static SEM_PC
5892SEM_FN_NAME (frvbf,sthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5893{
5894#define FLD(f) abuf->fields.sfmt_cstbu.f
5895 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5896 int UNUSED written = 0;
5897 IADDR UNUSED pc = abuf->addr;
5898 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5899
5900{
5901 USI tmp_address;
5902 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5903frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5904 {
5905 SI opval = tmp_address;
5906 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5907 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5908 }
5909}
5910
5911 return vpc;
5912#undef FLD
5913}
5914
5915/* stu: stu$pack $GRk,@($GRi,$GRj) */
5916
5917static SEM_PC
5918SEM_FN_NAME (frvbf,stu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5919{
5920#define FLD(f) abuf->fields.sfmt_cstbu.f
5921 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5922 int UNUSED written = 0;
5923 IADDR UNUSED pc = abuf->addr;
5924 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5925
5926{
5927 USI tmp_address;
5928 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5929frvbf_write_mem_WI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
5930 {
5931 SI opval = tmp_address;
5932 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5933 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5934 }
5935}
5936
5937 return vpc;
5938#undef FLD
5939}
5940
5941/* stbfu: stbfu$pack $FRintk,@($GRi,$GRj) */
5942
5943static SEM_PC
5944SEM_FN_NAME (frvbf,stbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5945{
5946#define FLD(f) abuf->fields.sfmt_cstbfu.f
5947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5948 int UNUSED written = 0;
5949 IADDR UNUSED pc = abuf->addr;
5950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5951
5952{
5953 USI tmp_address;
5954 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5955frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5956 {
5957 SI opval = tmp_address;
5958 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5959 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5960 }
5961}
5962
5963 return vpc;
5964#undef FLD
5965}
5966
5967/* sthfu: sthfu$pack $FRintk,@($GRi,$GRj) */
5968
5969static SEM_PC
5970SEM_FN_NAME (frvbf,sthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5971{
5972#define FLD(f) abuf->fields.sfmt_cstbfu.f
5973 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
5974 int UNUSED written = 0;
5975 IADDR UNUSED pc = abuf->addr;
5976 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
5977
5978{
5979 USI tmp_address;
5980 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
5981frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
5982 {
5983 SI opval = tmp_address;
5984 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
5985 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
5986 }
5987}
5988
5989 return vpc;
5990#undef FLD
5991}
5992
5993/* stfu: stfu$pack $FRintk,@($GRi,$GRj) */
5994
5995static SEM_PC
5996SEM_FN_NAME (frvbf,stfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
5997{
5998#define FLD(f) abuf->fields.sfmt_cstbfu.f
5999 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6000 int UNUSED written = 0;
6001 IADDR UNUSED pc = abuf->addr;
6002 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6003
6004{
6005 USI tmp_address;
6006 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6007frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
6008 {
6009 SI opval = tmp_address;
6010 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6011 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6012 }
6013}
6014
6015 return vpc;
6016#undef FLD
6017}
6018
6019/* stcu: stcu$pack $CPRk,@($GRi,$GRj) */
6020
6021static SEM_PC
6022SEM_FN_NAME (frvbf,stcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6023{
6024#define FLD(f) abuf->fields.sfmt_stcu.f
6025 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6026 int UNUSED written = 0;
6027 IADDR UNUSED pc = abuf->addr;
6028 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6029
6030{
6031 USI tmp_address;
6032 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6033frvbf_write_mem_SI (current_cpu, pc, tmp_address, CPU (h_cpr[FLD (f_CPRk)]));
6034 {
6035 SI opval = tmp_address;
6036 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6037 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6038 }
6039}
6040
6041 return vpc;
6042#undef FLD
6043}
6044
6045/* stdu: stdu$pack $GRk,@($GRi,$GRj) */
6046
6047static SEM_PC
6048SEM_FN_NAME (frvbf,stdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6049{
6050#define FLD(f) abuf->fields.sfmt_cstdu.f
6051 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6052 int UNUSED written = 0;
6053 IADDR UNUSED pc = abuf->addr;
6054 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6055
6056{
6057 SI tmp_address;
6058{
6059 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6060frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
6061}
6062 {
6063 SI opval = tmp_address;
6064 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6065 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6066 }
6067}
6068
6069 return vpc;
6070#undef FLD
6071}
6072
6073/* stdfu: stdfu$pack $FRk,@($GRi,$GRj) */
6074
6075static SEM_PC
6076SEM_FN_NAME (frvbf,stdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6077{
6078#define FLD(f) abuf->fields.sfmt_cstdfu.f
6079 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6080 int UNUSED written = 0;
6081 IADDR UNUSED pc = abuf->addr;
6082 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6083
6084{
6085 SI tmp_address;
6086{
6087 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6088frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
6089}
6090 {
6091 SI opval = tmp_address;
6092 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6093 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6094 }
6095}
6096
6097 return vpc;
6098#undef FLD
6099}
6100
6101/* stdcu: stdcu$pack $CPRk,@($GRi,$GRj) */
6102
6103static SEM_PC
6104SEM_FN_NAME (frvbf,stdcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6105{
6106#define FLD(f) abuf->fields.sfmt_stdcu.f
6107 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6108 int UNUSED written = 0;
6109 IADDR UNUSED pc = abuf->addr;
6110 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6111
6112{
6113 SI tmp_address;
6114{
6115 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6116frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_CPR_DOUBLE (FLD (f_CPRk)));
6117}
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/* stqu: stqu$pack $GRk,@($GRi,$GRj) */
6130
6131static SEM_PC
6132SEM_FN_NAME (frvbf,stqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6133{
6134#define FLD(f) abuf->fields.sfmt_cstdu.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 SI tmp_address;
6142{
6143 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6144frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6145}
6146 {
6147 SI opval = tmp_address;
6148 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6149 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6150 }
6151}
6152
6153 return vpc;
6154#undef FLD
6155}
6156
6157/* stqfu: stqfu$pack $FRintk,@($GRi,$GRj) */
6158
6159static SEM_PC
6160SEM_FN_NAME (frvbf,stqfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6161{
6162#define FLD(f) abuf->fields.sfmt_cstdfu.f
6163 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6164 int UNUSED written = 0;
6165 IADDR UNUSED pc = abuf->addr;
6166 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6167
6168{
6169 SI tmp_address;
6170{
6171 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6172frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
6173}
6174 {
6175 SI opval = tmp_address;
6176 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6177 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6178 }
6179}
6180
6181 return vpc;
6182#undef FLD
6183}
6184
6185/* stqcu: stqcu$pack $CPRk,@($GRi,$GRj) */
6186
6187static SEM_PC
6188SEM_FN_NAME (frvbf,stqcu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6189{
6190#define FLD(f) abuf->fields.sfmt_stdcu.f
6191 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6192 int UNUSED written = 0;
6193 IADDR UNUSED pc = abuf->addr;
6194 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6195
6196{
6197 SI tmp_address;
6198{
6199 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6200frvbf_store_quad_CPR (current_cpu, pc, tmp_address, FLD (f_CPRk));
6201}
6202 {
6203 SI opval = tmp_address;
6204 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6205 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6206 }
6207}
6208
6209 return vpc;
6210#undef FLD
6211}
6212
6213/* cldsb: cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6214
6215static SEM_PC
6216SEM_FN_NAME (frvbf,cldsb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6217{
6218#define FLD(f) abuf->fields.sfmt_cswap.f
6219 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6220 int UNUSED written = 0;
6221 IADDR UNUSED pc = abuf->addr;
6222 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6223
6224if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6225 {
6226 SI opval = frvbf_read_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6227 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6228 written |= (1 << 5);
6229 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6230 }
6231}
6232
6233 abuf->written = written;
6234 return vpc;
6235#undef FLD
6236}
6237
6238/* cldub: cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6239
6240static SEM_PC
6241SEM_FN_NAME (frvbf,cldub) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6242{
6243#define FLD(f) abuf->fields.sfmt_cswap.f
6244 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6245 int UNUSED written = 0;
6246 IADDR UNUSED pc = abuf->addr;
6247 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6248
6249if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6250 {
6251 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6252 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6253 written |= (1 << 5);
6254 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6255 }
6256}
6257
6258 abuf->written = written;
6259 return vpc;
6260#undef FLD
6261}
6262
6263/* cldsh: cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6264
6265static SEM_PC
6266SEM_FN_NAME (frvbf,cldsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6267{
6268#define FLD(f) abuf->fields.sfmt_cswap.f
6269 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6270 int UNUSED written = 0;
6271 IADDR UNUSED pc = abuf->addr;
6272 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6273
6274if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6275 {
6276 SI opval = frvbf_read_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6277 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6278 written |= (1 << 5);
6279 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6280 }
6281}
6282
6283 abuf->written = written;
6284 return vpc;
6285#undef FLD
6286}
6287
6288/* clduh: clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6289
6290static SEM_PC
6291SEM_FN_NAME (frvbf,clduh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6292{
6293#define FLD(f) abuf->fields.sfmt_cswap.f
6294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6295 int UNUSED written = 0;
6296 IADDR UNUSED pc = abuf->addr;
6297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6298
6299if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6300 {
6301 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6302 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6303 written |= (1 << 5);
6304 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6305 }
6306}
6307
6308 abuf->written = written;
6309 return vpc;
6310#undef FLD
6311}
6312
6313/* cld: cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6314
6315static SEM_PC
6316SEM_FN_NAME (frvbf,cld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6317{
6318#define FLD(f) abuf->fields.sfmt_cswap.f
6319 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6320 int UNUSED written = 0;
6321 IADDR UNUSED pc = abuf->addr;
6322 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6323
6324if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6325 {
6326 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6327 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6328 written |= (1 << 5);
6329 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6330 }
6331}
6332
6333 abuf->written = written;
6334 return vpc;
6335#undef FLD
6336}
6337
6338/* cldbf: cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6339
6340static SEM_PC
6341SEM_FN_NAME (frvbf,cldbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6342{
6343#define FLD(f) abuf->fields.sfmt_cldbfu.f
6344 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6345 int UNUSED written = 0;
6346 IADDR UNUSED pc = abuf->addr;
6347 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6348
6349if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6350 {
6351 SI opval = frvbf_read_mem_UQI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6352 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6353 written |= (1 << 5);
6354 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6355 }
6356}
6357
6358 abuf->written = written;
6359 return vpc;
6360#undef FLD
6361}
6362
6363/* cldhf: cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6364
6365static SEM_PC
6366SEM_FN_NAME (frvbf,cldhf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6367{
6368#define FLD(f) abuf->fields.sfmt_cldbfu.f
6369 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6370 int UNUSED written = 0;
6371 IADDR UNUSED pc = abuf->addr;
6372 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6373
6374if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6375 {
6376 SI opval = frvbf_read_mem_UHI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6377 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6378 written |= (1 << 5);
6379 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6380 }
6381}
6382
6383 abuf->written = written;
6384 return vpc;
6385#undef FLD
6386}
6387
6388/* cldf: cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6389
6390static SEM_PC
6391SEM_FN_NAME (frvbf,cldf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6392{
6393#define FLD(f) abuf->fields.sfmt_cldbfu.f
6394 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6395 int UNUSED written = 0;
6396 IADDR UNUSED pc = abuf->addr;
6397 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6398
6399if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6400 {
6401 SI opval = frvbf_read_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))));
6402 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6403 written |= (1 << 5);
6404 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6405 }
6406}
6407
6408 abuf->written = written;
6409 return vpc;
6410#undef FLD
6411}
6412
6413/* cldd: cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6414
6415static SEM_PC
6416SEM_FN_NAME (frvbf,cldd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6417{
6418#define FLD(f) abuf->fields.sfmt_clddu.f
6419 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6420 int UNUSED written = 0;
6421 IADDR UNUSED pc = abuf->addr;
6422 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6423
6424if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6425{
6426 SI tmp_address;
6427if (NESI (FLD (f_GRk), 0)) {
6428{
6429 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6430 {
6431 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6432 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6433 written |= (1 << 6);
6434 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6435 }
6436}
6437}
6438}
6439}
6440
6441 abuf->written = written;
6442 return vpc;
6443#undef FLD
6444}
6445
6446/* clddf: clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6447
6448static SEM_PC
6449SEM_FN_NAME (frvbf,clddf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6450{
6451#define FLD(f) abuf->fields.sfmt_clddfu.f
6452 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6453 int UNUSED written = 0;
6454 IADDR UNUSED pc = abuf->addr;
6455 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6456
6457if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6458{
6459 SI tmp_address;
6460{
6461 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6462 {
6463 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6464 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6465 written |= (1 << 5);
6466 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6467 }
6468}
6469}
6470}
6471
6472 abuf->written = written;
6473 return vpc;
6474#undef FLD
6475}
6476
6477/* cldq: cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6478
6479static SEM_PC
6480SEM_FN_NAME (frvbf,cldq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6481{
6482#define FLD(f) abuf->fields.sfmt_cswap.f
6483 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6484 int UNUSED written = 0;
6485 IADDR UNUSED pc = abuf->addr;
6486 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6487
6488if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6489{
6490 SI tmp_address;
6491{
6492 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6493frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6494}
6495}
6496}
6497
6498 return vpc;
6499#undef FLD
6500}
6501
6502/* cldsbu: cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6503
6504static SEM_PC
6505SEM_FN_NAME (frvbf,cldsbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6506{
6507#define FLD(f) abuf->fields.sfmt_cldsbu.f
6508 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6509 int UNUSED written = 0;
6510 IADDR UNUSED pc = abuf->addr;
6511 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6512
6513if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6514{
6515 SI tmp_address;
6516 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6517 {
6518 SI opval = frvbf_read_mem_QI (current_cpu, pc, tmp_address);
6519 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6520 written |= (1 << 8);
6521 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6522 }
6523if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6524 {
6525 SI opval = tmp_address;
6526 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6527 written |= (1 << 7);
6528 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6529 }
6530}
6531}
6532}
6533
6534 abuf->written = written;
6535 return vpc;
6536#undef FLD
6537}
6538
6539/* cldubu: cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6540
6541static SEM_PC
6542SEM_FN_NAME (frvbf,cldubu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6543{
6544#define FLD(f) abuf->fields.sfmt_cldsbu.f
6545 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6546 int UNUSED written = 0;
6547 IADDR UNUSED pc = abuf->addr;
6548 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6549
6550if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6551{
6552 SI tmp_address;
6553 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6554 {
6555 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6556 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6557 written |= (1 << 8);
6558 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6559 }
6560if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6561 {
6562 SI opval = tmp_address;
6563 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6564 written |= (1 << 7);
6565 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6566 }
6567}
6568}
6569}
6570
6571 abuf->written = written;
6572 return vpc;
6573#undef FLD
6574}
6575
6576/* cldshu: cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6577
6578static SEM_PC
6579SEM_FN_NAME (frvbf,cldshu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6580{
6581#define FLD(f) abuf->fields.sfmt_cldsbu.f
6582 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6583 int UNUSED written = 0;
6584 IADDR UNUSED pc = abuf->addr;
6585 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6586
6587if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6588{
6589 SI tmp_address;
6590 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6591 {
6592 SI opval = frvbf_read_mem_HI (current_cpu, pc, tmp_address);
6593 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6594 written |= (1 << 8);
6595 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6596 }
6597if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6598 {
6599 SI opval = tmp_address;
6600 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6601 written |= (1 << 7);
6602 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6603 }
6604}
6605}
6606}
6607
6608 abuf->written = written;
6609 return vpc;
6610#undef FLD
6611}
6612
6613/* clduhu: clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6614
6615static SEM_PC
6616SEM_FN_NAME (frvbf,clduhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6617{
6618#define FLD(f) abuf->fields.sfmt_cldsbu.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 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6628 {
6629 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6630 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6631 written |= (1 << 8);
6632 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6633 }
6634if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6635 {
6636 SI opval = tmp_address;
6637 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6638 written |= (1 << 7);
6639 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6640 }
6641}
6642}
6643}
6644
6645 abuf->written = written;
6646 return vpc;
6647#undef FLD
6648}
6649
6650/* cldu: cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6651
6652static SEM_PC
6653SEM_FN_NAME (frvbf,cldu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6654{
6655#define FLD(f) abuf->fields.sfmt_cldsbu.f
6656 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6657 int UNUSED written = 0;
6658 IADDR UNUSED pc = abuf->addr;
6659 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6660
6661if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6662{
6663 SI tmp_address;
6664 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6665 {
6666 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6667 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
6668 written |= (1 << 8);
6669 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6670 }
6671if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6672 {
6673 SI opval = tmp_address;
6674 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6675 written |= (1 << 7);
6676 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6677 }
6678}
6679}
6680}
6681
6682 abuf->written = written;
6683 return vpc;
6684#undef FLD
6685}
6686
6687/* cldbfu: cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6688
6689static SEM_PC
6690SEM_FN_NAME (frvbf,cldbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6691{
6692#define FLD(f) abuf->fields.sfmt_cldbfu.f
6693 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6694 int UNUSED written = 0;
6695 IADDR UNUSED pc = abuf->addr;
6696 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6697
6698if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6699{
6700 SI tmp_address;
6701 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6702 {
6703 SI opval = frvbf_read_mem_UQI (current_cpu, pc, tmp_address);
6704 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6705 written |= (1 << 5);
6706 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6707 }
6708 {
6709 SI opval = tmp_address;
6710 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6711 written |= (1 << 6);
6712 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6713 }
6714}
6715}
6716
6717 abuf->written = written;
6718 return vpc;
6719#undef FLD
6720}
6721
6722/* cldhfu: cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6723
6724static SEM_PC
6725SEM_FN_NAME (frvbf,cldhfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6726{
6727#define FLD(f) abuf->fields.sfmt_cldbfu.f
6728 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6729 int UNUSED written = 0;
6730 IADDR UNUSED pc = abuf->addr;
6731 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6732
6733if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6734{
6735 SI tmp_address;
6736 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6737 {
6738 SI opval = frvbf_read_mem_UHI (current_cpu, pc, tmp_address);
6739 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6740 written |= (1 << 5);
6741 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6742 }
6743 {
6744 SI opval = tmp_address;
6745 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6746 written |= (1 << 6);
6747 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6748 }
6749}
6750}
6751
6752 abuf->written = written;
6753 return vpc;
6754#undef FLD
6755}
6756
6757/* cldfu: cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
6758
6759static SEM_PC
6760SEM_FN_NAME (frvbf,cldfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6761{
6762#define FLD(f) abuf->fields.sfmt_cldbfu.f
6763 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6764 int UNUSED written = 0;
6765 IADDR UNUSED pc = abuf->addr;
6766 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6767
6768if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6769{
6770 SI tmp_address;
6771 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6772 {
6773 SI opval = frvbf_read_mem_SI (current_cpu, pc, tmp_address);
6774 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
6775 written |= (1 << 5);
6776 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
6777 }
6778 {
6779 SI opval = tmp_address;
6780 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6781 written |= (1 << 6);
6782 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6783 }
6784}
6785}
6786
6787 abuf->written = written;
6788 return vpc;
6789#undef FLD
6790}
6791
6792/* clddu: clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
6793
6794static SEM_PC
6795SEM_FN_NAME (frvbf,clddu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6796{
6797#define FLD(f) abuf->fields.sfmt_clddu.f
6798 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6799 int UNUSED written = 0;
6800 IADDR UNUSED pc = abuf->addr;
6801 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6802
6803if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6804{
6805 SI tmp_address;
6806if (NESI (FLD (f_GRk), 0)) {
6807{
6808 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6809 {
6810 DI opval = frvbf_read_mem_DI (current_cpu, pc, tmp_address);
6811 sim_queue_fn_di_write (current_cpu, frvbf_h_gr_double_set, FLD (f_GRk), opval);
6812 written |= (1 << 7);
6813 TRACE_RESULT (current_cpu, abuf, "gr_double", 'D', opval);
6814 }
6815}
6816}
6817if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6818 {
6819 SI opval = tmp_address;
6820 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6821 written |= (1 << 8);
6822 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6823 }
6824}
6825}
6826}
6827
6828 abuf->written = written;
6829 return vpc;
6830#undef FLD
6831}
6832
6833/* clddfu: clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
6834
6835static SEM_PC
6836SEM_FN_NAME (frvbf,clddfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6837{
6838#define FLD(f) abuf->fields.sfmt_clddfu.f
6839 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6840 int UNUSED written = 0;
6841 IADDR UNUSED pc = abuf->addr;
6842 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6843
6844if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6845{
6846 SI tmp_address;
6847{
6848 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6849 {
6850 DF opval = frvbf_read_mem_DF (current_cpu, pc, tmp_address);
6851 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
6852 written |= (1 << 5);
6853 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
6854 }
6855}
6856 {
6857 SI opval = tmp_address;
6858 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6859 written |= (1 << 6);
6860 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6861 }
6862}
6863}
6864
6865 abuf->written = written;
6866 return vpc;
6867#undef FLD
6868}
6869
6870/* cldqu: cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
6871
6872static SEM_PC
6873SEM_FN_NAME (frvbf,cldqu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6874{
6875#define FLD(f) abuf->fields.sfmt_cstdu.f
6876 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6877 int UNUSED written = 0;
6878 IADDR UNUSED pc = abuf->addr;
6879 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6880
6881if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6882{
6883 SI tmp_address;
6884{
6885 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
6886frvbf_load_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
6887}
6888if (NESI (FLD (f_GRi), FLD (f_GRk))) {
6889 {
6890 SI opval = tmp_address;
6891 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
6892 written |= (1 << 7);
6893 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
6894 }
6895}
6896}
6897}
6898
6899 abuf->written = written;
6900 return vpc;
6901#undef FLD
6902}
6903
6904/* cstb: cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6905
6906static SEM_PC
6907SEM_FN_NAME (frvbf,cstb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6908{
6909#define FLD(f) abuf->fields.sfmt_cswap.f
6910 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6911 int UNUSED written = 0;
6912 IADDR UNUSED pc = abuf->addr;
6913 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6914
6915if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6916frvbf_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)));
6917}
6918
6919 return vpc;
6920#undef FLD
6921}
6922
6923/* csth: csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6924
6925static SEM_PC
6926SEM_FN_NAME (frvbf,csth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6927{
6928#define FLD(f) abuf->fields.sfmt_cswap.f
6929 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6930 int UNUSED written = 0;
6931 IADDR UNUSED pc = abuf->addr;
6932 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6933
6934if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6935frvbf_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)));
6936}
6937
6938 return vpc;
6939#undef FLD
6940}
6941
6942/* cst: cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
6943
6944static SEM_PC
6945SEM_FN_NAME (frvbf,cst) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6946{
6947#define FLD(f) abuf->fields.sfmt_cswap.f
6948 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6949 int UNUSED written = 0;
6950 IADDR UNUSED pc = abuf->addr;
6951 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6952
6953if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6954frvbf_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)));
6955}
6956
6957 return vpc;
6958#undef FLD
6959}
6960
6961/* cstbf: cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6962
6963static SEM_PC
6964SEM_FN_NAME (frvbf,cstbf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6965{
6966#define FLD(f) abuf->fields.sfmt_cstbfu.f
6967 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6968 int UNUSED written = 0;
6969 IADDR UNUSED pc = abuf->addr;
6970 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6971
6972if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6973frvbf_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)));
6974}
6975
6976 return vpc;
6977#undef FLD
6978}
6979
6980/* csthf: csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
6981
6982static SEM_PC
6983SEM_FN_NAME (frvbf,csthf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
6984{
6985#define FLD(f) abuf->fields.sfmt_cstbfu.f
6986 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
6987 int UNUSED written = 0;
6988 IADDR UNUSED pc = abuf->addr;
6989 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
6990
6991if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
6992frvbf_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)));
6993}
6994
6995 return vpc;
6996#undef FLD
6997}
6998
6999/* cstf: cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7000
7001static SEM_PC
7002SEM_FN_NAME (frvbf,cstf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7003{
7004#define FLD(f) abuf->fields.sfmt_cstbfu.f
7005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7006 int UNUSED written = 0;
7007 IADDR UNUSED pc = abuf->addr;
7008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7009
7010if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7011frvbf_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)));
7012}
7013
7014 return vpc;
7015#undef FLD
7016}
7017
7018/* cstd: cstd$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7019
7020static SEM_PC
7021SEM_FN_NAME (frvbf,cstd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7022{
7023#define FLD(f) abuf->fields.sfmt_cstdu.f
7024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7025 int UNUSED written = 0;
7026 IADDR UNUSED pc = abuf->addr;
7027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7028
7029if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7030{
7031 SI tmp_address;
7032{
7033 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7034frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7035}
7036}
7037}
7038
7039 return vpc;
7040#undef FLD
7041}
7042
7043/* cstdf: cstdf$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7044
7045static SEM_PC
7046SEM_FN_NAME (frvbf,cstdf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7047{
7048#define FLD(f) abuf->fields.sfmt_cstdfu.f
7049 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7050 int UNUSED written = 0;
7051 IADDR UNUSED pc = abuf->addr;
7052 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7053
7054if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7055{
7056 SI tmp_address;
7057{
7058 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7059frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7060}
7061}
7062}
7063
7064 return vpc;
7065#undef FLD
7066}
7067
7068/* cstq: cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7069
7070static SEM_PC
7071SEM_FN_NAME (frvbf,cstq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7072{
7073#define FLD(f) abuf->fields.sfmt_cswap.f
7074 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7075 int UNUSED written = 0;
7076 IADDR UNUSED pc = abuf->addr;
7077 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7078
7079if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7080{
7081 SI tmp_address;
7082{
7083 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7084frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7085}
7086}
7087}
7088
7089 return vpc;
7090#undef FLD
7091}
7092
7093/* cstbu: cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7094
7095static SEM_PC
7096SEM_FN_NAME (frvbf,cstbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7097{
7098#define FLD(f) abuf->fields.sfmt_cstbu.f
7099 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7100 int UNUSED written = 0;
7101 IADDR UNUSED pc = abuf->addr;
7102 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7103
7104if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7105{
7106 SI tmp_address;
7107 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7108frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7109 {
7110 SI opval = tmp_address;
7111 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7112 written |= (1 << 6);
7113 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7114 }
7115}
7116}
7117
7118 abuf->written = written;
7119 return vpc;
7120#undef FLD
7121}
7122
7123/* csthu: csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7124
7125static SEM_PC
7126SEM_FN_NAME (frvbf,csthu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7127{
7128#define FLD(f) abuf->fields.sfmt_cstbu.f
7129 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7130 int UNUSED written = 0;
7131 IADDR UNUSED pc = abuf->addr;
7132 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7133
7134if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7135{
7136 SI tmp_address;
7137 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7138frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7139 {
7140 SI opval = tmp_address;
7141 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7142 written |= (1 << 6);
7143 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7144 }
7145}
7146}
7147
7148 abuf->written = written;
7149 return vpc;
7150#undef FLD
7151}
7152
7153/* cstu: cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7154
7155static SEM_PC
7156SEM_FN_NAME (frvbf,cstu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7157{
7158#define FLD(f) abuf->fields.sfmt_cstbu.f
7159 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7160 int UNUSED written = 0;
7161 IADDR UNUSED pc = abuf->addr;
7162 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7163
7164if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7165{
7166 SI tmp_address;
7167 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7168frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_GR (FLD (f_GRk)));
7169 {
7170 SI opval = tmp_address;
7171 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7172 written |= (1 << 6);
7173 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7174 }
7175}
7176}
7177
7178 abuf->written = written;
7179 return vpc;
7180#undef FLD
7181}
7182
7183/* cstbfu: cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7184
7185static SEM_PC
7186SEM_FN_NAME (frvbf,cstbfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7187{
7188#define FLD(f) abuf->fields.sfmt_cstbfu.f
7189 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7190 int UNUSED written = 0;
7191 IADDR UNUSED pc = abuf->addr;
7192 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7193
7194if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7195{
7196 SI tmp_address;
7197 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7198frvbf_write_mem_QI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7199 {
7200 SI opval = tmp_address;
7201 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7202 written |= (1 << 6);
7203 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7204 }
7205}
7206}
7207
7208 abuf->written = written;
7209 return vpc;
7210#undef FLD
7211}
7212
7213/* csthfu: csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7214
7215static SEM_PC
7216SEM_FN_NAME (frvbf,csthfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7217{
7218#define FLD(f) abuf->fields.sfmt_cstbfu.f
7219 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7220 int UNUSED written = 0;
7221 IADDR UNUSED pc = abuf->addr;
7222 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7223
7224if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7225{
7226 SI tmp_address;
7227 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7228frvbf_write_mem_HI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7229 {
7230 SI opval = tmp_address;
7231 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7232 written |= (1 << 6);
7233 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7234 }
7235}
7236}
7237
7238 abuf->written = written;
7239 return vpc;
7240#undef FLD
7241}
7242
7243/* cstfu: cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
7244
7245static SEM_PC
7246SEM_FN_NAME (frvbf,cstfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7247{
7248#define FLD(f) abuf->fields.sfmt_cstbfu.f
7249 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7250 int UNUSED written = 0;
7251 IADDR UNUSED pc = abuf->addr;
7252 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7253
7254if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7255{
7256 SI tmp_address;
7257 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7258frvbf_write_mem_SI (current_cpu, pc, tmp_address, GET_H_FR_INT (FLD (f_FRk)));
7259 {
7260 SI opval = tmp_address;
7261 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7262 written |= (1 << 6);
7263 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7264 }
7265}
7266}
7267
7268 abuf->written = written;
7269 return vpc;
7270#undef FLD
7271}
7272
7273/* cstdu: cstdu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
7274
7275static SEM_PC
7276SEM_FN_NAME (frvbf,cstdu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7277{
7278#define FLD(f) abuf->fields.sfmt_cstdu.f
7279 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7280 int UNUSED written = 0;
7281 IADDR UNUSED pc = abuf->addr;
7282 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7283
7284if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7285{
7286 SI tmp_address;
7287{
7288 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7289frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7290}
7291 {
7292 SI opval = tmp_address;
7293 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7294 written |= (1 << 6);
7295 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7296 }
7297}
7298}
7299
7300 abuf->written = written;
7301 return vpc;
7302#undef FLD
7303}
7304
7305/* cstdfu: cstdfu$pack $FRk,@($GRi,$GRj),$CCi,$cond */
7306
7307static SEM_PC
7308SEM_FN_NAME (frvbf,cstdfu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7309{
7310#define FLD(f) abuf->fields.sfmt_cstdfu.f
7311 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7312 int UNUSED written = 0;
7313 IADDR UNUSED pc = abuf->addr;
7314 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7315
7316if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7317{
7318 SI tmp_address;
7319{
7320 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7321frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7322}
7323 {
7324 SI opval = tmp_address;
7325 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRi), opval);
7326 written |= (1 << 6);
7327 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7328 }
7329}
7330}
7331
7332 abuf->written = written;
7333 return vpc;
7334#undef FLD
7335}
7336
7337/* stbi: stbi$pack $GRk,@($GRi,$d12) */
7338
7339static SEM_PC
7340SEM_FN_NAME (frvbf,stbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7341{
7342#define FLD(f) abuf->fields.sfmt_swapi.f
7343 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7344 int UNUSED written = 0;
7345 IADDR UNUSED pc = abuf->addr;
7346 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7347
7348frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7349
7350 return vpc;
7351#undef FLD
7352}
7353
7354/* sthi: sthi$pack $GRk,@($GRi,$d12) */
7355
7356static SEM_PC
7357SEM_FN_NAME (frvbf,sthi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7358{
7359#define FLD(f) abuf->fields.sfmt_swapi.f
7360 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7361 int UNUSED written = 0;
7362 IADDR UNUSED pc = abuf->addr;
7363 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7364
7365frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7366
7367 return vpc;
7368#undef FLD
7369}
7370
7371/* sti: sti$pack $GRk,@($GRi,$d12) */
7372
7373static SEM_PC
7374SEM_FN_NAME (frvbf,sti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7375{
7376#define FLD(f) abuf->fields.sfmt_swapi.f
7377 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7378 int UNUSED written = 0;
7379 IADDR UNUSED pc = abuf->addr;
7380 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7381
7382frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_GR (FLD (f_GRk)));
7383
7384 return vpc;
7385#undef FLD
7386}
7387
7388/* stbfi: stbfi$pack $FRintk,@($GRi,$d12) */
7389
7390static SEM_PC
7391SEM_FN_NAME (frvbf,stbfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7392{
7393#define FLD(f) abuf->fields.sfmt_stbfi.f
7394 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7395 int UNUSED written = 0;
7396 IADDR UNUSED pc = abuf->addr;
7397 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7398
7399frvbf_write_mem_QI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7400
7401 return vpc;
7402#undef FLD
7403}
7404
7405/* sthfi: sthfi$pack $FRintk,@($GRi,$d12) */
7406
7407static SEM_PC
7408SEM_FN_NAME (frvbf,sthfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7409{
7410#define FLD(f) abuf->fields.sfmt_stbfi.f
7411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7412 int UNUSED written = 0;
7413 IADDR UNUSED pc = abuf->addr;
7414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7415
7416frvbf_write_mem_HI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7417
7418 return vpc;
7419#undef FLD
7420}
7421
7422/* stfi: stfi$pack $FRintk,@($GRi,$d12) */
7423
7424static SEM_PC
7425SEM_FN_NAME (frvbf,stfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7426{
7427#define FLD(f) abuf->fields.sfmt_stbfi.f
7428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7429 int UNUSED written = 0;
7430 IADDR UNUSED pc = abuf->addr;
7431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7432
7433frvbf_write_mem_SI (current_cpu, pc, ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), GET_H_FR_INT (FLD (f_FRk)));
7434
7435 return vpc;
7436#undef FLD
7437}
7438
7439/* stdi: stdi$pack $GRk,@($GRi,$d12) */
7440
7441static SEM_PC
7442SEM_FN_NAME (frvbf,stdi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7443{
7444#define FLD(f) abuf->fields.sfmt_stdi.f
7445 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7446 int UNUSED written = 0;
7447 IADDR UNUSED pc = abuf->addr;
7448 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7449
7450{
7451 SI tmp_address;
7452{
7453 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7454frvbf_write_mem_DI (current_cpu, pc, tmp_address, GET_H_GR_DOUBLE (FLD (f_GRk)));
7455}
7456}
7457
7458 return vpc;
7459#undef FLD
7460}
7461
7462/* stdfi: stdfi$pack $FRk,@($GRi,$d12) */
7463
7464static SEM_PC
7465SEM_FN_NAME (frvbf,stdfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7466{
7467#define FLD(f) abuf->fields.sfmt_stdfi.f
7468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7469 int UNUSED written = 0;
7470 IADDR UNUSED pc = abuf->addr;
7471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7472
7473{
7474 SI tmp_address;
7475{
7476 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7477frvbf_write_mem_DF (current_cpu, pc, tmp_address, GET_H_FR_DOUBLE (FLD (f_FRk)));
7478}
7479}
7480
7481 return vpc;
7482#undef FLD
7483}
7484
7485/* stqi: stqi$pack $GRk,@($GRi,$d12) */
7486
7487static SEM_PC
7488SEM_FN_NAME (frvbf,stqi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7489{
7490#define FLD(f) abuf->fields.sfmt_stdi.f
7491 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7492 int UNUSED written = 0;
7493 IADDR UNUSED pc = abuf->addr;
7494 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7495
7496{
7497 SI tmp_address;
7498{
7499 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7500frvbf_store_quad_GR (current_cpu, pc, tmp_address, FLD (f_GRk));
7501}
7502}
7503
7504 return vpc;
7505#undef FLD
7506}
7507
7508/* stqfi: stqfi$pack $FRintk,@($GRi,$d12) */
7509
7510static SEM_PC
7511SEM_FN_NAME (frvbf,stqfi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7512{
7513#define FLD(f) abuf->fields.sfmt_stdfi.f
7514 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7515 int UNUSED written = 0;
7516 IADDR UNUSED pc = abuf->addr;
7517 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7518
7519{
7520 SI tmp_address;
7521{
7522 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7523frvbf_store_quad_FRint (current_cpu, pc, tmp_address, FLD (f_FRk));
7524}
7525}
7526
7527 return vpc;
7528#undef FLD
7529}
7530
7531/* swap: swap$pack @($GRi,$GRj),$GRk */
7532
7533static SEM_PC
7534SEM_FN_NAME (frvbf,swap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7535{
7536#define FLD(f) abuf->fields.sfmt_cswap.f
7537 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7538 int UNUSED written = 0;
7539 IADDR UNUSED pc = abuf->addr;
7540 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7541
7542{
7543 SI tmp_tmp;
7544 SI tmp_address;
7545 tmp_tmp = GET_H_GR (FLD (f_GRk));
7546 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7547 {
7548 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7549 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7550 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7551 }
7552frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7553}
7554
7555 return vpc;
7556#undef FLD
7557}
7558
7559/* swapi: swapi$pack @($GRi,$d12),$GRk */
7560
7561static SEM_PC
7562SEM_FN_NAME (frvbf,swapi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7563{
7564#define FLD(f) abuf->fields.sfmt_swapi.f
7565 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7566 int UNUSED written = 0;
7567 IADDR UNUSED pc = abuf->addr;
7568 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7569
7570{
7571 SI tmp_tmp;
7572 SI tmp_address;
7573 tmp_tmp = GET_H_GR (FLD (f_GRk));
7574 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12));
7575 {
7576 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7577 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7578 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7579 }
7580frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7581}
7582
7583 return vpc;
7584#undef FLD
7585}
7586
7587/* cswap: cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
7588
7589static SEM_PC
7590SEM_FN_NAME (frvbf,cswap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7591{
7592#define FLD(f) abuf->fields.sfmt_cswap.f
7593 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7594 int UNUSED written = 0;
7595 IADDR UNUSED pc = abuf->addr;
7596 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7597
7598if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7599{
7600 SI tmp_tmp;
7601 SI tmp_address;
7602 tmp_tmp = GET_H_GR (FLD (f_GRk));
7603 tmp_address = ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
7604 {
7605 SI opval = frvbf_read_mem_WI (current_cpu, pc, tmp_address);
7606 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRk), opval);
7607 written |= (1 << 6);
7608 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7609 }
7610frvbf_write_mem_WI (current_cpu, pc, tmp_address, tmp_tmp);
7611}
7612}
7613
7614 abuf->written = written;
7615 return vpc;
7616#undef FLD
7617}
7618
7619/* movgf: movgf$pack $GRj,$FRintk */
7620
7621static SEM_PC
7622SEM_FN_NAME (frvbf,movgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7623{
7624#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7625 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7626 int UNUSED written = 0;
7627 IADDR UNUSED pc = abuf->addr;
7628 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7629
7630 {
7631 SI opval = GET_H_GR (FLD (f_GRj));
7632 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7633 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7634 }
7635
7636 return vpc;
7637#undef FLD
7638}
7639
7640/* movfg: movfg$pack $FRintk,$GRj */
7641
7642static SEM_PC
7643SEM_FN_NAME (frvbf,movfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7644{
7645#define FLD(f) abuf->fields.sfmt_cmovfgd.f
7646 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7647 int UNUSED written = 0;
7648 IADDR UNUSED pc = abuf->addr;
7649 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7650
7651 {
7652 SI opval = GET_H_FR_INT (FLD (f_FRk));
7653 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7654 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7655 }
7656
7657 return vpc;
7658#undef FLD
7659}
7660
7661/* movgfd: movgfd$pack $GRj,$FRintk */
7662
7663static SEM_PC
7664SEM_FN_NAME (frvbf,movgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7665{
7666#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7667 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7668 int UNUSED written = 0;
7669 IADDR UNUSED pc = abuf->addr;
7670 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7671
7672if (EQSI (FLD (f_GRj), 0)) {
7673{
7674 {
7675 SI opval = 0;
7676 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7677 written |= (1 << 4);
7678 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7679 }
7680 {
7681 USI opval = 0;
7682 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7683 written |= (1 << 5);
7684 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7685 }
7686}
7687} else {
7688{
7689 {
7690 SI opval = GET_H_GR (FLD (f_GRj));
7691 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7692 written |= (1 << 4);
7693 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7694 }
7695 {
7696 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7697 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7698 written |= (1 << 5);
7699 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7700 }
7701}
7702}
7703
7704 abuf->written = written;
7705 return vpc;
7706#undef FLD
7707}
7708
7709/* movfgd: movfgd$pack $FRintk,$GRj */
7710
7711static SEM_PC
7712SEM_FN_NAME (frvbf,movfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7713{
7714#define FLD(f) abuf->fields.sfmt_cmovfgd.f
7715 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7716 int UNUSED written = 0;
7717 IADDR UNUSED pc = abuf->addr;
7718 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7719
7720if (NESI (FLD (f_GRj), 0)) {
7721{
7722 {
7723 SI opval = GET_H_FR_INT (FLD (f_FRk));
7724 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7725 written |= (1 << 4);
7726 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7727 }
7728 {
7729 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7730 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7731 written |= (1 << 5);
7732 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7733 }
7734}
7735}
7736
7737 abuf->written = written;
7738 return vpc;
7739#undef FLD
7740}
7741
7742/* movgfq: movgfq$pack $GRj,$FRintk */
7743
7744static SEM_PC
7745SEM_FN_NAME (frvbf,movgfq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7746{
7747#define FLD(f) abuf->fields.sfmt_movgfq.f
7748 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7749 int UNUSED written = 0;
7750 IADDR UNUSED pc = abuf->addr;
7751 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7752
7753if (EQSI (FLD (f_GRj), 0)) {
7754{
7755 {
7756 SI opval = 0;
7757 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7758 written |= (1 << 6);
7759 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7760 }
7761 {
7762 USI opval = 0;
7763 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7764 written |= (1 << 7);
7765 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7766 }
7767 {
7768 USI opval = 0;
7769 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7770 written |= (1 << 8);
7771 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7772 }
7773 {
7774 USI opval = 0;
7775 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7776 written |= (1 << 9);
7777 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7778 }
7779}
7780} else {
7781{
7782 {
7783 SI opval = GET_H_GR (FLD (f_GRj));
7784 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7785 written |= (1 << 6);
7786 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7787 }
7788 {
7789 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7790 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7791 written |= (1 << 7);
7792 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7793 }
7794 {
7795 USI opval = GET_H_GR (((FLD (f_GRj)) + (2)));
7796 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (2)), opval);
7797 written |= (1 << 8);
7798 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7799 }
7800 {
7801 USI opval = GET_H_GR (((FLD (f_GRj)) + (3)));
7802 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (3)), opval);
7803 written |= (1 << 9);
7804 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7805 }
7806}
7807}
7808
7809 abuf->written = written;
7810 return vpc;
7811#undef FLD
7812}
7813
7814/* movfgq: movfgq$pack $FRintk,$GRj */
7815
7816static SEM_PC
7817SEM_FN_NAME (frvbf,movfgq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7818{
7819#define FLD(f) abuf->fields.sfmt_movfgq.f
7820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7821 int UNUSED written = 0;
7822 IADDR UNUSED pc = abuf->addr;
7823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7824
7825if (NESI (FLD (f_GRj), 0)) {
7826{
7827 {
7828 SI opval = GET_H_FR_INT (FLD (f_FRk));
7829 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7830 written |= (1 << 6);
7831 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7832 }
7833 {
7834 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7835 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7836 written |= (1 << 7);
7837 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7838 }
7839 {
7840 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (2)));
7841 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (2)), opval);
7842 written |= (1 << 8);
7843 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7844 }
7845 {
7846 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (3)));
7847 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (3)), opval);
7848 written |= (1 << 9);
7849 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7850 }
7851}
7852}
7853
7854 abuf->written = written;
7855 return vpc;
7856#undef FLD
7857}
7858
7859/* cmovgf: cmovgf$pack $GRj,$FRintk,$CCi,$cond */
7860
7861static SEM_PC
7862SEM_FN_NAME (frvbf,cmovgf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7863{
7864#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7865 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7866 int UNUSED written = 0;
7867 IADDR UNUSED pc = abuf->addr;
7868 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7869
7870if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7871 {
7872 SI opval = GET_H_GR (FLD (f_GRj));
7873 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7874 written |= (1 << 3);
7875 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7876 }
7877}
7878
7879 abuf->written = written;
7880 return vpc;
7881#undef FLD
7882}
7883
7884/* cmovfg: cmovfg$pack $FRintk,$GRj,$CCi,$cond */
7885
7886static SEM_PC
7887SEM_FN_NAME (frvbf,cmovfg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7888{
7889#define FLD(f) abuf->fields.sfmt_cmovfgd.f
7890 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7891 int UNUSED written = 0;
7892 IADDR UNUSED pc = abuf->addr;
7893 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7894
7895if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7896 {
7897 SI opval = GET_H_FR_INT (FLD (f_FRk));
7898 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7899 written |= (1 << 3);
7900 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7901 }
7902}
7903
7904 abuf->written = written;
7905 return vpc;
7906#undef FLD
7907}
7908
7909/* cmovgfd: cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
7910
7911static SEM_PC
7912SEM_FN_NAME (frvbf,cmovgfd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7913{
7914#define FLD(f) abuf->fields.sfmt_cmovgfd.f
7915 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7916 int UNUSED written = 0;
7917 IADDR UNUSED pc = abuf->addr;
7918 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7919
7920if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
7921if (EQSI (FLD (f_GRj), 0)) {
7922{
7923 {
7924 SI opval = 0;
7925 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7926 written |= (1 << 6);
7927 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7928 }
7929 {
7930 USI opval = 0;
7931 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7932 written |= (1 << 7);
7933 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7934 }
7935}
7936} else {
7937{
7938 {
7939 SI opval = GET_H_GR (FLD (f_GRj));
7940 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
7941 written |= (1 << 6);
7942 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7943 }
7944 {
7945 USI opval = GET_H_GR (((FLD (f_GRj)) + (1)));
7946 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
7947 written |= (1 << 7);
7948 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
7949 }
7950}
7951}
7952}
7953
7954 abuf->written = written;
7955 return vpc;
7956#undef FLD
7957}
7958
7959/* cmovfgd: cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
7960
7961static SEM_PC
7962SEM_FN_NAME (frvbf,cmovfgd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7963{
7964#define FLD(f) abuf->fields.sfmt_cmovfgd.f
7965 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7966 int UNUSED written = 0;
7967 IADDR UNUSED pc = abuf->addr;
7968 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
7969
7970if (ANDIF (NESI (FLD (f_GRj), 0), EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2)))) {
7971{
7972 {
7973 SI opval = GET_H_FR_INT (FLD (f_FRk));
7974 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
7975 written |= (1 << 6);
7976 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7977 }
7978 {
7979 USI opval = GET_H_FR_INT (((FLD (f_FRk)) + (1)));
7980 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, ((FLD (f_GRj)) + (1)), opval);
7981 written |= (1 << 7);
7982 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
7983 }
7984}
7985}
7986
7987 abuf->written = written;
7988 return vpc;
7989#undef FLD
7990}
7991
7992/* movgs: movgs$pack $GRj,$spr */
7993
7994static SEM_PC
7995SEM_FN_NAME (frvbf,movgs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
7996{
7997#define FLD(f) abuf->fields.sfmt_movgs.f
7998 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
7999 int UNUSED written = 0;
8000 IADDR UNUSED pc = abuf->addr;
8001 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8002
8003 {
8004 USI opval = GET_H_GR (FLD (f_GRj));
8005 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, FLD (f_spr), opval);
8006 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8007 }
8008
8009 return vpc;
8010#undef FLD
8011}
8012
8013/* movsg: movsg$pack $spr,$GRj */
8014
8015static SEM_PC
8016SEM_FN_NAME (frvbf,movsg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8017{
8018#define FLD(f) abuf->fields.sfmt_movsg.f
8019 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8020 int UNUSED written = 0;
8021 IADDR UNUSED pc = abuf->addr;
8022 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8023
8024 {
8025 SI opval = GET_H_SPR (FLD (f_spr));
8026 sim_queue_fn_si_write (current_cpu, frvbf_h_gr_set, FLD (f_GRj), opval);
8027 TRACE_RESULT (current_cpu, abuf, "gr", 'x', opval);
8028 }
8029
8030 return vpc;
8031#undef FLD
8032}
8033
8034/* bra: bra$pack $hint_taken$label16 */
8035
8036static SEM_PC
8037SEM_FN_NAME (frvbf,bra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8038{
8039#define FLD(f) abuf->fields.sfmt_fbne.f
8040 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8041 int UNUSED written = 0;
8042 IADDR UNUSED pc = abuf->addr;
8043 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8044
8045{
8046frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8047 {
8048 USI opval = FLD (i_label16);
8049 sim_queue_pc_write (current_cpu, opval);
8050 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8051 }
8052}
8053
8054 return vpc;
8055#undef FLD
8056}
8057
8058/* bno: bno$pack$hint_not_taken */
8059
8060static SEM_PC
8061SEM_FN_NAME (frvbf,bno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8062{
8063#define FLD(f) abuf->fields.sfmt_fbne.f
8064 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8065 int UNUSED written = 0;
8066 IADDR UNUSED pc = abuf->addr;
8067 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8068
8069frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8070
8071 return vpc;
8072#undef FLD
8073}
8074
8075/* beq: beq$pack $ICCi_2,$hint,$label16 */
8076
8077static SEM_PC
8078SEM_FN_NAME (frvbf,beq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8079{
8080#define FLD(f) abuf->fields.sfmt_beq.f
8081 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8082 int UNUSED written = 0;
8083 IADDR UNUSED pc = abuf->addr;
8084 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8085
8086{
8087frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8088if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
8089 {
8090 USI opval = FLD (i_label16);
8091 sim_queue_pc_write (current_cpu, opval);
8092 written |= (1 << 3);
8093 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8094 }
8095}
8096}
8097
8098 abuf->written = written;
8099 return vpc;
8100#undef FLD
8101}
8102
8103/* bne: bne$pack $ICCi_2,$hint,$label16 */
8104
8105static SEM_PC
8106SEM_FN_NAME (frvbf,bne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8107{
8108#define FLD(f) abuf->fields.sfmt_beq.f
8109 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8110 int UNUSED written = 0;
8111 IADDR UNUSED pc = abuf->addr;
8112 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8113
8114{
8115frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8116if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8117 {
8118 USI opval = FLD (i_label16);
8119 sim_queue_pc_write (current_cpu, opval);
8120 written |= (1 << 3);
8121 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8122 }
8123}
8124}
8125
8126 abuf->written = written;
8127 return vpc;
8128#undef FLD
8129}
8130
8131/* ble: ble$pack $ICCi_2,$hint,$label16 */
8132
8133static SEM_PC
8134SEM_FN_NAME (frvbf,ble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8135{
8136#define FLD(f) abuf->fields.sfmt_beq.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{
8143frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8144if (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))))) {
8145 {
8146 USI opval = FLD (i_label16);
8147 sim_queue_pc_write (current_cpu, opval);
8148 written |= (1 << 3);
8149 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8150 }
8151}
8152}
8153
8154 abuf->written = written;
8155 return vpc;
8156#undef FLD
8157}
8158
8159/* bgt: bgt$pack $ICCi_2,$hint,$label16 */
8160
8161static SEM_PC
8162SEM_FN_NAME (frvbf,bgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8163{
8164#define FLD(f) abuf->fields.sfmt_beq.f
8165 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8166 int UNUSED written = 0;
8167 IADDR UNUSED pc = abuf->addr;
8168 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8169
8170{
8171frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8172if (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)))))) {
8173 {
8174 USI opval = FLD (i_label16);
8175 sim_queue_pc_write (current_cpu, opval);
8176 written |= (1 << 3);
8177 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8178 }
8179}
8180}
8181
8182 abuf->written = written;
8183 return vpc;
8184#undef FLD
8185}
8186
8187/* blt: blt$pack $ICCi_2,$hint,$label16 */
8188
8189static SEM_PC
8190SEM_FN_NAME (frvbf,blt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8191{
8192#define FLD(f) abuf->fields.sfmt_beq.f
8193 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8194 int UNUSED written = 0;
8195 IADDR UNUSED pc = abuf->addr;
8196 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8197
8198{
8199frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8200if (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)))) {
8201 {
8202 USI opval = FLD (i_label16);
8203 sim_queue_pc_write (current_cpu, opval);
8204 written |= (1 << 3);
8205 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8206 }
8207}
8208}
8209
8210 abuf->written = written;
8211 return vpc;
8212#undef FLD
8213}
8214
8215/* bge: bge$pack $ICCi_2,$hint,$label16 */
8216
8217static SEM_PC
8218SEM_FN_NAME (frvbf,bge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8219{
8220#define FLD(f) abuf->fields.sfmt_beq.f
8221 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8222 int UNUSED written = 0;
8223 IADDR UNUSED pc = abuf->addr;
8224 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8225
8226{
8227frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8228if (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))))) {
8229 {
8230 USI opval = FLD (i_label16);
8231 sim_queue_pc_write (current_cpu, opval);
8232 written |= (1 << 3);
8233 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8234 }
8235}
8236}
8237
8238 abuf->written = written;
8239 return vpc;
8240#undef FLD
8241}
8242
8243/* bls: bls$pack $ICCi_2,$hint,$label16 */
8244
8245static SEM_PC
8246SEM_FN_NAME (frvbf,bls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8247{
8248#define FLD(f) abuf->fields.sfmt_beq.f
8249 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8250 int UNUSED written = 0;
8251 IADDR UNUSED pc = abuf->addr;
8252 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8253
8254{
8255frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8256if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
8257 {
8258 USI opval = FLD (i_label16);
8259 sim_queue_pc_write (current_cpu, opval);
8260 written |= (1 << 3);
8261 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8262 }
8263}
8264}
8265
8266 abuf->written = written;
8267 return vpc;
8268#undef FLD
8269}
8270
8271/* bhi: bhi$pack $ICCi_2,$hint,$label16 */
8272
8273static SEM_PC
8274SEM_FN_NAME (frvbf,bhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8275{
8276#define FLD(f) abuf->fields.sfmt_beq.f
8277 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8278 int UNUSED written = 0;
8279 IADDR UNUSED pc = abuf->addr;
8280 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8281
8282{
8283frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8284if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
8285 {
8286 USI opval = FLD (i_label16);
8287 sim_queue_pc_write (current_cpu, opval);
8288 written |= (1 << 3);
8289 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8290 }
8291}
8292}
8293
8294 abuf->written = written;
8295 return vpc;
8296#undef FLD
8297}
8298
8299/* bc: bc$pack $ICCi_2,$hint,$label16 */
8300
8301static SEM_PC
8302SEM_FN_NAME (frvbf,bc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8303{
8304#define FLD(f) abuf->fields.sfmt_beq.f
8305 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8306 int UNUSED written = 0;
8307 IADDR UNUSED pc = abuf->addr;
8308 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8309
8310{
8311frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8312if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
8313 {
8314 USI opval = FLD (i_label16);
8315 sim_queue_pc_write (current_cpu, opval);
8316 written |= (1 << 3);
8317 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8318 }
8319}
8320}
8321
8322 abuf->written = written;
8323 return vpc;
8324#undef FLD
8325}
8326
8327/* bnc: bnc$pack $ICCi_2,$hint,$label16 */
8328
8329static SEM_PC
8330SEM_FN_NAME (frvbf,bnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8331{
8332#define FLD(f) abuf->fields.sfmt_beq.f
8333 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8334 int UNUSED written = 0;
8335 IADDR UNUSED pc = abuf->addr;
8336 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8337
8338{
8339frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8340if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
8341 {
8342 USI opval = FLD (i_label16);
8343 sim_queue_pc_write (current_cpu, opval);
8344 written |= (1 << 3);
8345 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8346 }
8347}
8348}
8349
8350 abuf->written = written;
8351 return vpc;
8352#undef FLD
8353}
8354
8355/* bn: bn$pack $ICCi_2,$hint,$label16 */
8356
8357static SEM_PC
8358SEM_FN_NAME (frvbf,bn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8359{
8360#define FLD(f) abuf->fields.sfmt_beq.f
8361 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8362 int UNUSED written = 0;
8363 IADDR UNUSED pc = abuf->addr;
8364 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8365
8366{
8367frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8368if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
8369 {
8370 USI opval = FLD (i_label16);
8371 sim_queue_pc_write (current_cpu, opval);
8372 written |= (1 << 3);
8373 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8374 }
8375}
8376}
8377
8378 abuf->written = written;
8379 return vpc;
8380#undef FLD
8381}
8382
8383/* bp: bp$pack $ICCi_2,$hint,$label16 */
8384
8385static SEM_PC
8386SEM_FN_NAME (frvbf,bp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8387{
8388#define FLD(f) abuf->fields.sfmt_beq.f
8389 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8390 int UNUSED written = 0;
8391 IADDR UNUSED pc = abuf->addr;
8392 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8393
8394{
8395frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8396if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
8397 {
8398 USI opval = FLD (i_label16);
8399 sim_queue_pc_write (current_cpu, opval);
8400 written |= (1 << 3);
8401 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8402 }
8403}
8404}
8405
8406 abuf->written = written;
8407 return vpc;
8408#undef FLD
8409}
8410
8411/* bv: bv$pack $ICCi_2,$hint,$label16 */
8412
8413static SEM_PC
8414SEM_FN_NAME (frvbf,bv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8415{
8416#define FLD(f) abuf->fields.sfmt_beq.f
8417 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8418 int UNUSED written = 0;
8419 IADDR UNUSED pc = abuf->addr;
8420 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8421
8422{
8423frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8424if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
8425 {
8426 USI opval = FLD (i_label16);
8427 sim_queue_pc_write (current_cpu, opval);
8428 written |= (1 << 3);
8429 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8430 }
8431}
8432}
8433
8434 abuf->written = written;
8435 return vpc;
8436#undef FLD
8437}
8438
8439/* bnv: bnv$pack $ICCi_2,$hint,$label16 */
8440
8441static SEM_PC
8442SEM_FN_NAME (frvbf,bnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8443{
8444#define FLD(f) abuf->fields.sfmt_beq.f
8445 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8446 int UNUSED written = 0;
8447 IADDR UNUSED pc = abuf->addr;
8448 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8449
8450{
8451frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8452if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
8453 {
8454 USI opval = FLD (i_label16);
8455 sim_queue_pc_write (current_cpu, opval);
8456 written |= (1 << 3);
8457 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8458 }
8459}
8460}
8461
8462 abuf->written = written;
8463 return vpc;
8464#undef FLD
8465}
8466
8467/* fbra: fbra$pack $hint_taken$label16 */
8468
8469static SEM_PC
8470SEM_FN_NAME (frvbf,fbra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8471{
8472#define FLD(f) abuf->fields.sfmt_fbne.f
8473 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8474 int UNUSED written = 0;
8475 IADDR UNUSED pc = abuf->addr;
8476 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8477
8478{
8479frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8480 {
8481 USI opval = FLD (i_label16);
8482 sim_queue_pc_write (current_cpu, opval);
8483 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8484 }
8485}
8486
8487 return vpc;
8488#undef FLD
8489}
8490
8491/* fbno: fbno$pack$hint_not_taken */
8492
8493static SEM_PC
8494SEM_FN_NAME (frvbf,fbno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8495{
8496#define FLD(f) abuf->fields.sfmt_fbne.f
8497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8498 int UNUSED written = 0;
8499 IADDR UNUSED pc = abuf->addr;
8500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8501
8502frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8503
8504 return vpc;
8505#undef FLD
8506}
8507
8508/* fbne: fbne$pack $FCCi_2,$hint,$label16 */
8509
8510static SEM_PC
8511SEM_FN_NAME (frvbf,fbne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8512{
8513#define FLD(f) abuf->fields.sfmt_fbne.f
8514 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8515 int UNUSED written = 0;
8516 IADDR UNUSED pc = abuf->addr;
8517 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8518
8519{
8520frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8521if (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))))) {
8522 {
8523 USI opval = FLD (i_label16);
8524 sim_queue_pc_write (current_cpu, opval);
8525 written |= (1 << 3);
8526 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8527 }
8528}
8529}
8530
8531 abuf->written = written;
8532 return vpc;
8533#undef FLD
8534}
8535
8536/* fbeq: fbeq$pack $FCCi_2,$hint,$label16 */
8537
8538static SEM_PC
8539SEM_FN_NAME (frvbf,fbeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8540{
8541#define FLD(f) abuf->fields.sfmt_fbne.f
8542 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8543 int UNUSED written = 0;
8544 IADDR UNUSED pc = abuf->addr;
8545 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8546
8547{
8548frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8549if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
8550 {
8551 USI opval = FLD (i_label16);
8552 sim_queue_pc_write (current_cpu, opval);
8553 written |= (1 << 3);
8554 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8555 }
8556}
8557}
8558
8559 abuf->written = written;
8560 return vpc;
8561#undef FLD
8562}
8563
8564/* fblg: fblg$pack $FCCi_2,$hint,$label16 */
8565
8566static SEM_PC
8567SEM_FN_NAME (frvbf,fblg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8568{
8569#define FLD(f) abuf->fields.sfmt_fbne.f
8570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8571 int UNUSED written = 0;
8572 IADDR UNUSED pc = abuf->addr;
8573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8574
8575{
8576frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8577if (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)))) {
8578 {
8579 USI opval = FLD (i_label16);
8580 sim_queue_pc_write (current_cpu, opval);
8581 written |= (1 << 3);
8582 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8583 }
8584}
8585}
8586
8587 abuf->written = written;
8588 return vpc;
8589#undef FLD
8590}
8591
8592/* fbue: fbue$pack $FCCi_2,$hint,$label16 */
8593
8594static SEM_PC
8595SEM_FN_NAME (frvbf,fbue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8596{
8597#define FLD(f) abuf->fields.sfmt_fbne.f
8598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8599 int UNUSED written = 0;
8600 IADDR UNUSED pc = abuf->addr;
8601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8602
8603{
8604frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8605if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8606 {
8607 USI opval = FLD (i_label16);
8608 sim_queue_pc_write (current_cpu, opval);
8609 written |= (1 << 3);
8610 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8611 }
8612}
8613}
8614
8615 abuf->written = written;
8616 return vpc;
8617#undef FLD
8618}
8619
8620/* fbul: fbul$pack $FCCi_2,$hint,$label16 */
8621
8622static SEM_PC
8623SEM_FN_NAME (frvbf,fbul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8624{
8625#define FLD(f) abuf->fields.sfmt_fbne.f
8626 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8627 int UNUSED written = 0;
8628 IADDR UNUSED pc = abuf->addr;
8629 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8630
8631{
8632frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8633if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8634 {
8635 USI opval = FLD (i_label16);
8636 sim_queue_pc_write (current_cpu, opval);
8637 written |= (1 << 3);
8638 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8639 }
8640}
8641}
8642
8643 abuf->written = written;
8644 return vpc;
8645#undef FLD
8646}
8647
8648/* fbge: fbge$pack $FCCi_2,$hint,$label16 */
8649
8650static SEM_PC
8651SEM_FN_NAME (frvbf,fbge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8652{
8653#define FLD(f) abuf->fields.sfmt_fbne.f
8654 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8655 int UNUSED written = 0;
8656 IADDR UNUSED pc = abuf->addr;
8657 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8658
8659{
8660frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8661if (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)))) {
8662 {
8663 USI opval = FLD (i_label16);
8664 sim_queue_pc_write (current_cpu, opval);
8665 written |= (1 << 3);
8666 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8667 }
8668}
8669}
8670
8671 abuf->written = written;
8672 return vpc;
8673#undef FLD
8674}
8675
8676/* fblt: fblt$pack $FCCi_2,$hint,$label16 */
8677
8678static SEM_PC
8679SEM_FN_NAME (frvbf,fblt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8680{
8681#define FLD(f) abuf->fields.sfmt_fbne.f
8682 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8683 int UNUSED written = 0;
8684 IADDR UNUSED pc = abuf->addr;
8685 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8686
8687{
8688frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8689if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
8690 {
8691 USI opval = FLD (i_label16);
8692 sim_queue_pc_write (current_cpu, opval);
8693 written |= (1 << 3);
8694 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8695 }
8696}
8697}
8698
8699 abuf->written = written;
8700 return vpc;
8701#undef FLD
8702}
8703
8704/* fbuge: fbuge$pack $FCCi_2,$hint,$label16 */
8705
8706static SEM_PC
8707SEM_FN_NAME (frvbf,fbuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8708{
8709#define FLD(f) abuf->fields.sfmt_fbne.f
8710 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8711 int UNUSED written = 0;
8712 IADDR UNUSED pc = abuf->addr;
8713 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8714
8715{
8716frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8717if (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))))) {
8718 {
8719 USI opval = FLD (i_label16);
8720 sim_queue_pc_write (current_cpu, opval);
8721 written |= (1 << 3);
8722 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8723 }
8724}
8725}
8726
8727 abuf->written = written;
8728 return vpc;
8729#undef FLD
8730}
8731
8732/* fbug: fbug$pack $FCCi_2,$hint,$label16 */
8733
8734static SEM_PC
8735SEM_FN_NAME (frvbf,fbug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8736{
8737#define FLD(f) abuf->fields.sfmt_fbne.f
8738 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8739 int UNUSED written = 0;
8740 IADDR UNUSED pc = abuf->addr;
8741 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8742
8743{
8744frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8745if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
8746 {
8747 USI opval = FLD (i_label16);
8748 sim_queue_pc_write (current_cpu, opval);
8749 written |= (1 << 3);
8750 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8751 }
8752}
8753}
8754
8755 abuf->written = written;
8756 return vpc;
8757#undef FLD
8758}
8759
8760/* fble: fble$pack $FCCi_2,$hint,$label16 */
8761
8762static SEM_PC
8763SEM_FN_NAME (frvbf,fble) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8764{
8765#define FLD(f) abuf->fields.sfmt_fbne.f
8766 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8767 int UNUSED written = 0;
8768 IADDR UNUSED pc = abuf->addr;
8769 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8770
8771{
8772frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8773if (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)))) {
8774 {
8775 USI opval = FLD (i_label16);
8776 sim_queue_pc_write (current_cpu, opval);
8777 written |= (1 << 3);
8778 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8779 }
8780}
8781}
8782
8783 abuf->written = written;
8784 return vpc;
8785#undef FLD
8786}
8787
8788/* fbgt: fbgt$pack $FCCi_2,$hint,$label16 */
8789
8790static SEM_PC
8791SEM_FN_NAME (frvbf,fbgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8792{
8793#define FLD(f) abuf->fields.sfmt_fbne.f
8794 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8795 int UNUSED written = 0;
8796 IADDR UNUSED pc = abuf->addr;
8797 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8798
8799{
8800frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8801if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
8802 {
8803 USI opval = FLD (i_label16);
8804 sim_queue_pc_write (current_cpu, opval);
8805 written |= (1 << 3);
8806 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8807 }
8808}
8809}
8810
8811 abuf->written = written;
8812 return vpc;
8813#undef FLD
8814}
8815
8816/* fbule: fbule$pack $FCCi_2,$hint,$label16 */
8817
8818static SEM_PC
8819SEM_FN_NAME (frvbf,fbule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8820{
8821#define FLD(f) abuf->fields.sfmt_fbne.f
8822 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8823 int UNUSED written = 0;
8824 IADDR UNUSED pc = abuf->addr;
8825 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8826
8827{
8828frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8829if (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))))) {
8830 {
8831 USI opval = FLD (i_label16);
8832 sim_queue_pc_write (current_cpu, opval);
8833 written |= (1 << 3);
8834 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8835 }
8836}
8837}
8838
8839 abuf->written = written;
8840 return vpc;
8841#undef FLD
8842}
8843
8844/* fbu: fbu$pack $FCCi_2,$hint,$label16 */
8845
8846static SEM_PC
8847SEM_FN_NAME (frvbf,fbu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8848{
8849#define FLD(f) abuf->fields.sfmt_fbne.f
8850 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8851 int UNUSED written = 0;
8852 IADDR UNUSED pc = abuf->addr;
8853 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8854
8855{
8856frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8857if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
8858 {
8859 USI opval = FLD (i_label16);
8860 sim_queue_pc_write (current_cpu, opval);
8861 written |= (1 << 3);
8862 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8863 }
8864}
8865}
8866
8867 abuf->written = written;
8868 return vpc;
8869#undef FLD
8870}
8871
8872/* fbo: fbo$pack $FCCi_2,$hint,$label16 */
8873
8874static SEM_PC
8875SEM_FN_NAME (frvbf,fbo) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8876{
8877#define FLD(f) abuf->fields.sfmt_fbne.f
8878 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8879 int UNUSED written = 0;
8880 IADDR UNUSED pc = abuf->addr;
8881 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8882
8883{
8884frvbf_model_branch (current_cpu, FLD (i_label16), FLD (f_hint));
8885if (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))))) {
8886 {
8887 USI opval = FLD (i_label16);
8888 sim_queue_pc_write (current_cpu, opval);
8889 written |= (1 << 3);
8890 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8891 }
8892}
8893}
8894
8895 abuf->written = written;
8896 return vpc;
8897#undef FLD
8898}
8899
8900/* bctrlr: bctrlr$pack $ccond,$hint */
8901
8902static SEM_PC
8903SEM_FN_NAME (frvbf,bctrlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8904{
8905#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8906 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8907 int UNUSED written = 0;
8908 IADDR UNUSED pc = abuf->addr;
8909 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8910
8911{
8912frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8913{
8914 SI tmp_tmp;
8915 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
8916 {
8917 USI opval = tmp_tmp;
8918 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
8919 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
8920 }
8921if (EQSI (FLD (f_ccond), 0)) {
8922if (NESI (tmp_tmp, 0)) {
8923 {
8924 USI opval = GET_H_SPR (((UINT) 272));
8925 sim_queue_pc_write (current_cpu, opval);
8926 written |= (1 << 5);
8927 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8928 }
8929}
8930} else {
8931if (EQSI (tmp_tmp, 0)) {
8932 {
8933 USI opval = GET_H_SPR (((UINT) 272));
8934 sim_queue_pc_write (current_cpu, opval);
8935 written |= (1 << 5);
8936 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8937 }
8938}
8939}
8940}
8941}
8942
8943 abuf->written = written;
8944 return vpc;
8945#undef FLD
8946}
8947
8948/* bralr: bralr$pack$hint_taken */
8949
8950static SEM_PC
8951SEM_FN_NAME (frvbf,bralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8952{
8953#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8954 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8955 int UNUSED written = 0;
8956 IADDR UNUSED pc = abuf->addr;
8957 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8958
8959{
8960frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8961 {
8962 USI opval = GET_H_SPR (((UINT) 272));
8963 sim_queue_pc_write (current_cpu, opval);
8964 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
8965 }
8966}
8967
8968 return vpc;
8969#undef FLD
8970}
8971
8972/* bnolr: bnolr$pack$hint_not_taken */
8973
8974static SEM_PC
8975SEM_FN_NAME (frvbf,bnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8976{
8977#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
8978 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8979 int UNUSED written = 0;
8980 IADDR UNUSED pc = abuf->addr;
8981 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8982
8983frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
8984
8985 return vpc;
8986#undef FLD
8987}
8988
8989/* beqlr: beqlr$pack $ICCi_2,$hint */
8990
8991static SEM_PC
8992SEM_FN_NAME (frvbf,beqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
8993{
8994#define FLD(f) abuf->fields.sfmt_bceqlr.f
8995 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
8996 int UNUSED written = 0;
8997 IADDR UNUSED pc = abuf->addr;
8998 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
8999
9000{
9001frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9002if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9003 {
9004 USI opval = GET_H_SPR (((UINT) 272));
9005 sim_queue_pc_write (current_cpu, opval);
9006 written |= (1 << 3);
9007 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9008 }
9009}
9010}
9011
9012 abuf->written = written;
9013 return vpc;
9014#undef FLD
9015}
9016
9017/* bnelr: bnelr$pack $ICCi_2,$hint */
9018
9019static SEM_PC
9020SEM_FN_NAME (frvbf,bnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9021{
9022#define FLD(f) abuf->fields.sfmt_bceqlr.f
9023 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9024 int UNUSED written = 0;
9025 IADDR UNUSED pc = abuf->addr;
9026 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9027
9028{
9029frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9030if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9031 {
9032 USI opval = GET_H_SPR (((UINT) 272));
9033 sim_queue_pc_write (current_cpu, opval);
9034 written |= (1 << 3);
9035 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9036 }
9037}
9038}
9039
9040 abuf->written = written;
9041 return vpc;
9042#undef FLD
9043}
9044
9045/* blelr: blelr$pack $ICCi_2,$hint */
9046
9047static SEM_PC
9048SEM_FN_NAME (frvbf,blelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9049{
9050#define FLD(f) abuf->fields.sfmt_bceqlr.f
9051 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9052 int UNUSED written = 0;
9053 IADDR UNUSED pc = abuf->addr;
9054 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9055
9056{
9057frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9058if (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))))) {
9059 {
9060 USI opval = GET_H_SPR (((UINT) 272));
9061 sim_queue_pc_write (current_cpu, opval);
9062 written |= (1 << 3);
9063 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9064 }
9065}
9066}
9067
9068 abuf->written = written;
9069 return vpc;
9070#undef FLD
9071}
9072
9073/* bgtlr: bgtlr$pack $ICCi_2,$hint */
9074
9075static SEM_PC
9076SEM_FN_NAME (frvbf,bgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9077{
9078#define FLD(f) abuf->fields.sfmt_bceqlr.f
9079 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9080 int UNUSED written = 0;
9081 IADDR UNUSED pc = abuf->addr;
9082 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9083
9084{
9085frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9086if (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)))))) {
9087 {
9088 USI opval = GET_H_SPR (((UINT) 272));
9089 sim_queue_pc_write (current_cpu, opval);
9090 written |= (1 << 3);
9091 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9092 }
9093}
9094}
9095
9096 abuf->written = written;
9097 return vpc;
9098#undef FLD
9099}
9100
9101/* bltlr: bltlr$pack $ICCi_2,$hint */
9102
9103static SEM_PC
9104SEM_FN_NAME (frvbf,bltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9105{
9106#define FLD(f) abuf->fields.sfmt_bceqlr.f
9107 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9108 int UNUSED written = 0;
9109 IADDR UNUSED pc = abuf->addr;
9110 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9111
9112{
9113frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9114if (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)))) {
9115 {
9116 USI opval = GET_H_SPR (((UINT) 272));
9117 sim_queue_pc_write (current_cpu, opval);
9118 written |= (1 << 3);
9119 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9120 }
9121}
9122}
9123
9124 abuf->written = written;
9125 return vpc;
9126#undef FLD
9127}
9128
9129/* bgelr: bgelr$pack $ICCi_2,$hint */
9130
9131static SEM_PC
9132SEM_FN_NAME (frvbf,bgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9133{
9134#define FLD(f) abuf->fields.sfmt_bceqlr.f
9135 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9136 int UNUSED written = 0;
9137 IADDR UNUSED pc = abuf->addr;
9138 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9139
9140{
9141frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9142if (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))))) {
9143 {
9144 USI opval = GET_H_SPR (((UINT) 272));
9145 sim_queue_pc_write (current_cpu, opval);
9146 written |= (1 << 3);
9147 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9148 }
9149}
9150}
9151
9152 abuf->written = written;
9153 return vpc;
9154#undef FLD
9155}
9156
9157/* blslr: blslr$pack $ICCi_2,$hint */
9158
9159static SEM_PC
9160SEM_FN_NAME (frvbf,blslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9161{
9162#define FLD(f) abuf->fields.sfmt_bceqlr.f
9163 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9164 int UNUSED written = 0;
9165 IADDR UNUSED pc = abuf->addr;
9166 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9167
9168{
9169frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9170if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9171 {
9172 USI opval = GET_H_SPR (((UINT) 272));
9173 sim_queue_pc_write (current_cpu, opval);
9174 written |= (1 << 3);
9175 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9176 }
9177}
9178}
9179
9180 abuf->written = written;
9181 return vpc;
9182#undef FLD
9183}
9184
9185/* bhilr: bhilr$pack $ICCi_2,$hint */
9186
9187static SEM_PC
9188SEM_FN_NAME (frvbf,bhilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9189{
9190#define FLD(f) abuf->fields.sfmt_bceqlr.f
9191 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9192 int UNUSED written = 0;
9193 IADDR UNUSED pc = abuf->addr;
9194 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9195
9196{
9197frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9198if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
9199 {
9200 USI opval = GET_H_SPR (((UINT) 272));
9201 sim_queue_pc_write (current_cpu, opval);
9202 written |= (1 << 3);
9203 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9204 }
9205}
9206}
9207
9208 abuf->written = written;
9209 return vpc;
9210#undef FLD
9211}
9212
9213/* bclr: bclr$pack $ICCi_2,$hint */
9214
9215static SEM_PC
9216SEM_FN_NAME (frvbf,bclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9217{
9218#define FLD(f) abuf->fields.sfmt_bceqlr.f
9219 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9220 int UNUSED written = 0;
9221 IADDR UNUSED pc = abuf->addr;
9222 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9223
9224{
9225frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9226if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
9227 {
9228 USI opval = GET_H_SPR (((UINT) 272));
9229 sim_queue_pc_write (current_cpu, opval);
9230 written |= (1 << 3);
9231 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9232 }
9233}
9234}
9235
9236 abuf->written = written;
9237 return vpc;
9238#undef FLD
9239}
9240
9241/* bnclr: bnclr$pack $ICCi_2,$hint */
9242
9243static SEM_PC
9244SEM_FN_NAME (frvbf,bnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9245{
9246#define FLD(f) abuf->fields.sfmt_bceqlr.f
9247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9248 int UNUSED written = 0;
9249 IADDR UNUSED pc = abuf->addr;
9250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9251
9252{
9253frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9254if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
9255 {
9256 USI opval = GET_H_SPR (((UINT) 272));
9257 sim_queue_pc_write (current_cpu, opval);
9258 written |= (1 << 3);
9259 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9260 }
9261}
9262}
9263
9264 abuf->written = written;
9265 return vpc;
9266#undef FLD
9267}
9268
9269/* bnlr: bnlr$pack $ICCi_2,$hint */
9270
9271static SEM_PC
9272SEM_FN_NAME (frvbf,bnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9273{
9274#define FLD(f) abuf->fields.sfmt_bceqlr.f
9275 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9276 int UNUSED written = 0;
9277 IADDR UNUSED pc = abuf->addr;
9278 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9279
9280{
9281frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9282if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
9283 {
9284 USI opval = GET_H_SPR (((UINT) 272));
9285 sim_queue_pc_write (current_cpu, opval);
9286 written |= (1 << 3);
9287 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9288 }
9289}
9290}
9291
9292 abuf->written = written;
9293 return vpc;
9294#undef FLD
9295}
9296
9297/* bplr: bplr$pack $ICCi_2,$hint */
9298
9299static SEM_PC
9300SEM_FN_NAME (frvbf,bplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9301{
9302#define FLD(f) abuf->fields.sfmt_bceqlr.f
9303 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9304 int UNUSED written = 0;
9305 IADDR UNUSED pc = abuf->addr;
9306 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9307
9308{
9309frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9310if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
9311 {
9312 USI opval = GET_H_SPR (((UINT) 272));
9313 sim_queue_pc_write (current_cpu, opval);
9314 written |= (1 << 3);
9315 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9316 }
9317}
9318}
9319
9320 abuf->written = written;
9321 return vpc;
9322#undef FLD
9323}
9324
9325/* bvlr: bvlr$pack $ICCi_2,$hint */
9326
9327static SEM_PC
9328SEM_FN_NAME (frvbf,bvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9329{
9330#define FLD(f) abuf->fields.sfmt_bceqlr.f
9331 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9332 int UNUSED written = 0;
9333 IADDR UNUSED pc = abuf->addr;
9334 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9335
9336{
9337frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9338if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
9339 {
9340 USI opval = GET_H_SPR (((UINT) 272));
9341 sim_queue_pc_write (current_cpu, opval);
9342 written |= (1 << 3);
9343 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9344 }
9345}
9346}
9347
9348 abuf->written = written;
9349 return vpc;
9350#undef FLD
9351}
9352
9353/* bnvlr: bnvlr$pack $ICCi_2,$hint */
9354
9355static SEM_PC
9356SEM_FN_NAME (frvbf,bnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9357{
9358#define FLD(f) abuf->fields.sfmt_bceqlr.f
9359 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9360 int UNUSED written = 0;
9361 IADDR UNUSED pc = abuf->addr;
9362 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9363
9364{
9365frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9366if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
9367 {
9368 USI opval = GET_H_SPR (((UINT) 272));
9369 sim_queue_pc_write (current_cpu, opval);
9370 written |= (1 << 3);
9371 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9372 }
9373}
9374}
9375
9376 abuf->written = written;
9377 return vpc;
9378#undef FLD
9379}
9380
9381/* fbralr: fbralr$pack$hint_taken */
9382
9383static SEM_PC
9384SEM_FN_NAME (frvbf,fbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9385{
9386#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9387 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9388 int UNUSED written = 0;
9389 IADDR UNUSED pc = abuf->addr;
9390 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9391
9392{
9393frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9394 {
9395 USI opval = GET_H_SPR (((UINT) 272));
9396 sim_queue_pc_write (current_cpu, opval);
9397 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9398 }
9399}
9400
9401 return vpc;
9402#undef FLD
9403}
9404
9405/* fbnolr: fbnolr$pack$hint_not_taken */
9406
9407static SEM_PC
9408SEM_FN_NAME (frvbf,fbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9409{
9410#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9412 int UNUSED written = 0;
9413 IADDR UNUSED pc = abuf->addr;
9414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9415
9416frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9417
9418 return vpc;
9419#undef FLD
9420}
9421
9422/* fbeqlr: fbeqlr$pack $FCCi_2,$hint */
9423
9424static SEM_PC
9425SEM_FN_NAME (frvbf,fbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9426{
9427#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9429 int UNUSED written = 0;
9430 IADDR UNUSED pc = abuf->addr;
9431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9432
9433{
9434frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9435if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
9436 {
9437 USI opval = GET_H_SPR (((UINT) 272));
9438 sim_queue_pc_write (current_cpu, opval);
9439 written |= (1 << 3);
9440 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9441 }
9442}
9443}
9444
9445 abuf->written = written;
9446 return vpc;
9447#undef FLD
9448}
9449
9450/* fbnelr: fbnelr$pack $FCCi_2,$hint */
9451
9452static SEM_PC
9453SEM_FN_NAME (frvbf,fbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9454{
9455#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9456 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9457 int UNUSED written = 0;
9458 IADDR UNUSED pc = abuf->addr;
9459 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9460
9461{
9462frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9463if (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))))) {
9464 {
9465 USI opval = GET_H_SPR (((UINT) 272));
9466 sim_queue_pc_write (current_cpu, opval);
9467 written |= (1 << 3);
9468 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9469 }
9470}
9471}
9472
9473 abuf->written = written;
9474 return vpc;
9475#undef FLD
9476}
9477
9478/* fblglr: fblglr$pack $FCCi_2,$hint */
9479
9480static SEM_PC
9481SEM_FN_NAME (frvbf,fblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9482{
9483#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9484 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9485 int UNUSED written = 0;
9486 IADDR UNUSED pc = abuf->addr;
9487 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9488
9489{
9490frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9491if (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)))) {
9492 {
9493 USI opval = GET_H_SPR (((UINT) 272));
9494 sim_queue_pc_write (current_cpu, opval);
9495 written |= (1 << 3);
9496 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9497 }
9498}
9499}
9500
9501 abuf->written = written;
9502 return vpc;
9503#undef FLD
9504}
9505
9506/* fbuelr: fbuelr$pack $FCCi_2,$hint */
9507
9508static SEM_PC
9509SEM_FN_NAME (frvbf,fbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9510{
9511#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9512 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9513 int UNUSED written = 0;
9514 IADDR UNUSED pc = abuf->addr;
9515 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9516
9517{
9518frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9519if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9520 {
9521 USI opval = GET_H_SPR (((UINT) 272));
9522 sim_queue_pc_write (current_cpu, opval);
9523 written |= (1 << 3);
9524 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9525 }
9526}
9527}
9528
9529 abuf->written = written;
9530 return vpc;
9531#undef FLD
9532}
9533
9534/* fbullr: fbullr$pack $FCCi_2,$hint */
9535
9536static SEM_PC
9537SEM_FN_NAME (frvbf,fbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9538{
9539#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9540 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9541 int UNUSED written = 0;
9542 IADDR UNUSED pc = abuf->addr;
9543 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9544
9545{
9546frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9547if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9548 {
9549 USI opval = GET_H_SPR (((UINT) 272));
9550 sim_queue_pc_write (current_cpu, opval);
9551 written |= (1 << 3);
9552 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9553 }
9554}
9555}
9556
9557 abuf->written = written;
9558 return vpc;
9559#undef FLD
9560}
9561
9562/* fbgelr: fbgelr$pack $FCCi_2,$hint */
9563
9564static SEM_PC
9565SEM_FN_NAME (frvbf,fbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9566{
9567#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9568 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9569 int UNUSED written = 0;
9570 IADDR UNUSED pc = abuf->addr;
9571 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9572
9573{
9574frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9575if (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)))) {
9576 {
9577 USI opval = GET_H_SPR (((UINT) 272));
9578 sim_queue_pc_write (current_cpu, opval);
9579 written |= (1 << 3);
9580 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9581 }
9582}
9583}
9584
9585 abuf->written = written;
9586 return vpc;
9587#undef FLD
9588}
9589
9590/* fbltlr: fbltlr$pack $FCCi_2,$hint */
9591
9592static SEM_PC
9593SEM_FN_NAME (frvbf,fbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9594{
9595#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9596 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9597 int UNUSED written = 0;
9598 IADDR UNUSED pc = abuf->addr;
9599 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9600
9601{
9602frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9603if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
9604 {
9605 USI opval = GET_H_SPR (((UINT) 272));
9606 sim_queue_pc_write (current_cpu, opval);
9607 written |= (1 << 3);
9608 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9609 }
9610}
9611}
9612
9613 abuf->written = written;
9614 return vpc;
9615#undef FLD
9616}
9617
9618/* fbugelr: fbugelr$pack $FCCi_2,$hint */
9619
9620static SEM_PC
9621SEM_FN_NAME (frvbf,fbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9622{
9623#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9624 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9625 int UNUSED written = 0;
9626 IADDR UNUSED pc = abuf->addr;
9627 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9628
9629{
9630frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9631if (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))))) {
9632 {
9633 USI opval = GET_H_SPR (((UINT) 272));
9634 sim_queue_pc_write (current_cpu, opval);
9635 written |= (1 << 3);
9636 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9637 }
9638}
9639}
9640
9641 abuf->written = written;
9642 return vpc;
9643#undef FLD
9644}
9645
9646/* fbuglr: fbuglr$pack $FCCi_2,$hint */
9647
9648static SEM_PC
9649SEM_FN_NAME (frvbf,fbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9650{
9651#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9652 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9653 int UNUSED written = 0;
9654 IADDR UNUSED pc = abuf->addr;
9655 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9656
9657{
9658frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9659if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
9660 {
9661 USI opval = GET_H_SPR (((UINT) 272));
9662 sim_queue_pc_write (current_cpu, opval);
9663 written |= (1 << 3);
9664 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9665 }
9666}
9667}
9668
9669 abuf->written = written;
9670 return vpc;
9671#undef FLD
9672}
9673
9674/* fblelr: fblelr$pack $FCCi_2,$hint */
9675
9676static SEM_PC
9677SEM_FN_NAME (frvbf,fblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9678{
9679#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9680 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9681 int UNUSED written = 0;
9682 IADDR UNUSED pc = abuf->addr;
9683 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9684
9685{
9686frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9687if (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)))) {
9688 {
9689 USI opval = GET_H_SPR (((UINT) 272));
9690 sim_queue_pc_write (current_cpu, opval);
9691 written |= (1 << 3);
9692 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9693 }
9694}
9695}
9696
9697 abuf->written = written;
9698 return vpc;
9699#undef FLD
9700}
9701
9702/* fbgtlr: fbgtlr$pack $FCCi_2,$hint */
9703
9704static SEM_PC
9705SEM_FN_NAME (frvbf,fbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9706{
9707#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9708 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9709 int UNUSED written = 0;
9710 IADDR UNUSED pc = abuf->addr;
9711 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9712
9713{
9714frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9715if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
9716 {
9717 USI opval = GET_H_SPR (((UINT) 272));
9718 sim_queue_pc_write (current_cpu, opval);
9719 written |= (1 << 3);
9720 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9721 }
9722}
9723}
9724
9725 abuf->written = written;
9726 return vpc;
9727#undef FLD
9728}
9729
9730/* fbulelr: fbulelr$pack $FCCi_2,$hint */
9731
9732static SEM_PC
9733SEM_FN_NAME (frvbf,fbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9734{
9735#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9736 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9737 int UNUSED written = 0;
9738 IADDR UNUSED pc = abuf->addr;
9739 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9740
9741{
9742frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9743if (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))))) {
9744 {
9745 USI opval = GET_H_SPR (((UINT) 272));
9746 sim_queue_pc_write (current_cpu, opval);
9747 written |= (1 << 3);
9748 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9749 }
9750}
9751}
9752
9753 abuf->written = written;
9754 return vpc;
9755#undef FLD
9756}
9757
9758/* fbulr: fbulr$pack $FCCi_2,$hint */
9759
9760static SEM_PC
9761SEM_FN_NAME (frvbf,fbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9762{
9763#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9764 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9765 int UNUSED written = 0;
9766 IADDR UNUSED pc = abuf->addr;
9767 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9768
9769{
9770frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9771if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
9772 {
9773 USI opval = GET_H_SPR (((UINT) 272));
9774 sim_queue_pc_write (current_cpu, opval);
9775 written |= (1 << 3);
9776 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9777 }
9778}
9779}
9780
9781 abuf->written = written;
9782 return vpc;
9783#undef FLD
9784}
9785
9786/* fbolr: fbolr$pack $FCCi_2,$hint */
9787
9788static SEM_PC
9789SEM_FN_NAME (frvbf,fbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9790{
9791#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9792 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9793 int UNUSED written = 0;
9794 IADDR UNUSED pc = abuf->addr;
9795 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9796
9797{
9798frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9799if (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))))) {
9800 {
9801 USI opval = GET_H_SPR (((UINT) 272));
9802 sim_queue_pc_write (current_cpu, opval);
9803 written |= (1 << 3);
9804 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9805 }
9806}
9807}
9808
9809 abuf->written = written;
9810 return vpc;
9811#undef FLD
9812}
9813
9814/* bcralr: bcralr$pack $ccond$hint_taken */
9815
9816static SEM_PC
9817SEM_FN_NAME (frvbf,bcralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9818{
9819#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9820 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9821 int UNUSED written = 0;
9822 IADDR UNUSED pc = abuf->addr;
9823 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9824
9825{
9826frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9827{
9828 SI tmp_tmp;
9829 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9830 {
9831 USI opval = tmp_tmp;
9832 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9833 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9834 }
9835if (EQSI (FLD (f_ccond), 0)) {
9836if (NESI (tmp_tmp, 0)) {
9837 {
9838 USI opval = GET_H_SPR (((UINT) 272));
9839 sim_queue_pc_write (current_cpu, opval);
9840 written |= (1 << 5);
9841 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9842 }
9843}
9844} else {
9845if (EQSI (tmp_tmp, 0)) {
9846 {
9847 USI opval = GET_H_SPR (((UINT) 272));
9848 sim_queue_pc_write (current_cpu, opval);
9849 written |= (1 << 5);
9850 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9851 }
9852}
9853}
9854}
9855}
9856
9857 abuf->written = written;
9858 return vpc;
9859#undef FLD
9860}
9861
9862/* bcnolr: bcnolr$pack$hint_not_taken */
9863
9864static SEM_PC
9865SEM_FN_NAME (frvbf,bcnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9866{
9867#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
9868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9869 int UNUSED written = 0;
9870 IADDR UNUSED pc = abuf->addr;
9871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9872
9873{
9874frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9875{
9876 SI tmp_tmp;
9877 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9878 {
9879 USI opval = tmp_tmp;
9880 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9881 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9882 }
9883((void) 0); /*nop*/
9884}
9885}
9886
9887 return vpc;
9888#undef FLD
9889}
9890
9891/* bceqlr: bceqlr$pack $ICCi_2,$ccond,$hint */
9892
9893static SEM_PC
9894SEM_FN_NAME (frvbf,bceqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9895{
9896#define FLD(f) abuf->fields.sfmt_bceqlr.f
9897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9898 int UNUSED written = 0;
9899 IADDR UNUSED pc = abuf->addr;
9900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9901
9902{
9903frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9904{
9905 SI tmp_tmp;
9906 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9907 {
9908 USI opval = tmp_tmp;
9909 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9910 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9911 }
9912if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
9913if (EQSI (FLD (f_ccond), 0)) {
9914if (NESI (tmp_tmp, 0)) {
9915 {
9916 USI opval = GET_H_SPR (((UINT) 272));
9917 sim_queue_pc_write (current_cpu, opval);
9918 written |= (1 << 6);
9919 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9920 }
9921}
9922} else {
9923if (EQSI (tmp_tmp, 0)) {
9924 {
9925 USI opval = GET_H_SPR (((UINT) 272));
9926 sim_queue_pc_write (current_cpu, opval);
9927 written |= (1 << 6);
9928 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9929 }
9930}
9931}
9932}
9933}
9934}
9935
9936 abuf->written = written;
9937 return vpc;
9938#undef FLD
9939}
9940
9941/* bcnelr: bcnelr$pack $ICCi_2,$ccond,$hint */
9942
9943static SEM_PC
9944SEM_FN_NAME (frvbf,bcnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9945{
9946#define FLD(f) abuf->fields.sfmt_bceqlr.f
9947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9948 int UNUSED written = 0;
9949 IADDR UNUSED pc = abuf->addr;
9950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
9951
9952{
9953frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
9954{
9955 SI tmp_tmp;
9956 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
9957 {
9958 USI opval = tmp_tmp;
9959 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
9960 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
9961 }
9962if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
9963if (EQSI (FLD (f_ccond), 0)) {
9964if (NESI (tmp_tmp, 0)) {
9965 {
9966 USI opval = GET_H_SPR (((UINT) 272));
9967 sim_queue_pc_write (current_cpu, opval);
9968 written |= (1 << 6);
9969 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9970 }
9971}
9972} else {
9973if (EQSI (tmp_tmp, 0)) {
9974 {
9975 USI opval = GET_H_SPR (((UINT) 272));
9976 sim_queue_pc_write (current_cpu, opval);
9977 written |= (1 << 6);
9978 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
9979 }
9980}
9981}
9982}
9983}
9984}
9985
9986 abuf->written = written;
9987 return vpc;
9988#undef FLD
9989}
9990
9991/* bclelr: bclelr$pack $ICCi_2,$ccond,$hint */
9992
9993static SEM_PC
9994SEM_FN_NAME (frvbf,bclelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
9995{
9996#define FLD(f) abuf->fields.sfmt_bceqlr.f
9997 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
9998 int UNUSED written = 0;
9999 IADDR UNUSED pc = abuf->addr;
10000 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10001
10002{
10003frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10004{
10005 SI tmp_tmp;
10006 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10007 {
10008 USI opval = tmp_tmp;
10009 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10010 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10011 }
10012if (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))))) {
10013if (EQSI (FLD (f_ccond), 0)) {
10014if (NESI (tmp_tmp, 0)) {
10015 {
10016 USI opval = GET_H_SPR (((UINT) 272));
10017 sim_queue_pc_write (current_cpu, opval);
10018 written |= (1 << 6);
10019 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10020 }
10021}
10022} else {
10023if (EQSI (tmp_tmp, 0)) {
10024 {
10025 USI opval = GET_H_SPR (((UINT) 272));
10026 sim_queue_pc_write (current_cpu, opval);
10027 written |= (1 << 6);
10028 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10029 }
10030}
10031}
10032}
10033}
10034}
10035
10036 abuf->written = written;
10037 return vpc;
10038#undef FLD
10039}
10040
10041/* bcgtlr: bcgtlr$pack $ICCi_2,$ccond,$hint */
10042
10043static SEM_PC
10044SEM_FN_NAME (frvbf,bcgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10045{
10046#define FLD(f) abuf->fields.sfmt_bceqlr.f
10047 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10048 int UNUSED written = 0;
10049 IADDR UNUSED pc = abuf->addr;
10050 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10051
10052{
10053frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10054{
10055 SI tmp_tmp;
10056 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10057 {
10058 USI opval = tmp_tmp;
10059 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10060 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10061 }
10062if (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)))))) {
10063if (EQSI (FLD (f_ccond), 0)) {
10064if (NESI (tmp_tmp, 0)) {
10065 {
10066 USI opval = GET_H_SPR (((UINT) 272));
10067 sim_queue_pc_write (current_cpu, opval);
10068 written |= (1 << 6);
10069 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10070 }
10071}
10072} else {
10073if (EQSI (tmp_tmp, 0)) {
10074 {
10075 USI opval = GET_H_SPR (((UINT) 272));
10076 sim_queue_pc_write (current_cpu, opval);
10077 written |= (1 << 6);
10078 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10079 }
10080}
10081}
10082}
10083}
10084}
10085
10086 abuf->written = written;
10087 return vpc;
10088#undef FLD
10089}
10090
10091/* bcltlr: bcltlr$pack $ICCi_2,$ccond,$hint */
10092
10093static SEM_PC
10094SEM_FN_NAME (frvbf,bcltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10095{
10096#define FLD(f) abuf->fields.sfmt_bceqlr.f
10097 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10098 int UNUSED written = 0;
10099 IADDR UNUSED pc = abuf->addr;
10100 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10101
10102{
10103frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10104{
10105 SI tmp_tmp;
10106 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10107 {
10108 USI opval = tmp_tmp;
10109 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10110 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10111 }
10112if (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)))) {
10113if (EQSI (FLD (f_ccond), 0)) {
10114if (NESI (tmp_tmp, 0)) {
10115 {
10116 USI opval = GET_H_SPR (((UINT) 272));
10117 sim_queue_pc_write (current_cpu, opval);
10118 written |= (1 << 6);
10119 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10120 }
10121}
10122} else {
10123if (EQSI (tmp_tmp, 0)) {
10124 {
10125 USI opval = GET_H_SPR (((UINT) 272));
10126 sim_queue_pc_write (current_cpu, opval);
10127 written |= (1 << 6);
10128 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10129 }
10130}
10131}
10132}
10133}
10134}
10135
10136 abuf->written = written;
10137 return vpc;
10138#undef FLD
10139}
10140
10141/* bcgelr: bcgelr$pack $ICCi_2,$ccond,$hint */
10142
10143static SEM_PC
10144SEM_FN_NAME (frvbf,bcgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10145{
10146#define FLD(f) abuf->fields.sfmt_bceqlr.f
10147 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10148 int UNUSED written = 0;
10149 IADDR UNUSED pc = abuf->addr;
10150 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10151
10152{
10153frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10154{
10155 SI tmp_tmp;
10156 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10157 {
10158 USI opval = tmp_tmp;
10159 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10160 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10161 }
10162if (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))))) {
10163if (EQSI (FLD (f_ccond), 0)) {
10164if (NESI (tmp_tmp, 0)) {
10165 {
10166 USI opval = GET_H_SPR (((UINT) 272));
10167 sim_queue_pc_write (current_cpu, opval);
10168 written |= (1 << 6);
10169 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10170 }
10171}
10172} else {
10173if (EQSI (tmp_tmp, 0)) {
10174 {
10175 USI opval = GET_H_SPR (((UINT) 272));
10176 sim_queue_pc_write (current_cpu, opval);
10177 written |= (1 << 6);
10178 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10179 }
10180}
10181}
10182}
10183}
10184}
10185
10186 abuf->written = written;
10187 return vpc;
10188#undef FLD
10189}
10190
10191/* bclslr: bclslr$pack $ICCi_2,$ccond,$hint */
10192
10193static SEM_PC
10194SEM_FN_NAME (frvbf,bclslr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10195{
10196#define FLD(f) abuf->fields.sfmt_bceqlr.f
10197 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10198 int UNUSED written = 0;
10199 IADDR UNUSED pc = abuf->addr;
10200 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10201
10202{
10203frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10204{
10205 SI tmp_tmp;
10206 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10207 {
10208 USI opval = tmp_tmp;
10209 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10210 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10211 }
10212if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
10213if (EQSI (FLD (f_ccond), 0)) {
10214if (NESI (tmp_tmp, 0)) {
10215 {
10216 USI opval = GET_H_SPR (((UINT) 272));
10217 sim_queue_pc_write (current_cpu, opval);
10218 written |= (1 << 6);
10219 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10220 }
10221}
10222} else {
10223if (EQSI (tmp_tmp, 0)) {
10224 {
10225 USI opval = GET_H_SPR (((UINT) 272));
10226 sim_queue_pc_write (current_cpu, opval);
10227 written |= (1 << 6);
10228 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10229 }
10230}
10231}
10232}
10233}
10234}
10235
10236 abuf->written = written;
10237 return vpc;
10238#undef FLD
10239}
10240
10241/* bchilr: bchilr$pack $ICCi_2,$ccond,$hint */
10242
10243static SEM_PC
10244SEM_FN_NAME (frvbf,bchilr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10245{
10246#define FLD(f) abuf->fields.sfmt_bceqlr.f
10247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10248 int UNUSED written = 0;
10249 IADDR UNUSED pc = abuf->addr;
10250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10251
10252{
10253frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10254{
10255 SI tmp_tmp;
10256 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10257 {
10258 USI opval = tmp_tmp;
10259 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10260 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10261 }
10262if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
10263if (EQSI (FLD (f_ccond), 0)) {
10264if (NESI (tmp_tmp, 0)) {
10265 {
10266 USI opval = GET_H_SPR (((UINT) 272));
10267 sim_queue_pc_write (current_cpu, opval);
10268 written |= (1 << 6);
10269 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10270 }
10271}
10272} else {
10273if (EQSI (tmp_tmp, 0)) {
10274 {
10275 USI opval = GET_H_SPR (((UINT) 272));
10276 sim_queue_pc_write (current_cpu, opval);
10277 written |= (1 << 6);
10278 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10279 }
10280}
10281}
10282}
10283}
10284}
10285
10286 abuf->written = written;
10287 return vpc;
10288#undef FLD
10289}
10290
10291/* bcclr: bcclr$pack $ICCi_2,$ccond,$hint */
10292
10293static SEM_PC
10294SEM_FN_NAME (frvbf,bcclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10295{
10296#define FLD(f) abuf->fields.sfmt_bceqlr.f
10297 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10298 int UNUSED written = 0;
10299 IADDR UNUSED pc = abuf->addr;
10300 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10301
10302{
10303frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10304{
10305 SI tmp_tmp;
10306 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10307 {
10308 USI opval = tmp_tmp;
10309 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10310 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10311 }
10312if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
10313if (EQSI (FLD (f_ccond), 0)) {
10314if (NESI (tmp_tmp, 0)) {
10315 {
10316 USI opval = GET_H_SPR (((UINT) 272));
10317 sim_queue_pc_write (current_cpu, opval);
10318 written |= (1 << 6);
10319 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10320 }
10321}
10322} else {
10323if (EQSI (tmp_tmp, 0)) {
10324 {
10325 USI opval = GET_H_SPR (((UINT) 272));
10326 sim_queue_pc_write (current_cpu, opval);
10327 written |= (1 << 6);
10328 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10329 }
10330}
10331}
10332}
10333}
10334}
10335
10336 abuf->written = written;
10337 return vpc;
10338#undef FLD
10339}
10340
10341/* bcnclr: bcnclr$pack $ICCi_2,$ccond,$hint */
10342
10343static SEM_PC
10344SEM_FN_NAME (frvbf,bcnclr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10345{
10346#define FLD(f) abuf->fields.sfmt_bceqlr.f
10347 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10348 int UNUSED written = 0;
10349 IADDR UNUSED pc = abuf->addr;
10350 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10351
10352{
10353frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10354{
10355 SI tmp_tmp;
10356 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10357 {
10358 USI opval = tmp_tmp;
10359 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10360 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10361 }
10362if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
10363if (EQSI (FLD (f_ccond), 0)) {
10364if (NESI (tmp_tmp, 0)) {
10365 {
10366 USI opval = GET_H_SPR (((UINT) 272));
10367 sim_queue_pc_write (current_cpu, opval);
10368 written |= (1 << 6);
10369 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10370 }
10371}
10372} else {
10373if (EQSI (tmp_tmp, 0)) {
10374 {
10375 USI opval = GET_H_SPR (((UINT) 272));
10376 sim_queue_pc_write (current_cpu, opval);
10377 written |= (1 << 6);
10378 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10379 }
10380}
10381}
10382}
10383}
10384}
10385
10386 abuf->written = written;
10387 return vpc;
10388#undef FLD
10389}
10390
10391/* bcnlr: bcnlr$pack $ICCi_2,$ccond,$hint */
10392
10393static SEM_PC
10394SEM_FN_NAME (frvbf,bcnlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10395{
10396#define FLD(f) abuf->fields.sfmt_bceqlr.f
10397 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10398 int UNUSED written = 0;
10399 IADDR UNUSED pc = abuf->addr;
10400 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10401
10402{
10403frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10404{
10405 SI tmp_tmp;
10406 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10407 {
10408 USI opval = tmp_tmp;
10409 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10410 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10411 }
10412if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
10413if (EQSI (FLD (f_ccond), 0)) {
10414if (NESI (tmp_tmp, 0)) {
10415 {
10416 USI opval = GET_H_SPR (((UINT) 272));
10417 sim_queue_pc_write (current_cpu, opval);
10418 written |= (1 << 6);
10419 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10420 }
10421}
10422} else {
10423if (EQSI (tmp_tmp, 0)) {
10424 {
10425 USI opval = GET_H_SPR (((UINT) 272));
10426 sim_queue_pc_write (current_cpu, opval);
10427 written |= (1 << 6);
10428 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10429 }
10430}
10431}
10432}
10433}
10434}
10435
10436 abuf->written = written;
10437 return vpc;
10438#undef FLD
10439}
10440
10441/* bcplr: bcplr$pack $ICCi_2,$ccond,$hint */
10442
10443static SEM_PC
10444SEM_FN_NAME (frvbf,bcplr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10445{
10446#define FLD(f) abuf->fields.sfmt_bceqlr.f
10447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10448 int UNUSED written = 0;
10449 IADDR UNUSED pc = abuf->addr;
10450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10451
10452{
10453frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10454{
10455 SI tmp_tmp;
10456 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10457 {
10458 USI opval = tmp_tmp;
10459 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10460 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10461 }
10462if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
10463if (EQSI (FLD (f_ccond), 0)) {
10464if (NESI (tmp_tmp, 0)) {
10465 {
10466 USI opval = GET_H_SPR (((UINT) 272));
10467 sim_queue_pc_write (current_cpu, opval);
10468 written |= (1 << 6);
10469 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10470 }
10471}
10472} else {
10473if (EQSI (tmp_tmp, 0)) {
10474 {
10475 USI opval = GET_H_SPR (((UINT) 272));
10476 sim_queue_pc_write (current_cpu, opval);
10477 written |= (1 << 6);
10478 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10479 }
10480}
10481}
10482}
10483}
10484}
10485
10486 abuf->written = written;
10487 return vpc;
10488#undef FLD
10489}
10490
10491/* bcvlr: bcvlr$pack $ICCi_2,$ccond,$hint */
10492
10493static SEM_PC
10494SEM_FN_NAME (frvbf,bcvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10495{
10496#define FLD(f) abuf->fields.sfmt_bceqlr.f
10497 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10498 int UNUSED written = 0;
10499 IADDR UNUSED pc = abuf->addr;
10500 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10501
10502{
10503frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10504{
10505 SI tmp_tmp;
10506 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10507 {
10508 USI opval = tmp_tmp;
10509 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10510 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10511 }
10512if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
10513if (EQSI (FLD (f_ccond), 0)) {
10514if (NESI (tmp_tmp, 0)) {
10515 {
10516 USI opval = GET_H_SPR (((UINT) 272));
10517 sim_queue_pc_write (current_cpu, opval);
10518 written |= (1 << 6);
10519 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10520 }
10521}
10522} else {
10523if (EQSI (tmp_tmp, 0)) {
10524 {
10525 USI opval = GET_H_SPR (((UINT) 272));
10526 sim_queue_pc_write (current_cpu, opval);
10527 written |= (1 << 6);
10528 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10529 }
10530}
10531}
10532}
10533}
10534}
10535
10536 abuf->written = written;
10537 return vpc;
10538#undef FLD
10539}
10540
10541/* bcnvlr: bcnvlr$pack $ICCi_2,$ccond,$hint */
10542
10543static SEM_PC
10544SEM_FN_NAME (frvbf,bcnvlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10545{
10546#define FLD(f) abuf->fields.sfmt_bceqlr.f
10547 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10548 int UNUSED written = 0;
10549 IADDR UNUSED pc = abuf->addr;
10550 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10551
10552{
10553frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10554{
10555 SI tmp_tmp;
10556 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10557 {
10558 USI opval = tmp_tmp;
10559 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10560 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10561 }
10562if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
10563if (EQSI (FLD (f_ccond), 0)) {
10564if (NESI (tmp_tmp, 0)) {
10565 {
10566 USI opval = GET_H_SPR (((UINT) 272));
10567 sim_queue_pc_write (current_cpu, opval);
10568 written |= (1 << 6);
10569 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10570 }
10571}
10572} else {
10573if (EQSI (tmp_tmp, 0)) {
10574 {
10575 USI opval = GET_H_SPR (((UINT) 272));
10576 sim_queue_pc_write (current_cpu, opval);
10577 written |= (1 << 6);
10578 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10579 }
10580}
10581}
10582}
10583}
10584}
10585
10586 abuf->written = written;
10587 return vpc;
10588#undef FLD
10589}
10590
10591/* fcbralr: fcbralr$pack $ccond$hint_taken */
10592
10593static SEM_PC
10594SEM_FN_NAME (frvbf,fcbralr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10595{
10596#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10597 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10598 int UNUSED written = 0;
10599 IADDR UNUSED pc = abuf->addr;
10600 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10601
10602{
10603frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10604{
10605 SI tmp_tmp;
10606 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10607 {
10608 USI opval = tmp_tmp;
10609 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10610 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10611 }
10612if (EQSI (FLD (f_ccond), 0)) {
10613if (NESI (tmp_tmp, 0)) {
10614 {
10615 USI opval = GET_H_SPR (((UINT) 272));
10616 sim_queue_pc_write (current_cpu, opval);
10617 written |= (1 << 5);
10618 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10619 }
10620}
10621} else {
10622if (EQSI (tmp_tmp, 0)) {
10623 {
10624 USI opval = GET_H_SPR (((UINT) 272));
10625 sim_queue_pc_write (current_cpu, opval);
10626 written |= (1 << 5);
10627 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10628 }
10629}
10630}
10631}
10632}
10633
10634 abuf->written = written;
10635 return vpc;
10636#undef FLD
10637}
10638
10639/* fcbnolr: fcbnolr$pack$hint_not_taken */
10640
10641static SEM_PC
10642SEM_FN_NAME (frvbf,fcbnolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10643{
10644#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10645 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10646 int UNUSED written = 0;
10647 IADDR UNUSED pc = abuf->addr;
10648 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10649
10650{
10651frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10652{
10653 SI tmp_tmp;
10654 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10655 {
10656 USI opval = tmp_tmp;
10657 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10658 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10659 }
10660((void) 0); /*nop*/
10661}
10662}
10663
10664 return vpc;
10665#undef FLD
10666}
10667
10668/* fcbeqlr: fcbeqlr$pack $FCCi_2,$ccond,$hint */
10669
10670static SEM_PC
10671SEM_FN_NAME (frvbf,fcbeqlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10672{
10673#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10674 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10675 int UNUSED written = 0;
10676 IADDR UNUSED pc = abuf->addr;
10677 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10678
10679{
10680frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10681{
10682 SI tmp_tmp;
10683 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10684 {
10685 USI opval = tmp_tmp;
10686 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10687 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10688 }
10689if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
10690if (EQSI (FLD (f_ccond), 0)) {
10691if (NESI (tmp_tmp, 0)) {
10692 {
10693 USI opval = GET_H_SPR (((UINT) 272));
10694 sim_queue_pc_write (current_cpu, opval);
10695 written |= (1 << 6);
10696 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10697 }
10698}
10699} else {
10700if (EQSI (tmp_tmp, 0)) {
10701 {
10702 USI opval = GET_H_SPR (((UINT) 272));
10703 sim_queue_pc_write (current_cpu, opval);
10704 written |= (1 << 6);
10705 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10706 }
10707}
10708}
10709}
10710}
10711}
10712
10713 abuf->written = written;
10714 return vpc;
10715#undef FLD
10716}
10717
10718/* fcbnelr: fcbnelr$pack $FCCi_2,$ccond,$hint */
10719
10720static SEM_PC
10721SEM_FN_NAME (frvbf,fcbnelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10722{
10723#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10724 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10725 int UNUSED written = 0;
10726 IADDR UNUSED pc = abuf->addr;
10727 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10728
10729{
10730frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10731{
10732 SI tmp_tmp;
10733 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10734 {
10735 USI opval = tmp_tmp;
10736 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10737 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10738 }
10739if (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))))) {
10740if (EQSI (FLD (f_ccond), 0)) {
10741if (NESI (tmp_tmp, 0)) {
10742 {
10743 USI opval = GET_H_SPR (((UINT) 272));
10744 sim_queue_pc_write (current_cpu, opval);
10745 written |= (1 << 6);
10746 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10747 }
10748}
10749} else {
10750if (EQSI (tmp_tmp, 0)) {
10751 {
10752 USI opval = GET_H_SPR (((UINT) 272));
10753 sim_queue_pc_write (current_cpu, opval);
10754 written |= (1 << 6);
10755 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10756 }
10757}
10758}
10759}
10760}
10761}
10762
10763 abuf->written = written;
10764 return vpc;
10765#undef FLD
10766}
10767
10768/* fcblglr: fcblglr$pack $FCCi_2,$ccond,$hint */
10769
10770static SEM_PC
10771SEM_FN_NAME (frvbf,fcblglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10772{
10773#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10774 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10775 int UNUSED written = 0;
10776 IADDR UNUSED pc = abuf->addr;
10777 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10778
10779{
10780frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10781{
10782 SI tmp_tmp;
10783 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10784 {
10785 USI opval = tmp_tmp;
10786 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10787 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10788 }
10789if (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)))) {
10790if (EQSI (FLD (f_ccond), 0)) {
10791if (NESI (tmp_tmp, 0)) {
10792 {
10793 USI opval = GET_H_SPR (((UINT) 272));
10794 sim_queue_pc_write (current_cpu, opval);
10795 written |= (1 << 6);
10796 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10797 }
10798}
10799} else {
10800if (EQSI (tmp_tmp, 0)) {
10801 {
10802 USI opval = GET_H_SPR (((UINT) 272));
10803 sim_queue_pc_write (current_cpu, opval);
10804 written |= (1 << 6);
10805 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10806 }
10807}
10808}
10809}
10810}
10811}
10812
10813 abuf->written = written;
10814 return vpc;
10815#undef FLD
10816}
10817
10818/* fcbuelr: fcbuelr$pack $FCCi_2,$ccond,$hint */
10819
10820static SEM_PC
10821SEM_FN_NAME (frvbf,fcbuelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10822{
10823#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10824 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10825 int UNUSED written = 0;
10826 IADDR UNUSED pc = abuf->addr;
10827 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10828
10829{
10830frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10831{
10832 SI tmp_tmp;
10833 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10834 {
10835 USI opval = tmp_tmp;
10836 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10837 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10838 }
10839if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10840if (EQSI (FLD (f_ccond), 0)) {
10841if (NESI (tmp_tmp, 0)) {
10842 {
10843 USI opval = GET_H_SPR (((UINT) 272));
10844 sim_queue_pc_write (current_cpu, opval);
10845 written |= (1 << 6);
10846 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10847 }
10848}
10849} else {
10850if (EQSI (tmp_tmp, 0)) {
10851 {
10852 USI opval = GET_H_SPR (((UINT) 272));
10853 sim_queue_pc_write (current_cpu, opval);
10854 written |= (1 << 6);
10855 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10856 }
10857}
10858}
10859}
10860}
10861}
10862
10863 abuf->written = written;
10864 return vpc;
10865#undef FLD
10866}
10867
10868/* fcbullr: fcbullr$pack $FCCi_2,$ccond,$hint */
10869
10870static SEM_PC
10871SEM_FN_NAME (frvbf,fcbullr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10872{
10873#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10874 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10875 int UNUSED written = 0;
10876 IADDR UNUSED pc = abuf->addr;
10877 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10878
10879{
10880frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10881{
10882 SI tmp_tmp;
10883 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10884 {
10885 USI opval = tmp_tmp;
10886 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10887 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10888 }
10889if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
10890if (EQSI (FLD (f_ccond), 0)) {
10891if (NESI (tmp_tmp, 0)) {
10892 {
10893 USI opval = GET_H_SPR (((UINT) 272));
10894 sim_queue_pc_write (current_cpu, opval);
10895 written |= (1 << 6);
10896 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10897 }
10898}
10899} else {
10900if (EQSI (tmp_tmp, 0)) {
10901 {
10902 USI opval = GET_H_SPR (((UINT) 272));
10903 sim_queue_pc_write (current_cpu, opval);
10904 written |= (1 << 6);
10905 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10906 }
10907}
10908}
10909}
10910}
10911}
10912
10913 abuf->written = written;
10914 return vpc;
10915#undef FLD
10916}
10917
10918/* fcbgelr: fcbgelr$pack $FCCi_2,$ccond,$hint */
10919
10920static SEM_PC
10921SEM_FN_NAME (frvbf,fcbgelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10922{
10923#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10924 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10925 int UNUSED written = 0;
10926 IADDR UNUSED pc = abuf->addr;
10927 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10928
10929{
10930frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10931{
10932 SI tmp_tmp;
10933 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10934 {
10935 USI opval = tmp_tmp;
10936 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10937 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10938 }
10939if (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)))) {
10940if (EQSI (FLD (f_ccond), 0)) {
10941if (NESI (tmp_tmp, 0)) {
10942 {
10943 USI opval = GET_H_SPR (((UINT) 272));
10944 sim_queue_pc_write (current_cpu, opval);
10945 written |= (1 << 6);
10946 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10947 }
10948}
10949} else {
10950if (EQSI (tmp_tmp, 0)) {
10951 {
10952 USI opval = GET_H_SPR (((UINT) 272));
10953 sim_queue_pc_write (current_cpu, opval);
10954 written |= (1 << 6);
10955 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10956 }
10957}
10958}
10959}
10960}
10961}
10962
10963 abuf->written = written;
10964 return vpc;
10965#undef FLD
10966}
10967
10968/* fcbltlr: fcbltlr$pack $FCCi_2,$ccond,$hint */
10969
10970static SEM_PC
10971SEM_FN_NAME (frvbf,fcbltlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
10972{
10973#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
10974 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
10975 int UNUSED written = 0;
10976 IADDR UNUSED pc = abuf->addr;
10977 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
10978
10979{
10980frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
10981{
10982 SI tmp_tmp;
10983 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
10984 {
10985 USI opval = tmp_tmp;
10986 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
10987 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
10988 }
10989if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
10990if (EQSI (FLD (f_ccond), 0)) {
10991if (NESI (tmp_tmp, 0)) {
10992 {
10993 USI opval = GET_H_SPR (((UINT) 272));
10994 sim_queue_pc_write (current_cpu, opval);
10995 written |= (1 << 6);
10996 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
10997 }
10998}
10999} else {
11000if (EQSI (tmp_tmp, 0)) {
11001 {
11002 USI opval = GET_H_SPR (((UINT) 272));
11003 sim_queue_pc_write (current_cpu, opval);
11004 written |= (1 << 6);
11005 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11006 }
11007}
11008}
11009}
11010}
11011}
11012
11013 abuf->written = written;
11014 return vpc;
11015#undef FLD
11016}
11017
11018/* fcbugelr: fcbugelr$pack $FCCi_2,$ccond,$hint */
11019
11020static SEM_PC
11021SEM_FN_NAME (frvbf,fcbugelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11022{
11023#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11024 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11025 int UNUSED written = 0;
11026 IADDR UNUSED pc = abuf->addr;
11027 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11028
11029{
11030frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11031{
11032 SI tmp_tmp;
11033 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11034 {
11035 USI opval = tmp_tmp;
11036 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11037 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11038 }
11039if (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))))) {
11040if (EQSI (FLD (f_ccond), 0)) {
11041if (NESI (tmp_tmp, 0)) {
11042 {
11043 USI opval = GET_H_SPR (((UINT) 272));
11044 sim_queue_pc_write (current_cpu, opval);
11045 written |= (1 << 6);
11046 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11047 }
11048}
11049} else {
11050if (EQSI (tmp_tmp, 0)) {
11051 {
11052 USI opval = GET_H_SPR (((UINT) 272));
11053 sim_queue_pc_write (current_cpu, opval);
11054 written |= (1 << 6);
11055 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11056 }
11057}
11058}
11059}
11060}
11061}
11062
11063 abuf->written = written;
11064 return vpc;
11065#undef FLD
11066}
11067
11068/* fcbuglr: fcbuglr$pack $FCCi_2,$ccond,$hint */
11069
11070static SEM_PC
11071SEM_FN_NAME (frvbf,fcbuglr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11072{
11073#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11074 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11075 int UNUSED written = 0;
11076 IADDR UNUSED pc = abuf->addr;
11077 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11078
11079{
11080frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11081{
11082 SI tmp_tmp;
11083 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11084 {
11085 USI opval = tmp_tmp;
11086 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11087 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11088 }
11089if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
11090if (EQSI (FLD (f_ccond), 0)) {
11091if (NESI (tmp_tmp, 0)) {
11092 {
11093 USI opval = GET_H_SPR (((UINT) 272));
11094 sim_queue_pc_write (current_cpu, opval);
11095 written |= (1 << 6);
11096 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11097 }
11098}
11099} else {
11100if (EQSI (tmp_tmp, 0)) {
11101 {
11102 USI opval = GET_H_SPR (((UINT) 272));
11103 sim_queue_pc_write (current_cpu, opval);
11104 written |= (1 << 6);
11105 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11106 }
11107}
11108}
11109}
11110}
11111}
11112
11113 abuf->written = written;
11114 return vpc;
11115#undef FLD
11116}
11117
11118/* fcblelr: fcblelr$pack $FCCi_2,$ccond,$hint */
11119
11120static SEM_PC
11121SEM_FN_NAME (frvbf,fcblelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11122{
11123#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11124 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11125 int UNUSED written = 0;
11126 IADDR UNUSED pc = abuf->addr;
11127 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11128
11129{
11130frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11131{
11132 SI tmp_tmp;
11133 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11134 {
11135 USI opval = tmp_tmp;
11136 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11137 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11138 }
11139if (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)))) {
11140if (EQSI (FLD (f_ccond), 0)) {
11141if (NESI (tmp_tmp, 0)) {
11142 {
11143 USI opval = GET_H_SPR (((UINT) 272));
11144 sim_queue_pc_write (current_cpu, opval);
11145 written |= (1 << 6);
11146 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11147 }
11148}
11149} else {
11150if (EQSI (tmp_tmp, 0)) {
11151 {
11152 USI opval = GET_H_SPR (((UINT) 272));
11153 sim_queue_pc_write (current_cpu, opval);
11154 written |= (1 << 6);
11155 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11156 }
11157}
11158}
11159}
11160}
11161}
11162
11163 abuf->written = written;
11164 return vpc;
11165#undef FLD
11166}
11167
11168/* fcbgtlr: fcbgtlr$pack $FCCi_2,$ccond,$hint */
11169
11170static SEM_PC
11171SEM_FN_NAME (frvbf,fcbgtlr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11172{
11173#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11174 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11175 int UNUSED written = 0;
11176 IADDR UNUSED pc = abuf->addr;
11177 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11178
11179{
11180frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11181{
11182 SI tmp_tmp;
11183 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11184 {
11185 USI opval = tmp_tmp;
11186 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11187 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11188 }
11189if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
11190if (EQSI (FLD (f_ccond), 0)) {
11191if (NESI (tmp_tmp, 0)) {
11192 {
11193 USI opval = GET_H_SPR (((UINT) 272));
11194 sim_queue_pc_write (current_cpu, opval);
11195 written |= (1 << 6);
11196 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11197 }
11198}
11199} else {
11200if (EQSI (tmp_tmp, 0)) {
11201 {
11202 USI opval = GET_H_SPR (((UINT) 272));
11203 sim_queue_pc_write (current_cpu, opval);
11204 written |= (1 << 6);
11205 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11206 }
11207}
11208}
11209}
11210}
11211}
11212
11213 abuf->written = written;
11214 return vpc;
11215#undef FLD
11216}
11217
11218/* fcbulelr: fcbulelr$pack $FCCi_2,$ccond,$hint */
11219
11220static SEM_PC
11221SEM_FN_NAME (frvbf,fcbulelr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11222{
11223#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11224 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11225 int UNUSED written = 0;
11226 IADDR UNUSED pc = abuf->addr;
11227 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11228
11229{
11230frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11231{
11232 SI tmp_tmp;
11233 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11234 {
11235 USI opval = tmp_tmp;
11236 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11237 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11238 }
11239if (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))))) {
11240if (EQSI (FLD (f_ccond), 0)) {
11241if (NESI (tmp_tmp, 0)) {
11242 {
11243 USI opval = GET_H_SPR (((UINT) 272));
11244 sim_queue_pc_write (current_cpu, opval);
11245 written |= (1 << 6);
11246 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11247 }
11248}
11249} else {
11250if (EQSI (tmp_tmp, 0)) {
11251 {
11252 USI opval = GET_H_SPR (((UINT) 272));
11253 sim_queue_pc_write (current_cpu, opval);
11254 written |= (1 << 6);
11255 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11256 }
11257}
11258}
11259}
11260}
11261}
11262
11263 abuf->written = written;
11264 return vpc;
11265#undef FLD
11266}
11267
11268/* fcbulr: fcbulr$pack $FCCi_2,$ccond,$hint */
11269
11270static SEM_PC
11271SEM_FN_NAME (frvbf,fcbulr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11272{
11273#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11275 int UNUSED written = 0;
11276 IADDR UNUSED pc = abuf->addr;
11277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11278
11279{
11280frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11281{
11282 SI tmp_tmp;
11283 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11284 {
11285 USI opval = tmp_tmp;
11286 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11287 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11288 }
11289if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
11290if (EQSI (FLD (f_ccond), 0)) {
11291if (NESI (tmp_tmp, 0)) {
11292 {
11293 USI opval = GET_H_SPR (((UINT) 272));
11294 sim_queue_pc_write (current_cpu, opval);
11295 written |= (1 << 6);
11296 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11297 }
11298}
11299} else {
11300if (EQSI (tmp_tmp, 0)) {
11301 {
11302 USI opval = GET_H_SPR (((UINT) 272));
11303 sim_queue_pc_write (current_cpu, opval);
11304 written |= (1 << 6);
11305 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11306 }
11307}
11308}
11309}
11310}
11311}
11312
11313 abuf->written = written;
11314 return vpc;
11315#undef FLD
11316}
11317
11318/* fcbolr: fcbolr$pack $FCCi_2,$ccond,$hint */
11319
11320static SEM_PC
11321SEM_FN_NAME (frvbf,fcbolr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11322{
11323#define FLD(f) abuf->fields.sfmt_fcbeqlr.f
11324 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11325 int UNUSED written = 0;
11326 IADDR UNUSED pc = abuf->addr;
11327 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11328
11329{
11330frvbf_model_branch (current_cpu, GET_H_SPR (((UINT) 272)), FLD (f_hint));
11331{
11332 SI tmp_tmp;
11333 tmp_tmp = SUBSI (GET_H_SPR (((UINT) 273)), 1);
11334 {
11335 USI opval = tmp_tmp;
11336 sim_queue_fn_si_write (current_cpu, frvbf_h_spr_set, ((UINT) 273), opval);
11337 TRACE_RESULT (current_cpu, abuf, "spr", 'x', opval);
11338 }
11339if (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))))) {
11340if (EQSI (FLD (f_ccond), 0)) {
11341if (NESI (tmp_tmp, 0)) {
11342 {
11343 USI opval = GET_H_SPR (((UINT) 272));
11344 sim_queue_pc_write (current_cpu, opval);
11345 written |= (1 << 6);
11346 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11347 }
11348}
11349} else {
11350if (EQSI (tmp_tmp, 0)) {
11351 {
11352 USI opval = GET_H_SPR (((UINT) 272));
11353 sim_queue_pc_write (current_cpu, opval);
11354 written |= (1 << 6);
11355 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11356 }
11357}
11358}
11359}
11360}
11361}
11362
11363 abuf->written = written;
11364 return vpc;
11365#undef FLD
11366}
11367
11368/* jmpl: jmpl$pack @($GRi,$GRj) */
11369
11370static SEM_PC
11371SEM_FN_NAME (frvbf,jmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11372{
11373#define FLD(f) abuf->fields.sfmt_cjmpl.f
11374 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11375 int UNUSED written = 0;
11376 IADDR UNUSED pc = abuf->addr;
11377 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11378
11379{
11380if (EQSI (FLD (f_LI), 1)) {
11381frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11382}
11383 {
11384 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11385 sim_queue_pc_write (current_cpu, opval);
11386 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11387 }
11388frvbf_model_branch (current_cpu, pc, 2);
11389}
11390
11391 return vpc;
11392#undef FLD
11393}
11394
11395/* calll: calll$pack @($GRi,$GRj) */
11396
11397static SEM_PC
11398SEM_FN_NAME (frvbf,calll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11399{
11400#define FLD(f) abuf->fields.sfmt_cjmpl.f
11401 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11402 int UNUSED written = 0;
11403 IADDR UNUSED pc = abuf->addr;
11404 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11405
11406{
11407if (EQSI (FLD (f_LI), 1)) {
11408frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11409}
11410 {
11411 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
11412 sim_queue_pc_write (current_cpu, opval);
11413 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11414 }
11415frvbf_model_branch (current_cpu, pc, 2);
11416}
11417
11418 return vpc;
11419#undef FLD
11420}
11421
11422/* jmpil: jmpil$pack @($GRi,$s12) */
11423
11424static SEM_PC
11425SEM_FN_NAME (frvbf,jmpil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11426{
11427#define FLD(f) abuf->fields.sfmt_jmpil.f
11428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11429 int UNUSED written = 0;
11430 IADDR UNUSED pc = abuf->addr;
11431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11432
11433{
11434if (EQSI (FLD (f_LI), 1)) {
11435frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11436}
11437 {
11438 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11439 sim_queue_pc_write (current_cpu, opval);
11440 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11441 }
11442frvbf_model_branch (current_cpu, pc, 2);
11443}
11444
11445 return vpc;
11446#undef FLD
11447}
11448
11449/* callil: callil$pack @($GRi,$s12) */
11450
11451static SEM_PC
11452SEM_FN_NAME (frvbf,callil) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11453{
11454#define FLD(f) abuf->fields.sfmt_jmpil.f
11455 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11456 int UNUSED written = 0;
11457 IADDR UNUSED pc = abuf->addr;
11458 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11459
11460{
11461if (EQSI (FLD (f_LI), 1)) {
11462frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11463}
11464 {
11465 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), FLD (f_d12)), 0xfffffffc);
11466 sim_queue_pc_write (current_cpu, opval);
11467 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11468 }
11469frvbf_model_branch (current_cpu, pc, 2);
11470}
11471
11472 return vpc;
11473#undef FLD
11474}
11475
11476/* call: call$pack $label24 */
11477
11478static SEM_PC
11479SEM_FN_NAME (frvbf,call) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11480{
11481#define FLD(f) abuf->fields.sfmt_call.f
11482 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11483 int UNUSED written = 0;
11484 IADDR UNUSED pc = abuf->addr;
11485 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11486
11487{
11488frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
11489 {
11490 USI opval = FLD (i_label24);
11491 sim_queue_pc_write (current_cpu, opval);
11492 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11493 }
11494frvbf_model_branch (current_cpu, pc, 2);
11495}
11496
11497 return vpc;
11498#undef FLD
11499}
11500
11501/* rett: rett$pack $debug */
11502
11503static SEM_PC
11504SEM_FN_NAME (frvbf,rett) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11505{
11506#define FLD(f) abuf->fields.sfmt_rett.f
11507 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11508 int UNUSED written = 0;
11509 IADDR UNUSED pc = abuf->addr;
11510 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11511
11512{
11513 {
11514 USI opval = frv_rett (current_cpu, pc, FLD (f_debug));
11515 sim_queue_pc_write (current_cpu, opval);
11516 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
11517 }
11518frvbf_model_branch (current_cpu, pc, 2);
11519}
11520
11521 return vpc;
11522#undef FLD
11523}
11524
11525/* rei: rei$pack $eir */
11526
11527static SEM_PC
11528SEM_FN_NAME (frvbf,rei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11529{
11530#define FLD(f) abuf->fields.fmt_empty.f
11531 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11532 int UNUSED written = 0;
11533 IADDR UNUSED pc = abuf->addr;
11534 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11535
11536((void) 0); /*nop*/
11537
11538 return vpc;
11539#undef FLD
11540}
11541
11542/* tra: tra$pack $GRi,$GRj */
11543
11544static SEM_PC
11545SEM_FN_NAME (frvbf,tra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11546{
11547#define FLD(f) abuf->fields.sfmt_ftne.f
11548 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11549 int UNUSED written = 0;
11550 IADDR UNUSED pc = abuf->addr;
11551 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11552
11553{
11554; /*clobber*/
11555; /*clobber*/
11556; /*clobber*/
11557; /*clobber*/
11558if (NEBI (CPU (h_psr_esr), 0)) {
11559{
11560; /*clobber*/
11561; /*clobber*/
11562; /*clobber*/
11563; /*clobber*/
11564}
11565}
11566frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11567}
11568
11569 abuf->written = written;
11570 return vpc;
11571#undef FLD
11572}
11573
11574/* tno: tno$pack */
11575
11576static SEM_PC
11577SEM_FN_NAME (frvbf,tno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11578{
11579#define FLD(f) abuf->fields.fmt_empty.f
11580 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11581 int UNUSED written = 0;
11582 IADDR UNUSED pc = abuf->addr;
11583 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11584
11585((void) 0); /*nop*/
11586
11587 return vpc;
11588#undef FLD
11589}
11590
11591/* teq: teq$pack $ICCi_2,$GRi,$GRj */
11592
11593static SEM_PC
11594SEM_FN_NAME (frvbf,teq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11595{
11596#define FLD(f) abuf->fields.sfmt_teq.f
11597 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11598 int UNUSED written = 0;
11599 IADDR UNUSED pc = abuf->addr;
11600 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11601
11602if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
11603{
11604; /*clobber*/
11605; /*clobber*/
11606; /*clobber*/
11607; /*clobber*/
11608if (NEBI (CPU (h_psr_esr), 0)) {
11609{
11610; /*clobber*/
11611; /*clobber*/
11612; /*clobber*/
11613; /*clobber*/
11614}
11615}
11616frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11617}
11618}
11619
11620 abuf->written = written;
11621 return vpc;
11622#undef FLD
11623}
11624
11625/* tne: tne$pack $ICCi_2,$GRi,$GRj */
11626
11627static SEM_PC
11628SEM_FN_NAME (frvbf,tne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11629{
11630#define FLD(f) abuf->fields.sfmt_teq.f
11631 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11632 int UNUSED written = 0;
11633 IADDR UNUSED pc = abuf->addr;
11634 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11635
11636if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11637{
11638; /*clobber*/
11639; /*clobber*/
11640; /*clobber*/
11641; /*clobber*/
11642if (NEBI (CPU (h_psr_esr), 0)) {
11643{
11644; /*clobber*/
11645; /*clobber*/
11646; /*clobber*/
11647; /*clobber*/
11648}
11649}
11650frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11651}
11652}
11653
11654 abuf->written = written;
11655 return vpc;
11656#undef FLD
11657}
11658
11659/* tle: tle$pack $ICCi_2,$GRi,$GRj */
11660
11661static SEM_PC
11662SEM_FN_NAME (frvbf,tle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11663{
11664#define FLD(f) abuf->fields.sfmt_teq.f
11665 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11666 int UNUSED written = 0;
11667 IADDR UNUSED pc = abuf->addr;
11668 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11669
11670if (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))))) {
11671{
11672; /*clobber*/
11673; /*clobber*/
11674; /*clobber*/
11675; /*clobber*/
11676if (NEBI (CPU (h_psr_esr), 0)) {
11677{
11678; /*clobber*/
11679; /*clobber*/
11680; /*clobber*/
11681; /*clobber*/
11682}
11683}
11684frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11685}
11686}
11687
11688 abuf->written = written;
11689 return vpc;
11690#undef FLD
11691}
11692
11693/* tgt: tgt$pack $ICCi_2,$GRi,$GRj */
11694
11695static SEM_PC
11696SEM_FN_NAME (frvbf,tgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11697{
11698#define FLD(f) abuf->fields.sfmt_teq.f
11699 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11700 int UNUSED written = 0;
11701 IADDR UNUSED pc = abuf->addr;
11702 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11703
11704if (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)))))) {
11705{
11706; /*clobber*/
11707; /*clobber*/
11708; /*clobber*/
11709; /*clobber*/
11710if (NEBI (CPU (h_psr_esr), 0)) {
11711{
11712; /*clobber*/
11713; /*clobber*/
11714; /*clobber*/
11715; /*clobber*/
11716}
11717}
11718frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11719}
11720}
11721
11722 abuf->written = written;
11723 return vpc;
11724#undef FLD
11725}
11726
11727/* tlt: tlt$pack $ICCi_2,$GRi,$GRj */
11728
11729static SEM_PC
11730SEM_FN_NAME (frvbf,tlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11731{
11732#define FLD(f) abuf->fields.sfmt_teq.f
11733 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11734 int UNUSED written = 0;
11735 IADDR UNUSED pc = abuf->addr;
11736 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11737
11738if (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)))) {
11739{
11740; /*clobber*/
11741; /*clobber*/
11742; /*clobber*/
11743; /*clobber*/
11744if (NEBI (CPU (h_psr_esr), 0)) {
11745{
11746; /*clobber*/
11747; /*clobber*/
11748; /*clobber*/
11749; /*clobber*/
11750}
11751}
11752frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11753}
11754}
11755
11756 abuf->written = written;
11757 return vpc;
11758#undef FLD
11759}
11760
11761/* tge: tge$pack $ICCi_2,$GRi,$GRj */
11762
11763static SEM_PC
11764SEM_FN_NAME (frvbf,tge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11765{
11766#define FLD(f) abuf->fields.sfmt_teq.f
11767 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11768 int UNUSED written = 0;
11769 IADDR UNUSED pc = abuf->addr;
11770 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11771
11772if (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))))) {
11773{
11774; /*clobber*/
11775; /*clobber*/
11776; /*clobber*/
11777; /*clobber*/
11778if (NEBI (CPU (h_psr_esr), 0)) {
11779{
11780; /*clobber*/
11781; /*clobber*/
11782; /*clobber*/
11783; /*clobber*/
11784}
11785}
11786frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11787}
11788}
11789
11790 abuf->written = written;
11791 return vpc;
11792#undef FLD
11793}
11794
11795/* tls: tls$pack $ICCi_2,$GRi,$GRj */
11796
11797static SEM_PC
11798SEM_FN_NAME (frvbf,tls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11799{
11800#define FLD(f) abuf->fields.sfmt_teq.f
11801 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11802 int UNUSED written = 0;
11803 IADDR UNUSED pc = abuf->addr;
11804 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11805
11806if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
11807{
11808; /*clobber*/
11809; /*clobber*/
11810; /*clobber*/
11811; /*clobber*/
11812if (NEBI (CPU (h_psr_esr), 0)) {
11813{
11814; /*clobber*/
11815; /*clobber*/
11816; /*clobber*/
11817; /*clobber*/
11818}
11819}
11820frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11821}
11822}
11823
11824 abuf->written = written;
11825 return vpc;
11826#undef FLD
11827}
11828
11829/* thi: thi$pack $ICCi_2,$GRi,$GRj */
11830
11831static SEM_PC
11832SEM_FN_NAME (frvbf,thi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11833{
11834#define FLD(f) abuf->fields.sfmt_teq.f
11835 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11836 int UNUSED written = 0;
11837 IADDR UNUSED pc = abuf->addr;
11838 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11839
11840if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
11841{
11842; /*clobber*/
11843; /*clobber*/
11844; /*clobber*/
11845; /*clobber*/
11846if (NEBI (CPU (h_psr_esr), 0)) {
11847{
11848; /*clobber*/
11849; /*clobber*/
11850; /*clobber*/
11851; /*clobber*/
11852}
11853}
11854frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11855}
11856}
11857
11858 abuf->written = written;
11859 return vpc;
11860#undef FLD
11861}
11862
11863/* tc: tc$pack $ICCi_2,$GRi,$GRj */
11864
11865static SEM_PC
11866SEM_FN_NAME (frvbf,tc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11867{
11868#define FLD(f) abuf->fields.sfmt_teq.f
11869 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11870 int UNUSED written = 0;
11871 IADDR UNUSED pc = abuf->addr;
11872 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11873
11874if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
11875{
11876; /*clobber*/
11877; /*clobber*/
11878; /*clobber*/
11879; /*clobber*/
11880if (NEBI (CPU (h_psr_esr), 0)) {
11881{
11882; /*clobber*/
11883; /*clobber*/
11884; /*clobber*/
11885; /*clobber*/
11886}
11887}
11888frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11889}
11890}
11891
11892 abuf->written = written;
11893 return vpc;
11894#undef FLD
11895}
11896
11897/* tnc: tnc$pack $ICCi_2,$GRi,$GRj */
11898
11899static SEM_PC
11900SEM_FN_NAME (frvbf,tnc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11901{
11902#define FLD(f) abuf->fields.sfmt_teq.f
11903 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11904 int UNUSED written = 0;
11905 IADDR UNUSED pc = abuf->addr;
11906 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11907
11908if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
11909{
11910; /*clobber*/
11911; /*clobber*/
11912; /*clobber*/
11913; /*clobber*/
11914if (NEBI (CPU (h_psr_esr), 0)) {
11915{
11916; /*clobber*/
11917; /*clobber*/
11918; /*clobber*/
11919; /*clobber*/
11920}
11921}
11922frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11923}
11924}
11925
11926 abuf->written = written;
11927 return vpc;
11928#undef FLD
11929}
11930
11931/* tn: tn$pack $ICCi_2,$GRi,$GRj */
11932
11933static SEM_PC
11934SEM_FN_NAME (frvbf,tn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11935{
11936#define FLD(f) abuf->fields.sfmt_teq.f
11937 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11938 int UNUSED written = 0;
11939 IADDR UNUSED pc = abuf->addr;
11940 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11941
11942if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
11943{
11944; /*clobber*/
11945; /*clobber*/
11946; /*clobber*/
11947; /*clobber*/
11948if (NEBI (CPU (h_psr_esr), 0)) {
11949{
11950; /*clobber*/
11951; /*clobber*/
11952; /*clobber*/
11953; /*clobber*/
11954}
11955}
11956frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11957}
11958}
11959
11960 abuf->written = written;
11961 return vpc;
11962#undef FLD
11963}
11964
11965/* tp: tp$pack $ICCi_2,$GRi,$GRj */
11966
11967static SEM_PC
11968SEM_FN_NAME (frvbf,tp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
11969{
11970#define FLD(f) abuf->fields.sfmt_teq.f
11971 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
11972 int UNUSED written = 0;
11973 IADDR UNUSED pc = abuf->addr;
11974 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
11975
11976if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
11977{
11978; /*clobber*/
11979; /*clobber*/
11980; /*clobber*/
11981; /*clobber*/
11982if (NEBI (CPU (h_psr_esr), 0)) {
11983{
11984; /*clobber*/
11985; /*clobber*/
11986; /*clobber*/
11987; /*clobber*/
11988}
11989}
11990frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
11991}
11992}
11993
11994 abuf->written = written;
11995 return vpc;
11996#undef FLD
11997}
11998
11999/* tv: tv$pack $ICCi_2,$GRi,$GRj */
12000
12001static SEM_PC
12002SEM_FN_NAME (frvbf,tv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12003{
12004#define FLD(f) abuf->fields.sfmt_teq.f
12005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12006 int UNUSED written = 0;
12007 IADDR UNUSED pc = abuf->addr;
12008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12009
12010if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
12011{
12012; /*clobber*/
12013; /*clobber*/
12014; /*clobber*/
12015; /*clobber*/
12016if (NEBI (CPU (h_psr_esr), 0)) {
12017{
12018; /*clobber*/
12019; /*clobber*/
12020; /*clobber*/
12021; /*clobber*/
12022}
12023}
12024frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12025}
12026}
12027
12028 abuf->written = written;
12029 return vpc;
12030#undef FLD
12031}
12032
12033/* tnv: tnv$pack $ICCi_2,$GRi,$GRj */
12034
12035static SEM_PC
12036SEM_FN_NAME (frvbf,tnv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12037{
12038#define FLD(f) abuf->fields.sfmt_teq.f
12039 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12040 int UNUSED written = 0;
12041 IADDR UNUSED pc = abuf->addr;
12042 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12043
12044if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
12045{
12046; /*clobber*/
12047; /*clobber*/
12048; /*clobber*/
12049; /*clobber*/
12050if (NEBI (CPU (h_psr_esr), 0)) {
12051{
12052; /*clobber*/
12053; /*clobber*/
12054; /*clobber*/
12055; /*clobber*/
12056}
12057}
12058frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12059}
12060}
12061
12062 abuf->written = written;
12063 return vpc;
12064#undef FLD
12065}
12066
12067/* ftra: ftra$pack $GRi,$GRj */
12068
12069static SEM_PC
12070SEM_FN_NAME (frvbf,ftra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12071{
12072#define FLD(f) abuf->fields.sfmt_ftne.f
12073 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12074 int UNUSED written = 0;
12075 IADDR UNUSED pc = abuf->addr;
12076 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12077
12078{
12079; /*clobber*/
12080; /*clobber*/
12081; /*clobber*/
12082; /*clobber*/
12083if (NEBI (CPU (h_psr_esr), 0)) {
12084{
12085; /*clobber*/
12086; /*clobber*/
12087; /*clobber*/
12088; /*clobber*/
12089}
12090}
12091frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12092}
12093
12094 abuf->written = written;
12095 return vpc;
12096#undef FLD
12097}
12098
12099/* ftno: ftno$pack */
12100
12101static SEM_PC
12102SEM_FN_NAME (frvbf,ftno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12103{
12104#define FLD(f) abuf->fields.fmt_empty.f
12105 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12106 int UNUSED written = 0;
12107 IADDR UNUSED pc = abuf->addr;
12108 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12109
12110((void) 0); /*nop*/
12111
12112 return vpc;
12113#undef FLD
12114}
12115
12116/* ftne: ftne$pack $FCCi_2,$GRi,$GRj */
12117
12118static SEM_PC
12119SEM_FN_NAME (frvbf,ftne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12120{
12121#define FLD(f) abuf->fields.sfmt_ftne.f
12122 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12123 int UNUSED written = 0;
12124 IADDR UNUSED pc = abuf->addr;
12125 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12126
12127if (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))))) {
12128{
12129; /*clobber*/
12130; /*clobber*/
12131; /*clobber*/
12132; /*clobber*/
12133if (NEBI (CPU (h_psr_esr), 0)) {
12134{
12135; /*clobber*/
12136; /*clobber*/
12137; /*clobber*/
12138; /*clobber*/
12139}
12140}
12141frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12142}
12143}
12144
12145 abuf->written = written;
12146 return vpc;
12147#undef FLD
12148}
12149
12150/* fteq: fteq$pack $FCCi_2,$GRi,$GRj */
12151
12152static SEM_PC
12153SEM_FN_NAME (frvbf,fteq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12154{
12155#define FLD(f) abuf->fields.sfmt_ftne.f
12156 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12157 int UNUSED written = 0;
12158 IADDR UNUSED pc = abuf->addr;
12159 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12160
12161if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
12162{
12163; /*clobber*/
12164; /*clobber*/
12165; /*clobber*/
12166; /*clobber*/
12167if (NEBI (CPU (h_psr_esr), 0)) {
12168{
12169; /*clobber*/
12170; /*clobber*/
12171; /*clobber*/
12172; /*clobber*/
12173}
12174}
12175frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12176}
12177}
12178
12179 abuf->written = written;
12180 return vpc;
12181#undef FLD
12182}
12183
12184/* ftlg: ftlg$pack $FCCi_2,$GRi,$GRj */
12185
12186static SEM_PC
12187SEM_FN_NAME (frvbf,ftlg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12188{
12189#define FLD(f) abuf->fields.sfmt_ftne.f
12190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12191 int UNUSED written = 0;
12192 IADDR UNUSED pc = abuf->addr;
12193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12194
12195if (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)))) {
12196{
12197; /*clobber*/
12198; /*clobber*/
12199; /*clobber*/
12200; /*clobber*/
12201if (NEBI (CPU (h_psr_esr), 0)) {
12202{
12203; /*clobber*/
12204; /*clobber*/
12205; /*clobber*/
12206; /*clobber*/
12207}
12208}
12209frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12210}
12211}
12212
12213 abuf->written = written;
12214 return vpc;
12215#undef FLD
12216}
12217
12218/* ftue: ftue$pack $FCCi_2,$GRi,$GRj */
12219
12220static SEM_PC
12221SEM_FN_NAME (frvbf,ftue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12222{
12223#define FLD(f) abuf->fields.sfmt_ftne.f
12224 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12225 int UNUSED written = 0;
12226 IADDR UNUSED pc = abuf->addr;
12227 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12228
12229if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12230{
12231; /*clobber*/
12232; /*clobber*/
12233; /*clobber*/
12234; /*clobber*/
12235if (NEBI (CPU (h_psr_esr), 0)) {
12236{
12237; /*clobber*/
12238; /*clobber*/
12239; /*clobber*/
12240; /*clobber*/
12241}
12242}
12243frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12244}
12245}
12246
12247 abuf->written = written;
12248 return vpc;
12249#undef FLD
12250}
12251
12252/* ftul: ftul$pack $FCCi_2,$GRi,$GRj */
12253
12254static SEM_PC
12255SEM_FN_NAME (frvbf,ftul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12256{
12257#define FLD(f) abuf->fields.sfmt_ftne.f
12258 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12259 int UNUSED written = 0;
12260 IADDR UNUSED pc = abuf->addr;
12261 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12262
12263if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12264{
12265; /*clobber*/
12266; /*clobber*/
12267; /*clobber*/
12268; /*clobber*/
12269if (NEBI (CPU (h_psr_esr), 0)) {
12270{
12271; /*clobber*/
12272; /*clobber*/
12273; /*clobber*/
12274; /*clobber*/
12275}
12276}
12277frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12278}
12279}
12280
12281 abuf->written = written;
12282 return vpc;
12283#undef FLD
12284}
12285
12286/* ftge: ftge$pack $FCCi_2,$GRi,$GRj */
12287
12288static SEM_PC
12289SEM_FN_NAME (frvbf,ftge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12290{
12291#define FLD(f) abuf->fields.sfmt_ftne.f
12292 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12293 int UNUSED written = 0;
12294 IADDR UNUSED pc = abuf->addr;
12295 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12296
12297if (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)))) {
12298{
12299; /*clobber*/
12300; /*clobber*/
12301; /*clobber*/
12302; /*clobber*/
12303if (NEBI (CPU (h_psr_esr), 0)) {
12304{
12305; /*clobber*/
12306; /*clobber*/
12307; /*clobber*/
12308; /*clobber*/
12309}
12310}
12311frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12312}
12313}
12314
12315 abuf->written = written;
12316 return vpc;
12317#undef FLD
12318}
12319
12320/* ftlt: ftlt$pack $FCCi_2,$GRi,$GRj */
12321
12322static SEM_PC
12323SEM_FN_NAME (frvbf,ftlt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12324{
12325#define FLD(f) abuf->fields.sfmt_ftne.f
12326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12327 int UNUSED written = 0;
12328 IADDR UNUSED pc = abuf->addr;
12329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12330
12331if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
12332{
12333; /*clobber*/
12334; /*clobber*/
12335; /*clobber*/
12336; /*clobber*/
12337if (NEBI (CPU (h_psr_esr), 0)) {
12338{
12339; /*clobber*/
12340; /*clobber*/
12341; /*clobber*/
12342; /*clobber*/
12343}
12344}
12345frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12346}
12347}
12348
12349 abuf->written = written;
12350 return vpc;
12351#undef FLD
12352}
12353
12354/* ftuge: ftuge$pack $FCCi_2,$GRi,$GRj */
12355
12356static SEM_PC
12357SEM_FN_NAME (frvbf,ftuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12358{
12359#define FLD(f) abuf->fields.sfmt_ftne.f
12360 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12361 int UNUSED written = 0;
12362 IADDR UNUSED pc = abuf->addr;
12363 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12364
12365if (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))))) {
12366{
12367; /*clobber*/
12368; /*clobber*/
12369; /*clobber*/
12370; /*clobber*/
12371if (NEBI (CPU (h_psr_esr), 0)) {
12372{
12373; /*clobber*/
12374; /*clobber*/
12375; /*clobber*/
12376; /*clobber*/
12377}
12378}
12379frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12380}
12381}
12382
12383 abuf->written = written;
12384 return vpc;
12385#undef FLD
12386}
12387
12388/* ftug: ftug$pack $FCCi_2,$GRi,$GRj */
12389
12390static SEM_PC
12391SEM_FN_NAME (frvbf,ftug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12392{
12393#define FLD(f) abuf->fields.sfmt_ftne.f
12394 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12395 int UNUSED written = 0;
12396 IADDR UNUSED pc = abuf->addr;
12397 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12398
12399if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
12400{
12401; /*clobber*/
12402; /*clobber*/
12403; /*clobber*/
12404; /*clobber*/
12405if (NEBI (CPU (h_psr_esr), 0)) {
12406{
12407; /*clobber*/
12408; /*clobber*/
12409; /*clobber*/
12410; /*clobber*/
12411}
12412}
12413frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12414}
12415}
12416
12417 abuf->written = written;
12418 return vpc;
12419#undef FLD
12420}
12421
12422/* ftle: ftle$pack $FCCi_2,$GRi,$GRj */
12423
12424static SEM_PC
12425SEM_FN_NAME (frvbf,ftle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12426{
12427#define FLD(f) abuf->fields.sfmt_ftne.f
12428 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12429 int UNUSED written = 0;
12430 IADDR UNUSED pc = abuf->addr;
12431 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12432
12433if (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)))) {
12434{
12435; /*clobber*/
12436; /*clobber*/
12437; /*clobber*/
12438; /*clobber*/
12439if (NEBI (CPU (h_psr_esr), 0)) {
12440{
12441; /*clobber*/
12442; /*clobber*/
12443; /*clobber*/
12444; /*clobber*/
12445}
12446}
12447frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12448}
12449}
12450
12451 abuf->written = written;
12452 return vpc;
12453#undef FLD
12454}
12455
12456/* ftgt: ftgt$pack $FCCi_2,$GRi,$GRj */
12457
12458static SEM_PC
12459SEM_FN_NAME (frvbf,ftgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12460{
12461#define FLD(f) abuf->fields.sfmt_ftne.f
12462 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12463 int UNUSED written = 0;
12464 IADDR UNUSED pc = abuf->addr;
12465 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12466
12467if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
12468{
12469; /*clobber*/
12470; /*clobber*/
12471; /*clobber*/
12472; /*clobber*/
12473if (NEBI (CPU (h_psr_esr), 0)) {
12474{
12475; /*clobber*/
12476; /*clobber*/
12477; /*clobber*/
12478; /*clobber*/
12479}
12480}
12481frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12482}
12483}
12484
12485 abuf->written = written;
12486 return vpc;
12487#undef FLD
12488}
12489
12490/* ftule: ftule$pack $FCCi_2,$GRi,$GRj */
12491
12492static SEM_PC
12493SEM_FN_NAME (frvbf,ftule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12494{
12495#define FLD(f) abuf->fields.sfmt_ftne.f
12496 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12497 int UNUSED written = 0;
12498 IADDR UNUSED pc = abuf->addr;
12499 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12500
12501if (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))))) {
12502{
12503; /*clobber*/
12504; /*clobber*/
12505; /*clobber*/
12506; /*clobber*/
12507if (NEBI (CPU (h_psr_esr), 0)) {
12508{
12509; /*clobber*/
12510; /*clobber*/
12511; /*clobber*/
12512; /*clobber*/
12513}
12514}
12515frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12516}
12517}
12518
12519 abuf->written = written;
12520 return vpc;
12521#undef FLD
12522}
12523
12524/* ftu: ftu$pack $FCCi_2,$GRi,$GRj */
12525
12526static SEM_PC
12527SEM_FN_NAME (frvbf,ftu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12528{
12529#define FLD(f) abuf->fields.sfmt_ftne.f
12530 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12531 int UNUSED written = 0;
12532 IADDR UNUSED pc = abuf->addr;
12533 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12534
12535if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
12536{
12537; /*clobber*/
12538; /*clobber*/
12539; /*clobber*/
12540; /*clobber*/
12541if (NEBI (CPU (h_psr_esr), 0)) {
12542{
12543; /*clobber*/
12544; /*clobber*/
12545; /*clobber*/
12546; /*clobber*/
12547}
12548}
12549frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12550}
12551}
12552
12553 abuf->written = written;
12554 return vpc;
12555#undef FLD
12556}
12557
12558/* fto: fto$pack $FCCi_2,$GRi,$GRj */
12559
12560static SEM_PC
12561SEM_FN_NAME (frvbf,fto) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12562{
12563#define FLD(f) abuf->fields.sfmt_ftne.f
12564 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12565 int UNUSED written = 0;
12566 IADDR UNUSED pc = abuf->addr;
12567 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12568
12569if (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))))) {
12570{
12571; /*clobber*/
12572; /*clobber*/
12573; /*clobber*/
12574; /*clobber*/
12575if (NEBI (CPU (h_psr_esr), 0)) {
12576{
12577; /*clobber*/
12578; /*clobber*/
12579; /*clobber*/
12580; /*clobber*/
12581}
12582}
12583frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)));
12584}
12585}
12586
12587 abuf->written = written;
12588 return vpc;
12589#undef FLD
12590}
12591
12592/* tira: tira$pack $GRi,$s12 */
12593
12594static SEM_PC
12595SEM_FN_NAME (frvbf,tira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12596{
12597#define FLD(f) abuf->fields.sfmt_ftine.f
12598 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12599 int UNUSED written = 0;
12600 IADDR UNUSED pc = abuf->addr;
12601 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12602
12603{
12604; /*clobber*/
12605; /*clobber*/
12606; /*clobber*/
12607; /*clobber*/
12608if (NEBI (CPU (h_psr_esr), 0)) {
12609{
12610; /*clobber*/
12611; /*clobber*/
12612; /*clobber*/
12613; /*clobber*/
12614}
12615}
12616frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12617}
12618
12619 abuf->written = written;
12620 return vpc;
12621#undef FLD
12622}
12623
12624/* tino: tino$pack */
12625
12626static SEM_PC
12627SEM_FN_NAME (frvbf,tino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12628{
12629#define FLD(f) abuf->fields.fmt_empty.f
12630 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12631 int UNUSED written = 0;
12632 IADDR UNUSED pc = abuf->addr;
12633 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12634
12635((void) 0); /*nop*/
12636
12637 return vpc;
12638#undef FLD
12639}
12640
12641/* tieq: tieq$pack $ICCi_2,$GRi,$s12 */
12642
12643static SEM_PC
12644SEM_FN_NAME (frvbf,tieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12645{
12646#define FLD(f) abuf->fields.sfmt_tieq.f
12647 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12648 int UNUSED written = 0;
12649 IADDR UNUSED pc = abuf->addr;
12650 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12651
12652if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))) {
12653{
12654; /*clobber*/
12655; /*clobber*/
12656; /*clobber*/
12657; /*clobber*/
12658if (NEBI (CPU (h_psr_esr), 0)) {
12659{
12660; /*clobber*/
12661; /*clobber*/
12662; /*clobber*/
12663; /*clobber*/
12664}
12665}
12666frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12667}
12668}
12669
12670 abuf->written = written;
12671 return vpc;
12672#undef FLD
12673}
12674
12675/* tine: tine$pack $ICCi_2,$GRi,$s12 */
12676
12677static SEM_PC
12678SEM_FN_NAME (frvbf,tine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12679{
12680#define FLD(f) abuf->fields.sfmt_tieq.f
12681 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12682 int UNUSED written = 0;
12683 IADDR UNUSED pc = abuf->addr;
12684 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12685
12686if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12687{
12688; /*clobber*/
12689; /*clobber*/
12690; /*clobber*/
12691; /*clobber*/
12692if (NEBI (CPU (h_psr_esr), 0)) {
12693{
12694; /*clobber*/
12695; /*clobber*/
12696; /*clobber*/
12697; /*clobber*/
12698}
12699}
12700frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12701}
12702}
12703
12704 abuf->written = written;
12705 return vpc;
12706#undef FLD
12707}
12708
12709/* tile: tile$pack $ICCi_2,$GRi,$s12 */
12710
12711static SEM_PC
12712SEM_FN_NAME (frvbf,tile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12713{
12714#define FLD(f) abuf->fields.sfmt_tieq.f
12715 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12716 int UNUSED written = 0;
12717 IADDR UNUSED pc = abuf->addr;
12718 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12719
12720if (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))))) {
12721{
12722; /*clobber*/
12723; /*clobber*/
12724; /*clobber*/
12725; /*clobber*/
12726if (NEBI (CPU (h_psr_esr), 0)) {
12727{
12728; /*clobber*/
12729; /*clobber*/
12730; /*clobber*/
12731; /*clobber*/
12732}
12733}
12734frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12735}
12736}
12737
12738 abuf->written = written;
12739 return vpc;
12740#undef FLD
12741}
12742
12743/* tigt: tigt$pack $ICCi_2,$GRi,$s12 */
12744
12745static SEM_PC
12746SEM_FN_NAME (frvbf,tigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12747{
12748#define FLD(f) abuf->fields.sfmt_tieq.f
12749 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12750 int UNUSED written = 0;
12751 IADDR UNUSED pc = abuf->addr;
12752 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12753
12754if (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)))))) {
12755{
12756; /*clobber*/
12757; /*clobber*/
12758; /*clobber*/
12759; /*clobber*/
12760if (NEBI (CPU (h_psr_esr), 0)) {
12761{
12762; /*clobber*/
12763; /*clobber*/
12764; /*clobber*/
12765; /*clobber*/
12766}
12767}
12768frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12769}
12770}
12771
12772 abuf->written = written;
12773 return vpc;
12774#undef FLD
12775}
12776
12777/* tilt: tilt$pack $ICCi_2,$GRi,$s12 */
12778
12779static SEM_PC
12780SEM_FN_NAME (frvbf,tilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12781{
12782#define FLD(f) abuf->fields.sfmt_tieq.f
12783 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12784 int UNUSED written = 0;
12785 IADDR UNUSED pc = abuf->addr;
12786 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12787
12788if (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)))) {
12789{
12790; /*clobber*/
12791; /*clobber*/
12792; /*clobber*/
12793; /*clobber*/
12794if (NEBI (CPU (h_psr_esr), 0)) {
12795{
12796; /*clobber*/
12797; /*clobber*/
12798; /*clobber*/
12799; /*clobber*/
12800}
12801}
12802frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12803}
12804}
12805
12806 abuf->written = written;
12807 return vpc;
12808#undef FLD
12809}
12810
12811/* tige: tige$pack $ICCi_2,$GRi,$s12 */
12812
12813static SEM_PC
12814SEM_FN_NAME (frvbf,tige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12815{
12816#define FLD(f) abuf->fields.sfmt_tieq.f
12817 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12818 int UNUSED written = 0;
12819 IADDR UNUSED pc = abuf->addr;
12820 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12821
12822if (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))))) {
12823{
12824; /*clobber*/
12825; /*clobber*/
12826; /*clobber*/
12827; /*clobber*/
12828if (NEBI (CPU (h_psr_esr), 0)) {
12829{
12830; /*clobber*/
12831; /*clobber*/
12832; /*clobber*/
12833; /*clobber*/
12834}
12835}
12836frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12837}
12838}
12839
12840 abuf->written = written;
12841 return vpc;
12842#undef FLD
12843}
12844
12845/* tils: tils$pack $ICCi_2,$GRi,$s12 */
12846
12847static SEM_PC
12848SEM_FN_NAME (frvbf,tils) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12849{
12850#define FLD(f) abuf->fields.sfmt_tieq.f
12851 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12852 int UNUSED written = 0;
12853 IADDR UNUSED pc = abuf->addr;
12854 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12855
12856if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2)))) {
12857{
12858; /*clobber*/
12859; /*clobber*/
12860; /*clobber*/
12861; /*clobber*/
12862if (NEBI (CPU (h_psr_esr), 0)) {
12863{
12864; /*clobber*/
12865; /*clobber*/
12866; /*clobber*/
12867; /*clobber*/
12868}
12869}
12870frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12871}
12872}
12873
12874 abuf->written = written;
12875 return vpc;
12876#undef FLD
12877}
12878
12879/* tihi: tihi$pack $ICCi_2,$GRi,$s12 */
12880
12881static SEM_PC
12882SEM_FN_NAME (frvbf,tihi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12883{
12884#define FLD(f) abuf->fields.sfmt_tieq.f
12885 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12886 int UNUSED written = 0;
12887 IADDR UNUSED pc = abuf->addr;
12888 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12889
12890if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 4), 2))))) {
12891{
12892; /*clobber*/
12893; /*clobber*/
12894; /*clobber*/
12895; /*clobber*/
12896if (NEBI (CPU (h_psr_esr), 0)) {
12897{
12898; /*clobber*/
12899; /*clobber*/
12900; /*clobber*/
12901; /*clobber*/
12902}
12903}
12904frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12905}
12906}
12907
12908 abuf->written = written;
12909 return vpc;
12910#undef FLD
12911}
12912
12913/* tic: tic$pack $ICCi_2,$GRi,$s12 */
12914
12915static SEM_PC
12916SEM_FN_NAME (frvbf,tic) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12917{
12918#define FLD(f) abuf->fields.sfmt_tieq.f
12919 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12920 int UNUSED written = 0;
12921 IADDR UNUSED pc = abuf->addr;
12922 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12923
12924if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1))) {
12925{
12926; /*clobber*/
12927; /*clobber*/
12928; /*clobber*/
12929; /*clobber*/
12930if (NEBI (CPU (h_psr_esr), 0)) {
12931{
12932; /*clobber*/
12933; /*clobber*/
12934; /*clobber*/
12935; /*clobber*/
12936}
12937}
12938frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12939}
12940}
12941
12942 abuf->written = written;
12943 return vpc;
12944#undef FLD
12945}
12946
12947/* tinc: tinc$pack $ICCi_2,$GRi,$s12 */
12948
12949static SEM_PC
12950SEM_FN_NAME (frvbf,tinc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12951{
12952#define FLD(f) abuf->fields.sfmt_tieq.f
12953 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12954 int UNUSED written = 0;
12955 IADDR UNUSED pc = abuf->addr;
12956 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12957
12958if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 1)))) {
12959{
12960; /*clobber*/
12961; /*clobber*/
12962; /*clobber*/
12963; /*clobber*/
12964if (NEBI (CPU (h_psr_esr), 0)) {
12965{
12966; /*clobber*/
12967; /*clobber*/
12968; /*clobber*/
12969; /*clobber*/
12970}
12971}
12972frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
12973}
12974}
12975
12976 abuf->written = written;
12977 return vpc;
12978#undef FLD
12979}
12980
12981/* tin: tin$pack $ICCi_2,$GRi,$s12 */
12982
12983static SEM_PC
12984SEM_FN_NAME (frvbf,tin) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
12985{
12986#define FLD(f) abuf->fields.sfmt_tieq.f
12987 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
12988 int UNUSED written = 0;
12989 IADDR UNUSED pc = abuf->addr;
12990 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
12991
12992if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3))) {
12993{
12994; /*clobber*/
12995; /*clobber*/
12996; /*clobber*/
12997; /*clobber*/
12998if (NEBI (CPU (h_psr_esr), 0)) {
12999{
13000; /*clobber*/
13001; /*clobber*/
13002; /*clobber*/
13003; /*clobber*/
13004}
13005}
13006frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13007}
13008}
13009
13010 abuf->written = written;
13011 return vpc;
13012#undef FLD
13013}
13014
13015/* tip: tip$pack $ICCi_2,$GRi,$s12 */
13016
13017static SEM_PC
13018SEM_FN_NAME (frvbf,tip) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13019{
13020#define FLD(f) abuf->fields.sfmt_tieq.f
13021 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13022 int UNUSED written = 0;
13023 IADDR UNUSED pc = abuf->addr;
13024 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13025
13026if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 8), 3)))) {
13027{
13028; /*clobber*/
13029; /*clobber*/
13030; /*clobber*/
13031; /*clobber*/
13032if (NEBI (CPU (h_psr_esr), 0)) {
13033{
13034; /*clobber*/
13035; /*clobber*/
13036; /*clobber*/
13037; /*clobber*/
13038}
13039}
13040frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13041}
13042}
13043
13044 abuf->written = written;
13045 return vpc;
13046#undef FLD
13047}
13048
13049/* tiv: tiv$pack $ICCi_2,$GRi,$s12 */
13050
13051static SEM_PC
13052SEM_FN_NAME (frvbf,tiv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13053{
13054#define FLD(f) abuf->fields.sfmt_tieq.f
13055 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13056 int UNUSED written = 0;
13057 IADDR UNUSED pc = abuf->addr;
13058 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13059
13060if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1))) {
13061{
13062; /*clobber*/
13063; /*clobber*/
13064; /*clobber*/
13065; /*clobber*/
13066if (NEBI (CPU (h_psr_esr), 0)) {
13067{
13068; /*clobber*/
13069; /*clobber*/
13070; /*clobber*/
13071; /*clobber*/
13072}
13073}
13074frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13075}
13076}
13077
13078 abuf->written = written;
13079 return vpc;
13080#undef FLD
13081}
13082
13083/* tinv: tinv$pack $ICCi_2,$GRi,$s12 */
13084
13085static SEM_PC
13086SEM_FN_NAME (frvbf,tinv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13087{
13088#define FLD(f) abuf->fields.sfmt_tieq.f
13089 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13090 int UNUSED written = 0;
13091 IADDR UNUSED pc = abuf->addr;
13092 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13093
13094if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_2)]), 2), 1)))) {
13095{
13096; /*clobber*/
13097; /*clobber*/
13098; /*clobber*/
13099; /*clobber*/
13100if (NEBI (CPU (h_psr_esr), 0)) {
13101{
13102; /*clobber*/
13103; /*clobber*/
13104; /*clobber*/
13105; /*clobber*/
13106}
13107}
13108frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13109}
13110}
13111
13112 abuf->written = written;
13113 return vpc;
13114#undef FLD
13115}
13116
13117/* ftira: ftira$pack $GRi,$s12 */
13118
13119static SEM_PC
13120SEM_FN_NAME (frvbf,ftira) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13121{
13122#define FLD(f) abuf->fields.sfmt_ftine.f
13123 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13124 int UNUSED written = 0;
13125 IADDR UNUSED pc = abuf->addr;
13126 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13127
13128{
13129; /*clobber*/
13130; /*clobber*/
13131; /*clobber*/
13132; /*clobber*/
13133if (NEBI (CPU (h_psr_esr), 0)) {
13134{
13135; /*clobber*/
13136; /*clobber*/
13137; /*clobber*/
13138; /*clobber*/
13139}
13140}
13141frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13142}
13143
13144 abuf->written = written;
13145 return vpc;
13146#undef FLD
13147}
13148
13149/* ftino: ftino$pack */
13150
13151static SEM_PC
13152SEM_FN_NAME (frvbf,ftino) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13153{
13154#define FLD(f) abuf->fields.fmt_empty.f
13155 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13156 int UNUSED written = 0;
13157 IADDR UNUSED pc = abuf->addr;
13158 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13159
13160((void) 0); /*nop*/
13161
13162 return vpc;
13163#undef FLD
13164}
13165
13166/* ftine: ftine$pack $FCCi_2,$GRi,$s12 */
13167
13168static SEM_PC
13169SEM_FN_NAME (frvbf,ftine) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13170{
13171#define FLD(f) abuf->fields.sfmt_ftine.f
13172 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13173 int UNUSED written = 0;
13174 IADDR UNUSED pc = abuf->addr;
13175 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13176
13177if (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))))) {
13178{
13179; /*clobber*/
13180; /*clobber*/
13181; /*clobber*/
13182; /*clobber*/
13183if (NEBI (CPU (h_psr_esr), 0)) {
13184{
13185; /*clobber*/
13186; /*clobber*/
13187; /*clobber*/
13188; /*clobber*/
13189}
13190}
13191frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13192}
13193}
13194
13195 abuf->written = written;
13196 return vpc;
13197#undef FLD
13198}
13199
13200/* ftieq: ftieq$pack $FCCi_2,$GRi,$s12 */
13201
13202static SEM_PC
13203SEM_FN_NAME (frvbf,ftieq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13204{
13205#define FLD(f) abuf->fields.sfmt_ftine.f
13206 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13207 int UNUSED written = 0;
13208 IADDR UNUSED pc = abuf->addr;
13209 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13210
13211if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3))) {
13212{
13213; /*clobber*/
13214; /*clobber*/
13215; /*clobber*/
13216; /*clobber*/
13217if (NEBI (CPU (h_psr_esr), 0)) {
13218{
13219; /*clobber*/
13220; /*clobber*/
13221; /*clobber*/
13222; /*clobber*/
13223}
13224}
13225frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13226}
13227}
13228
13229 abuf->written = written;
13230 return vpc;
13231#undef FLD
13232}
13233
13234/* ftilg: ftilg$pack $FCCi_2,$GRi,$s12 */
13235
13236static SEM_PC
13237SEM_FN_NAME (frvbf,ftilg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13238{
13239#define FLD(f) abuf->fields.sfmt_ftine.f
13240 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13241 int UNUSED written = 0;
13242 IADDR UNUSED pc = abuf->addr;
13243 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13244
13245if (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)))) {
13246{
13247; /*clobber*/
13248; /*clobber*/
13249; /*clobber*/
13250; /*clobber*/
13251if (NEBI (CPU (h_psr_esr), 0)) {
13252{
13253; /*clobber*/
13254; /*clobber*/
13255; /*clobber*/
13256; /*clobber*/
13257}
13258}
13259frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13260}
13261}
13262
13263 abuf->written = written;
13264 return vpc;
13265#undef FLD
13266}
13267
13268/* ftiue: ftiue$pack $FCCi_2,$GRi,$s12 */
13269
13270static SEM_PC
13271SEM_FN_NAME (frvbf,ftiue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13272{
13273#define FLD(f) abuf->fields.sfmt_ftine.f
13274 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13275 int UNUSED written = 0;
13276 IADDR UNUSED pc = abuf->addr;
13277 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13278
13279if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13280{
13281; /*clobber*/
13282; /*clobber*/
13283; /*clobber*/
13284; /*clobber*/
13285if (NEBI (CPU (h_psr_esr), 0)) {
13286{
13287; /*clobber*/
13288; /*clobber*/
13289; /*clobber*/
13290; /*clobber*/
13291}
13292}
13293frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13294}
13295}
13296
13297 abuf->written = written;
13298 return vpc;
13299#undef FLD
13300}
13301
13302/* ftiul: ftiul$pack $FCCi_2,$GRi,$s12 */
13303
13304static SEM_PC
13305SEM_FN_NAME (frvbf,ftiul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13306{
13307#define FLD(f) abuf->fields.sfmt_ftine.f
13308 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13309 int UNUSED written = 0;
13310 IADDR UNUSED pc = abuf->addr;
13311 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13312
13313if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13314{
13315; /*clobber*/
13316; /*clobber*/
13317; /*clobber*/
13318; /*clobber*/
13319if (NEBI (CPU (h_psr_esr), 0)) {
13320{
13321; /*clobber*/
13322; /*clobber*/
13323; /*clobber*/
13324; /*clobber*/
13325}
13326}
13327frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13328}
13329}
13330
13331 abuf->written = written;
13332 return vpc;
13333#undef FLD
13334}
13335
13336/* ftige: ftige$pack $FCCi_2,$GRi,$s12 */
13337
13338static SEM_PC
13339SEM_FN_NAME (frvbf,ftige) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13340{
13341#define FLD(f) abuf->fields.sfmt_ftine.f
13342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13343 int UNUSED written = 0;
13344 IADDR UNUSED pc = abuf->addr;
13345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13346
13347if (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)))) {
13348{
13349; /*clobber*/
13350; /*clobber*/
13351; /*clobber*/
13352; /*clobber*/
13353if (NEBI (CPU (h_psr_esr), 0)) {
13354{
13355; /*clobber*/
13356; /*clobber*/
13357; /*clobber*/
13358; /*clobber*/
13359}
13360}
13361frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13362}
13363}
13364
13365 abuf->written = written;
13366 return vpc;
13367#undef FLD
13368}
13369
13370/* ftilt: ftilt$pack $FCCi_2,$GRi,$s12 */
13371
13372static SEM_PC
13373SEM_FN_NAME (frvbf,ftilt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13374{
13375#define FLD(f) abuf->fields.sfmt_ftine.f
13376 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13377 int UNUSED written = 0;
13378 IADDR UNUSED pc = abuf->addr;
13379 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13380
13381if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 4), 2))) {
13382{
13383; /*clobber*/
13384; /*clobber*/
13385; /*clobber*/
13386; /*clobber*/
13387if (NEBI (CPU (h_psr_esr), 0)) {
13388{
13389; /*clobber*/
13390; /*clobber*/
13391; /*clobber*/
13392; /*clobber*/
13393}
13394}
13395frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13396}
13397}
13398
13399 abuf->written = written;
13400 return vpc;
13401#undef FLD
13402}
13403
13404/* ftiuge: ftiuge$pack $FCCi_2,$GRi,$s12 */
13405
13406static SEM_PC
13407SEM_FN_NAME (frvbf,ftiuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13408{
13409#define FLD(f) abuf->fields.sfmt_ftine.f
13410 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13411 int UNUSED written = 0;
13412 IADDR UNUSED pc = abuf->addr;
13413 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13414
13415if (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))))) {
13416{
13417; /*clobber*/
13418; /*clobber*/
13419; /*clobber*/
13420; /*clobber*/
13421if (NEBI (CPU (h_psr_esr), 0)) {
13422{
13423; /*clobber*/
13424; /*clobber*/
13425; /*clobber*/
13426; /*clobber*/
13427}
13428}
13429frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13430}
13431}
13432
13433 abuf->written = written;
13434 return vpc;
13435#undef FLD
13436}
13437
13438/* ftiug: ftiug$pack $FCCi_2,$GRi,$s12 */
13439
13440static SEM_PC
13441SEM_FN_NAME (frvbf,ftiug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13442{
13443#define FLD(f) abuf->fields.sfmt_ftine.f
13444 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13445 int UNUSED written = 0;
13446 IADDR UNUSED pc = abuf->addr;
13447 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13448
13449if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1)))) {
13450{
13451; /*clobber*/
13452; /*clobber*/
13453; /*clobber*/
13454; /*clobber*/
13455if (NEBI (CPU (h_psr_esr), 0)) {
13456{
13457; /*clobber*/
13458; /*clobber*/
13459; /*clobber*/
13460; /*clobber*/
13461}
13462}
13463frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13464}
13465}
13466
13467 abuf->written = written;
13468 return vpc;
13469#undef FLD
13470}
13471
13472/* ftile: ftile$pack $FCCi_2,$GRi,$s12 */
13473
13474static SEM_PC
13475SEM_FN_NAME (frvbf,ftile) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13476{
13477#define FLD(f) abuf->fields.sfmt_ftine.f
13478 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13479 int UNUSED written = 0;
13480 IADDR UNUSED pc = abuf->addr;
13481 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13482
13483if (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)))) {
13484{
13485; /*clobber*/
13486; /*clobber*/
13487; /*clobber*/
13488; /*clobber*/
13489if (NEBI (CPU (h_psr_esr), 0)) {
13490{
13491; /*clobber*/
13492; /*clobber*/
13493; /*clobber*/
13494; /*clobber*/
13495}
13496}
13497frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13498}
13499}
13500
13501 abuf->written = written;
13502 return vpc;
13503#undef FLD
13504}
13505
13506/* ftigt: ftigt$pack $FCCi_2,$GRi,$s12 */
13507
13508static SEM_PC
13509SEM_FN_NAME (frvbf,ftigt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13510{
13511#define FLD(f) abuf->fields.sfmt_ftine.f
13512 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13513 int UNUSED written = 0;
13514 IADDR UNUSED pc = abuf->addr;
13515 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13516
13517if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 2), 1))) {
13518{
13519; /*clobber*/
13520; /*clobber*/
13521; /*clobber*/
13522; /*clobber*/
13523if (NEBI (CPU (h_psr_esr), 0)) {
13524{
13525; /*clobber*/
13526; /*clobber*/
13527; /*clobber*/
13528; /*clobber*/
13529}
13530}
13531frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13532}
13533}
13534
13535 abuf->written = written;
13536 return vpc;
13537#undef FLD
13538}
13539
13540/* ftiule: ftiule$pack $FCCi_2,$GRi,$s12 */
13541
13542static SEM_PC
13543SEM_FN_NAME (frvbf,ftiule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13544{
13545#define FLD(f) abuf->fields.sfmt_ftine.f
13546 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13547 int UNUSED written = 0;
13548 IADDR UNUSED pc = abuf->addr;
13549 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13550
13551if (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))))) {
13552{
13553; /*clobber*/
13554; /*clobber*/
13555; /*clobber*/
13556; /*clobber*/
13557if (NEBI (CPU (h_psr_esr), 0)) {
13558{
13559; /*clobber*/
13560; /*clobber*/
13561; /*clobber*/
13562; /*clobber*/
13563}
13564}
13565frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13566}
13567}
13568
13569 abuf->written = written;
13570 return vpc;
13571#undef FLD
13572}
13573
13574/* ftiu: ftiu$pack $FCCi_2,$GRi,$s12 */
13575
13576static SEM_PC
13577SEM_FN_NAME (frvbf,ftiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13578{
13579#define FLD(f) abuf->fields.sfmt_ftine.f
13580 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13581 int UNUSED written = 0;
13582 IADDR UNUSED pc = abuf->addr;
13583 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13584
13585if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_2)]), 1))) {
13586{
13587; /*clobber*/
13588; /*clobber*/
13589; /*clobber*/
13590; /*clobber*/
13591if (NEBI (CPU (h_psr_esr), 0)) {
13592{
13593; /*clobber*/
13594; /*clobber*/
13595; /*clobber*/
13596; /*clobber*/
13597}
13598}
13599frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13600}
13601}
13602
13603 abuf->written = written;
13604 return vpc;
13605#undef FLD
13606}
13607
13608/* ftio: ftio$pack $FCCi_2,$GRi,$s12 */
13609
13610static SEM_PC
13611SEM_FN_NAME (frvbf,ftio) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13612{
13613#define FLD(f) abuf->fields.sfmt_ftine.f
13614 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13615 int UNUSED written = 0;
13616 IADDR UNUSED pc = abuf->addr;
13617 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13618
13619if (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))))) {
13620{
13621; /*clobber*/
13622; /*clobber*/
13623; /*clobber*/
13624; /*clobber*/
13625if (NEBI (CPU (h_psr_esr), 0)) {
13626{
13627; /*clobber*/
13628; /*clobber*/
13629; /*clobber*/
13630; /*clobber*/
13631}
13632}
13633frv_itrap (current_cpu, pc, GET_H_GR (FLD (f_GRi)), FLD (f_d12));
13634}
13635}
13636
13637 abuf->written = written;
13638 return vpc;
13639#undef FLD
13640}
13641
13642/* break: break$pack */
13643
13644static SEM_PC
13645SEM_FN_NAME (frvbf,break) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13646{
13647#define FLD(f) abuf->fields.sfmt_break.f
13648 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13649 int UNUSED written = 0;
13650 IADDR UNUSED pc = abuf->addr;
13651 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13652
13653{
13654; /*clobber*/
13655; /*clobber*/
13656; /*clobber*/
13657; /*clobber*/
13658; /*clobber*/
13659; /*clobber*/
13660frv_break (current_cpu);
13661}
13662
13663 return vpc;
13664#undef FLD
13665}
13666
13667/* mtrap: mtrap$pack */
13668
13669static SEM_PC
13670SEM_FN_NAME (frvbf,mtrap) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13671{
13672#define FLD(f) abuf->fields.fmt_empty.f
13673 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13674 int UNUSED written = 0;
13675 IADDR UNUSED pc = abuf->addr;
13676 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13677
13678frv_mtrap (current_cpu);
13679
13680 return vpc;
13681#undef FLD
13682}
13683
13684/* andcr: andcr$pack $CRi,$CRj,$CRk */
13685
13686static SEM_PC
13687SEM_FN_NAME (frvbf,andcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13688{
13689#define FLD(f) abuf->fields.sfmt_andcr.f
13690 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13691 int UNUSED written = 0;
13692 IADDR UNUSED pc = abuf->addr;
13693 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13694
13695 {
13696 UQI opval = frvbf_cr_logic (current_cpu, 0, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13697 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13698 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13699 }
13700
13701 return vpc;
13702#undef FLD
13703}
13704
13705/* orcr: orcr$pack $CRi,$CRj,$CRk */
13706
13707static SEM_PC
13708SEM_FN_NAME (frvbf,orcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13709{
13710#define FLD(f) abuf->fields.sfmt_andcr.f
13711 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13712 int UNUSED written = 0;
13713 IADDR UNUSED pc = abuf->addr;
13714 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13715
13716 {
13717 UQI opval = frvbf_cr_logic (current_cpu, 1, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13718 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13719 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13720 }
13721
13722 return vpc;
13723#undef FLD
13724}
13725
13726/* xorcr: xorcr$pack $CRi,$CRj,$CRk */
13727
13728static SEM_PC
13729SEM_FN_NAME (frvbf,xorcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13730{
13731#define FLD(f) abuf->fields.sfmt_andcr.f
13732 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13733 int UNUSED written = 0;
13734 IADDR UNUSED pc = abuf->addr;
13735 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13736
13737 {
13738 UQI opval = frvbf_cr_logic (current_cpu, 2, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13739 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13740 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13741 }
13742
13743 return vpc;
13744#undef FLD
13745}
13746
13747/* nandcr: nandcr$pack $CRi,$CRj,$CRk */
13748
13749static SEM_PC
13750SEM_FN_NAME (frvbf,nandcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13751{
13752#define FLD(f) abuf->fields.sfmt_andcr.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
13758 {
13759 UQI opval = frvbf_cr_logic (current_cpu, 3, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13760 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13761 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13762 }
13763
13764 return vpc;
13765#undef FLD
13766}
13767
13768/* norcr: norcr$pack $CRi,$CRj,$CRk */
13769
13770static SEM_PC
13771SEM_FN_NAME (frvbf,norcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13772{
13773#define FLD(f) abuf->fields.sfmt_andcr.f
13774 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13775 int UNUSED written = 0;
13776 IADDR UNUSED pc = abuf->addr;
13777 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13778
13779 {
13780 UQI opval = frvbf_cr_logic (current_cpu, 4, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13781 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13782 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13783 }
13784
13785 return vpc;
13786#undef FLD
13787}
13788
13789/* andncr: andncr$pack $CRi,$CRj,$CRk */
13790
13791static SEM_PC
13792SEM_FN_NAME (frvbf,andncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13793{
13794#define FLD(f) abuf->fields.sfmt_andcr.f
13795 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13796 int UNUSED written = 0;
13797 IADDR UNUSED pc = abuf->addr;
13798 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13799
13800 {
13801 UQI opval = frvbf_cr_logic (current_cpu, 5, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13802 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13803 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13804 }
13805
13806 return vpc;
13807#undef FLD
13808}
13809
13810/* orncr: orncr$pack $CRi,$CRj,$CRk */
13811
13812static SEM_PC
13813SEM_FN_NAME (frvbf,orncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13814{
13815#define FLD(f) abuf->fields.sfmt_andcr.f
13816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13817 int UNUSED written = 0;
13818 IADDR UNUSED pc = abuf->addr;
13819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13820
13821 {
13822 UQI opval = frvbf_cr_logic (current_cpu, 6, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13823 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13824 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13825 }
13826
13827 return vpc;
13828#undef FLD
13829}
13830
13831/* nandncr: nandncr$pack $CRi,$CRj,$CRk */
13832
13833static SEM_PC
13834SEM_FN_NAME (frvbf,nandncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13835{
13836#define FLD(f) abuf->fields.sfmt_andcr.f
13837 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13838 int UNUSED written = 0;
13839 IADDR UNUSED pc = abuf->addr;
13840 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13841
13842 {
13843 UQI opval = frvbf_cr_logic (current_cpu, 7, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13844 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13845 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13846 }
13847
13848 return vpc;
13849#undef FLD
13850}
13851
13852/* norncr: norncr$pack $CRi,$CRj,$CRk */
13853
13854static SEM_PC
13855SEM_FN_NAME (frvbf,norncr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13856{
13857#define FLD(f) abuf->fields.sfmt_andcr.f
13858 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13859 int UNUSED written = 0;
13860 IADDR UNUSED pc = abuf->addr;
13861 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13862
13863 {
13864 UQI opval = frvbf_cr_logic (current_cpu, 8, CPU (h_cccr[FLD (f_CRi)]), CPU (h_cccr[FLD (f_CRj)]));
13865 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13866 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13867 }
13868
13869 return vpc;
13870#undef FLD
13871}
13872
13873/* notcr: notcr$pack $CRj,$CRk */
13874
13875static SEM_PC
13876SEM_FN_NAME (frvbf,notcr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13877{
13878#define FLD(f) abuf->fields.sfmt_andcr.f
13879 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13880 int UNUSED written = 0;
13881 IADDR UNUSED pc = abuf->addr;
13882 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13883
13884 {
13885 UQI opval = XORQI (CPU (h_cccr[FLD (f_CRj)]), 1);
13886 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRk)]), opval);
13887 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13888 }
13889
13890 return vpc;
13891#undef FLD
13892}
13893
13894/* ckra: ckra$pack $CRj_int */
13895
13896static SEM_PC
13897SEM_FN_NAME (frvbf,ckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13898{
13899#define FLD(f) abuf->fields.sfmt_cckeq.f
13900 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13901 int UNUSED written = 0;
13902 IADDR UNUSED pc = abuf->addr;
13903 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13904
13905 {
13906 UQI opval = 3;
13907 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13908 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13909 }
13910
13911 return vpc;
13912#undef FLD
13913}
13914
13915/* ckno: ckno$pack $CRj_int */
13916
13917static SEM_PC
13918SEM_FN_NAME (frvbf,ckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13919{
13920#define FLD(f) abuf->fields.sfmt_cckeq.f
13921 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13922 int UNUSED written = 0;
13923 IADDR UNUSED pc = abuf->addr;
13924 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13925
13926 {
13927 UQI opval = 2;
13928 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13929 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13930 }
13931
13932 return vpc;
13933#undef FLD
13934}
13935
13936/* ckeq: ckeq$pack $ICCi_3,$CRj_int */
13937
13938static SEM_PC
13939SEM_FN_NAME (frvbf,ckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13940{
13941#define FLD(f) abuf->fields.sfmt_cckeq.f
13942 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13943 int UNUSED written = 0;
13944 IADDR UNUSED pc = abuf->addr;
13945 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13946
13947if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
13948 {
13949 UQI opval = 3;
13950 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13951 written |= (1 << 1);
13952 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13953 }
13954} else {
13955 {
13956 UQI opval = 2;
13957 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13958 written |= (1 << 1);
13959 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13960 }
13961}
13962
13963 abuf->written = written;
13964 return vpc;
13965#undef FLD
13966}
13967
13968/* ckne: ckne$pack $ICCi_3,$CRj_int */
13969
13970static SEM_PC
13971SEM_FN_NAME (frvbf,ckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
13972{
13973#define FLD(f) abuf->fields.sfmt_cckeq.f
13974 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
13975 int UNUSED written = 0;
13976 IADDR UNUSED pc = abuf->addr;
13977 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
13978
13979if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
13980 {
13981 UQI opval = 3;
13982 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13983 written |= (1 << 1);
13984 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13985 }
13986} else {
13987 {
13988 UQI opval = 2;
13989 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
13990 written |= (1 << 1);
13991 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
13992 }
13993}
13994
13995 abuf->written = written;
13996 return vpc;
13997#undef FLD
13998}
13999
14000/* ckle: ckle$pack $ICCi_3,$CRj_int */
14001
14002static SEM_PC
14003SEM_FN_NAME (frvbf,ckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14004{
14005#define FLD(f) abuf->fields.sfmt_cckeq.f
14006 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14007 int UNUSED written = 0;
14008 IADDR UNUSED pc = abuf->addr;
14009 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14010
14011if (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))))) {
14012 {
14013 UQI opval = 3;
14014 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14015 written |= (1 << 1);
14016 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14017 }
14018} else {
14019 {
14020 UQI opval = 2;
14021 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14022 written |= (1 << 1);
14023 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14024 }
14025}
14026
14027 abuf->written = written;
14028 return vpc;
14029#undef FLD
14030}
14031
14032/* ckgt: ckgt$pack $ICCi_3,$CRj_int */
14033
14034static SEM_PC
14035SEM_FN_NAME (frvbf,ckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14036{
14037#define FLD(f) abuf->fields.sfmt_cckeq.f
14038 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14039 int UNUSED written = 0;
14040 IADDR UNUSED pc = abuf->addr;
14041 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14042
14043if (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)))))) {
14044 {
14045 UQI opval = 3;
14046 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14047 written |= (1 << 1);
14048 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14049 }
14050} else {
14051 {
14052 UQI opval = 2;
14053 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14054 written |= (1 << 1);
14055 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14056 }
14057}
14058
14059 abuf->written = written;
14060 return vpc;
14061#undef FLD
14062}
14063
14064/* cklt: cklt$pack $ICCi_3,$CRj_int */
14065
14066static SEM_PC
14067SEM_FN_NAME (frvbf,cklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14068{
14069#define FLD(f) abuf->fields.sfmt_cckeq.f
14070 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14071 int UNUSED written = 0;
14072 IADDR UNUSED pc = abuf->addr;
14073 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14074
14075if (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)))) {
14076 {
14077 UQI opval = 3;
14078 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14079 written |= (1 << 1);
14080 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14081 }
14082} else {
14083 {
14084 UQI opval = 2;
14085 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14086 written |= (1 << 1);
14087 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14088 }
14089}
14090
14091 abuf->written = written;
14092 return vpc;
14093#undef FLD
14094}
14095
14096/* ckge: ckge$pack $ICCi_3,$CRj_int */
14097
14098static SEM_PC
14099SEM_FN_NAME (frvbf,ckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14100{
14101#define FLD(f) abuf->fields.sfmt_cckeq.f
14102 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14103 int UNUSED written = 0;
14104 IADDR UNUSED pc = abuf->addr;
14105 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14106
14107if (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))))) {
14108 {
14109 UQI opval = 3;
14110 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14111 written |= (1 << 1);
14112 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14113 }
14114} else {
14115 {
14116 UQI opval = 2;
14117 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14118 written |= (1 << 1);
14119 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14120 }
14121}
14122
14123 abuf->written = written;
14124 return vpc;
14125#undef FLD
14126}
14127
14128/* ckls: ckls$pack $ICCi_3,$CRj_int */
14129
14130static SEM_PC
14131SEM_FN_NAME (frvbf,ckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14132{
14133#define FLD(f) abuf->fields.sfmt_cckeq.f
14134 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14135 int UNUSED written = 0;
14136 IADDR UNUSED pc = abuf->addr;
14137 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14138
14139if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14140 {
14141 UQI opval = 3;
14142 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14143 written |= (1 << 1);
14144 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14145 }
14146} else {
14147 {
14148 UQI opval = 2;
14149 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14150 written |= (1 << 1);
14151 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14152 }
14153}
14154
14155 abuf->written = written;
14156 return vpc;
14157#undef FLD
14158}
14159
14160/* ckhi: ckhi$pack $ICCi_3,$CRj_int */
14161
14162static SEM_PC
14163SEM_FN_NAME (frvbf,ckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14164{
14165#define FLD(f) abuf->fields.sfmt_cckeq.f
14166 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14167 int UNUSED written = 0;
14168 IADDR UNUSED pc = abuf->addr;
14169 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14170
14171if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
14172 {
14173 UQI opval = 3;
14174 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14175 written |= (1 << 1);
14176 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14177 }
14178} else {
14179 {
14180 UQI opval = 2;
14181 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14182 written |= (1 << 1);
14183 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14184 }
14185}
14186
14187 abuf->written = written;
14188 return vpc;
14189#undef FLD
14190}
14191
14192/* ckc: ckc$pack $ICCi_3,$CRj_int */
14193
14194static SEM_PC
14195SEM_FN_NAME (frvbf,ckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14196{
14197#define FLD(f) abuf->fields.sfmt_cckeq.f
14198 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14199 int UNUSED written = 0;
14200 IADDR UNUSED pc = abuf->addr;
14201 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14202
14203if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
14204 {
14205 UQI opval = 3;
14206 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14207 written |= (1 << 1);
14208 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14209 }
14210} else {
14211 {
14212 UQI opval = 2;
14213 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14214 written |= (1 << 1);
14215 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14216 }
14217}
14218
14219 abuf->written = written;
14220 return vpc;
14221#undef FLD
14222}
14223
14224/* cknc: cknc$pack $ICCi_3,$CRj_int */
14225
14226static SEM_PC
14227SEM_FN_NAME (frvbf,cknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14228{
14229#define FLD(f) abuf->fields.sfmt_cckeq.f
14230 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14231 int UNUSED written = 0;
14232 IADDR UNUSED pc = abuf->addr;
14233 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14234
14235if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
14236 {
14237 UQI opval = 3;
14238 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14239 written |= (1 << 1);
14240 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14241 }
14242} else {
14243 {
14244 UQI opval = 2;
14245 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14246 written |= (1 << 1);
14247 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14248 }
14249}
14250
14251 abuf->written = written;
14252 return vpc;
14253#undef FLD
14254}
14255
14256/* ckn: ckn$pack $ICCi_3,$CRj_int */
14257
14258static SEM_PC
14259SEM_FN_NAME (frvbf,ckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14260{
14261#define FLD(f) abuf->fields.sfmt_cckeq.f
14262 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14263 int UNUSED written = 0;
14264 IADDR UNUSED pc = abuf->addr;
14265 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14266
14267if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
14268 {
14269 UQI opval = 3;
14270 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14271 written |= (1 << 1);
14272 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14273 }
14274} else {
14275 {
14276 UQI opval = 2;
14277 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14278 written |= (1 << 1);
14279 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14280 }
14281}
14282
14283 abuf->written = written;
14284 return vpc;
14285#undef FLD
14286}
14287
14288/* ckp: ckp$pack $ICCi_3,$CRj_int */
14289
14290static SEM_PC
14291SEM_FN_NAME (frvbf,ckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14292{
14293#define FLD(f) abuf->fields.sfmt_cckeq.f
14294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14295 int UNUSED written = 0;
14296 IADDR UNUSED pc = abuf->addr;
14297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14298
14299if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
14300 {
14301 UQI opval = 3;
14302 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14303 written |= (1 << 1);
14304 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14305 }
14306} else {
14307 {
14308 UQI opval = 2;
14309 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14310 written |= (1 << 1);
14311 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14312 }
14313}
14314
14315 abuf->written = written;
14316 return vpc;
14317#undef FLD
14318}
14319
14320/* ckv: ckv$pack $ICCi_3,$CRj_int */
14321
14322static SEM_PC
14323SEM_FN_NAME (frvbf,ckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14324{
14325#define FLD(f) abuf->fields.sfmt_cckeq.f
14326 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14327 int UNUSED written = 0;
14328 IADDR UNUSED pc = abuf->addr;
14329 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14330
14331if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
14332 {
14333 UQI opval = 3;
14334 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14335 written |= (1 << 1);
14336 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14337 }
14338} else {
14339 {
14340 UQI opval = 2;
14341 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14342 written |= (1 << 1);
14343 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14344 }
14345}
14346
14347 abuf->written = written;
14348 return vpc;
14349#undef FLD
14350}
14351
14352/* cknv: cknv$pack $ICCi_3,$CRj_int */
14353
14354static SEM_PC
14355SEM_FN_NAME (frvbf,cknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14356{
14357#define FLD(f) abuf->fields.sfmt_cckeq.f
14358 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14359 int UNUSED written = 0;
14360 IADDR UNUSED pc = abuf->addr;
14361 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14362
14363if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
14364 {
14365 UQI opval = 3;
14366 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14367 written |= (1 << 1);
14368 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14369 }
14370} else {
14371 {
14372 UQI opval = 2;
14373 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14374 written |= (1 << 1);
14375 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14376 }
14377}
14378
14379 abuf->written = written;
14380 return vpc;
14381#undef FLD
14382}
14383
14384/* fckra: fckra$pack $CRj_float */
14385
14386static SEM_PC
14387SEM_FN_NAME (frvbf,fckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14388{
14389#define FLD(f) abuf->fields.sfmt_cfckne.f
14390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14391 int UNUSED written = 0;
14392 IADDR UNUSED pc = abuf->addr;
14393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14394
14395 {
14396 UQI opval = 3;
14397 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14398 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14399 }
14400
14401 return vpc;
14402#undef FLD
14403}
14404
14405/* fckno: fckno$pack $CRj_float */
14406
14407static SEM_PC
14408SEM_FN_NAME (frvbf,fckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14409{
14410#define FLD(f) abuf->fields.sfmt_cfckne.f
14411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14412 int UNUSED written = 0;
14413 IADDR UNUSED pc = abuf->addr;
14414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14415
14416 {
14417 UQI opval = 2;
14418 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14419 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14420 }
14421
14422 return vpc;
14423#undef FLD
14424}
14425
14426/* fckne: fckne$pack $FCCi_3,$CRj_float */
14427
14428static SEM_PC
14429SEM_FN_NAME (frvbf,fckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14430{
14431#define FLD(f) abuf->fields.sfmt_cfckne.f
14432 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14433 int UNUSED written = 0;
14434 IADDR UNUSED pc = abuf->addr;
14435 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14436
14437if (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))))) {
14438 {
14439 UQI opval = 3;
14440 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14441 written |= (1 << 1);
14442 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14443 }
14444} else {
14445 {
14446 UQI opval = 2;
14447 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14448 written |= (1 << 1);
14449 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14450 }
14451}
14452
14453 abuf->written = written;
14454 return vpc;
14455#undef FLD
14456}
14457
14458/* fckeq: fckeq$pack $FCCi_3,$CRj_float */
14459
14460static SEM_PC
14461SEM_FN_NAME (frvbf,fckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14462{
14463#define FLD(f) abuf->fields.sfmt_cfckne.f
14464 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14465 int UNUSED written = 0;
14466 IADDR UNUSED pc = abuf->addr;
14467 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14468
14469if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
14470 {
14471 UQI opval = 3;
14472 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14473 written |= (1 << 1);
14474 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14475 }
14476} else {
14477 {
14478 UQI opval = 2;
14479 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14480 written |= (1 << 1);
14481 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14482 }
14483}
14484
14485 abuf->written = written;
14486 return vpc;
14487#undef FLD
14488}
14489
14490/* fcklg: fcklg$pack $FCCi_3,$CRj_float */
14491
14492static SEM_PC
14493SEM_FN_NAME (frvbf,fcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14494{
14495#define FLD(f) abuf->fields.sfmt_cfckne.f
14496 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14497 int UNUSED written = 0;
14498 IADDR UNUSED pc = abuf->addr;
14499 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14500
14501if (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)))) {
14502 {
14503 UQI opval = 3;
14504 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14505 written |= (1 << 1);
14506 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14507 }
14508} else {
14509 {
14510 UQI opval = 2;
14511 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14512 written |= (1 << 1);
14513 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14514 }
14515}
14516
14517 abuf->written = written;
14518 return vpc;
14519#undef FLD
14520}
14521
14522/* fckue: fckue$pack $FCCi_3,$CRj_float */
14523
14524static SEM_PC
14525SEM_FN_NAME (frvbf,fckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14526{
14527#define FLD(f) abuf->fields.sfmt_cfckne.f
14528 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14529 int UNUSED written = 0;
14530 IADDR UNUSED pc = abuf->addr;
14531 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14532
14533if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14534 {
14535 UQI opval = 3;
14536 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14537 written |= (1 << 1);
14538 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14539 }
14540} else {
14541 {
14542 UQI opval = 2;
14543 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14544 written |= (1 << 1);
14545 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14546 }
14547}
14548
14549 abuf->written = written;
14550 return vpc;
14551#undef FLD
14552}
14553
14554/* fckul: fckul$pack $FCCi_3,$CRj_float */
14555
14556static SEM_PC
14557SEM_FN_NAME (frvbf,fckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14558{
14559#define FLD(f) abuf->fields.sfmt_cfckne.f
14560 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14561 int UNUSED written = 0;
14562 IADDR UNUSED pc = abuf->addr;
14563 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14564
14565if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14566 {
14567 UQI opval = 3;
14568 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14569 written |= (1 << 1);
14570 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14571 }
14572} else {
14573 {
14574 UQI opval = 2;
14575 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14576 written |= (1 << 1);
14577 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14578 }
14579}
14580
14581 abuf->written = written;
14582 return vpc;
14583#undef FLD
14584}
14585
14586/* fckge: fckge$pack $FCCi_3,$CRj_float */
14587
14588static SEM_PC
14589SEM_FN_NAME (frvbf,fckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14590{
14591#define FLD(f) abuf->fields.sfmt_cfckne.f
14592 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14593 int UNUSED written = 0;
14594 IADDR UNUSED pc = abuf->addr;
14595 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14596
14597if (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)))) {
14598 {
14599 UQI opval = 3;
14600 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14601 written |= (1 << 1);
14602 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14603 }
14604} else {
14605 {
14606 UQI opval = 2;
14607 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14608 written |= (1 << 1);
14609 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14610 }
14611}
14612
14613 abuf->written = written;
14614 return vpc;
14615#undef FLD
14616}
14617
14618/* fcklt: fcklt$pack $FCCi_3,$CRj_float */
14619
14620static SEM_PC
14621SEM_FN_NAME (frvbf,fcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14622{
14623#define FLD(f) abuf->fields.sfmt_cfckne.f
14624 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14625 int UNUSED written = 0;
14626 IADDR UNUSED pc = abuf->addr;
14627 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14628
14629if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
14630 {
14631 UQI opval = 3;
14632 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14633 written |= (1 << 1);
14634 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14635 }
14636} else {
14637 {
14638 UQI opval = 2;
14639 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14640 written |= (1 << 1);
14641 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14642 }
14643}
14644
14645 abuf->written = written;
14646 return vpc;
14647#undef FLD
14648}
14649
14650/* fckuge: fckuge$pack $FCCi_3,$CRj_float */
14651
14652static SEM_PC
14653SEM_FN_NAME (frvbf,fckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14654{
14655#define FLD(f) abuf->fields.sfmt_cfckne.f
14656 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14657 int UNUSED written = 0;
14658 IADDR UNUSED pc = abuf->addr;
14659 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14660
14661if (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))))) {
14662 {
14663 UQI opval = 3;
14664 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14665 written |= (1 << 1);
14666 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14667 }
14668} else {
14669 {
14670 UQI opval = 2;
14671 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14672 written |= (1 << 1);
14673 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14674 }
14675}
14676
14677 abuf->written = written;
14678 return vpc;
14679#undef FLD
14680}
14681
14682/* fckug: fckug$pack $FCCi_3,$CRj_float */
14683
14684static SEM_PC
14685SEM_FN_NAME (frvbf,fckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14686{
14687#define FLD(f) abuf->fields.sfmt_cfckne.f
14688 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14689 int UNUSED written = 0;
14690 IADDR UNUSED pc = abuf->addr;
14691 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14692
14693if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
14694 {
14695 UQI opval = 3;
14696 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14697 written |= (1 << 1);
14698 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14699 }
14700} else {
14701 {
14702 UQI opval = 2;
14703 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14704 written |= (1 << 1);
14705 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14706 }
14707}
14708
14709 abuf->written = written;
14710 return vpc;
14711#undef FLD
14712}
14713
14714/* fckle: fckle$pack $FCCi_3,$CRj_float */
14715
14716static SEM_PC
14717SEM_FN_NAME (frvbf,fckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14718{
14719#define FLD(f) abuf->fields.sfmt_cfckne.f
14720 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14721 int UNUSED written = 0;
14722 IADDR UNUSED pc = abuf->addr;
14723 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14724
14725if (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)))) {
14726 {
14727 UQI opval = 3;
14728 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14729 written |= (1 << 1);
14730 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14731 }
14732} else {
14733 {
14734 UQI opval = 2;
14735 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14736 written |= (1 << 1);
14737 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14738 }
14739}
14740
14741 abuf->written = written;
14742 return vpc;
14743#undef FLD
14744}
14745
14746/* fckgt: fckgt$pack $FCCi_3,$CRj_float */
14747
14748static SEM_PC
14749SEM_FN_NAME (frvbf,fckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14750{
14751#define FLD(f) abuf->fields.sfmt_cfckne.f
14752 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14753 int UNUSED written = 0;
14754 IADDR UNUSED pc = abuf->addr;
14755 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14756
14757if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
14758 {
14759 UQI opval = 3;
14760 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14761 written |= (1 << 1);
14762 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14763 }
14764} else {
14765 {
14766 UQI opval = 2;
14767 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14768 written |= (1 << 1);
14769 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14770 }
14771}
14772
14773 abuf->written = written;
14774 return vpc;
14775#undef FLD
14776}
14777
14778/* fckule: fckule$pack $FCCi_3,$CRj_float */
14779
14780static SEM_PC
14781SEM_FN_NAME (frvbf,fckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14782{
14783#define FLD(f) abuf->fields.sfmt_cfckne.f
14784 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14785 int UNUSED written = 0;
14786 IADDR UNUSED pc = abuf->addr;
14787 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14788
14789if (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))))) {
14790 {
14791 UQI opval = 3;
14792 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14793 written |= (1 << 1);
14794 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14795 }
14796} else {
14797 {
14798 UQI opval = 2;
14799 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14800 written |= (1 << 1);
14801 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14802 }
14803}
14804
14805 abuf->written = written;
14806 return vpc;
14807#undef FLD
14808}
14809
14810/* fcku: fcku$pack $FCCi_3,$CRj_float */
14811
14812static SEM_PC
14813SEM_FN_NAME (frvbf,fcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14814{
14815#define FLD(f) abuf->fields.sfmt_cfckne.f
14816 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14817 int UNUSED written = 0;
14818 IADDR UNUSED pc = abuf->addr;
14819 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14820
14821if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
14822 {
14823 UQI opval = 3;
14824 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14825 written |= (1 << 1);
14826 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14827 }
14828} else {
14829 {
14830 UQI opval = 2;
14831 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14832 written |= (1 << 1);
14833 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14834 }
14835}
14836
14837 abuf->written = written;
14838 return vpc;
14839#undef FLD
14840}
14841
14842/* fcko: fcko$pack $FCCi_3,$CRj_float */
14843
14844static SEM_PC
14845SEM_FN_NAME (frvbf,fcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14846{
14847#define FLD(f) abuf->fields.sfmt_cfckne.f
14848 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14849 int UNUSED written = 0;
14850 IADDR UNUSED pc = abuf->addr;
14851 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14852
14853if (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))))) {
14854 {
14855 UQI opval = 3;
14856 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14857 written |= (1 << 1);
14858 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14859 }
14860} else {
14861 {
14862 UQI opval = 2;
14863 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
14864 written |= (1 << 1);
14865 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14866 }
14867}
14868
14869 abuf->written = written;
14870 return vpc;
14871#undef FLD
14872}
14873
14874/* cckra: cckra$pack $CRj_int,$CCi,$cond */
14875
14876static SEM_PC
14877SEM_FN_NAME (frvbf,cckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14878{
14879#define FLD(f) abuf->fields.sfmt_cckeq.f
14880 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14881 int UNUSED written = 0;
14882 IADDR UNUSED pc = abuf->addr;
14883 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14884
14885if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14886 {
14887 UQI opval = 3;
14888 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14889 written |= (1 << 2);
14890 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14891 }
14892} else {
14893 {
14894 UQI opval = 0;
14895 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14896 written |= (1 << 2);
14897 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14898 }
14899}
14900
14901 abuf->written = written;
14902 return vpc;
14903#undef FLD
14904}
14905
14906/* cckno: cckno$pack $CRj_int,$CCi,$cond */
14907
14908static SEM_PC
14909SEM_FN_NAME (frvbf,cckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14910{
14911#define FLD(f) abuf->fields.sfmt_cckeq.f
14912 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14913 int UNUSED written = 0;
14914 IADDR UNUSED pc = abuf->addr;
14915 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14916
14917if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14918 {
14919 UQI opval = 2;
14920 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14921 written |= (1 << 2);
14922 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14923 }
14924} else {
14925 {
14926 UQI opval = 0;
14927 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14928 written |= (1 << 2);
14929 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14930 }
14931}
14932
14933 abuf->written = written;
14934 return vpc;
14935#undef FLD
14936}
14937
14938/* cckeq: cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
14939
14940static SEM_PC
14941SEM_FN_NAME (frvbf,cckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14942{
14943#define FLD(f) abuf->fields.sfmt_cckeq.f
14944 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14945 int UNUSED written = 0;
14946 IADDR UNUSED pc = abuf->addr;
14947 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14948
14949if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14950if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))) {
14951 {
14952 UQI opval = 3;
14953 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14954 written |= (1 << 3);
14955 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14956 }
14957} else {
14958 {
14959 UQI opval = 2;
14960 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14961 written |= (1 << 3);
14962 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14963 }
14964}
14965} else {
14966 {
14967 UQI opval = 0;
14968 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14969 written |= (1 << 3);
14970 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14971 }
14972}
14973
14974 abuf->written = written;
14975 return vpc;
14976#undef FLD
14977}
14978
14979/* cckne: cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
14980
14981static SEM_PC
14982SEM_FN_NAME (frvbf,cckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
14983{
14984#define FLD(f) abuf->fields.sfmt_cckeq.f
14985 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
14986 int UNUSED written = 0;
14987 IADDR UNUSED pc = abuf->addr;
14988 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
14989
14990if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
14991if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
14992 {
14993 UQI opval = 3;
14994 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
14995 written |= (1 << 3);
14996 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
14997 }
14998} else {
14999 {
15000 UQI opval = 2;
15001 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15002 written |= (1 << 3);
15003 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15004 }
15005}
15006} else {
15007 {
15008 UQI opval = 0;
15009 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15010 written |= (1 << 3);
15011 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15012 }
15013}
15014
15015 abuf->written = written;
15016 return vpc;
15017#undef FLD
15018}
15019
15020/* cckle: cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
15021
15022static SEM_PC
15023SEM_FN_NAME (frvbf,cckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15024{
15025#define FLD(f) abuf->fields.sfmt_cckeq.f
15026 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15027 int UNUSED written = 0;
15028 IADDR UNUSED pc = abuf->addr;
15029 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15030
15031if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15032if (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))))) {
15033 {
15034 UQI opval = 3;
15035 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15036 written |= (1 << 3);
15037 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15038 }
15039} else {
15040 {
15041 UQI opval = 2;
15042 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15043 written |= (1 << 3);
15044 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15045 }
15046}
15047} else {
15048 {
15049 UQI opval = 0;
15050 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15051 written |= (1 << 3);
15052 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15053 }
15054}
15055
15056 abuf->written = written;
15057 return vpc;
15058#undef FLD
15059}
15060
15061/* cckgt: cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15062
15063static SEM_PC
15064SEM_FN_NAME (frvbf,cckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15065{
15066#define FLD(f) abuf->fields.sfmt_cckeq.f
15067 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15068 int UNUSED written = 0;
15069 IADDR UNUSED pc = abuf->addr;
15070 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15071
15072if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15073if (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)))))) {
15074 {
15075 UQI opval = 3;
15076 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15077 written |= (1 << 3);
15078 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15079 }
15080} else {
15081 {
15082 UQI opval = 2;
15083 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15084 written |= (1 << 3);
15085 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15086 }
15087}
15088} else {
15089 {
15090 UQI opval = 0;
15091 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15092 written |= (1 << 3);
15093 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15094 }
15095}
15096
15097 abuf->written = written;
15098 return vpc;
15099#undef FLD
15100}
15101
15102/* ccklt: ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
15103
15104static SEM_PC
15105SEM_FN_NAME (frvbf,ccklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15106{
15107#define FLD(f) abuf->fields.sfmt_cckeq.f
15108 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15109 int UNUSED written = 0;
15110 IADDR UNUSED pc = abuf->addr;
15111 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15112
15113if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15114if (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)))) {
15115 {
15116 UQI opval = 3;
15117 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15118 written |= (1 << 3);
15119 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15120 }
15121} else {
15122 {
15123 UQI opval = 2;
15124 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15125 written |= (1 << 3);
15126 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15127 }
15128}
15129} else {
15130 {
15131 UQI opval = 0;
15132 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15133 written |= (1 << 3);
15134 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15135 }
15136}
15137
15138 abuf->written = written;
15139 return vpc;
15140#undef FLD
15141}
15142
15143/* cckge: cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
15144
15145static SEM_PC
15146SEM_FN_NAME (frvbf,cckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15147{
15148#define FLD(f) abuf->fields.sfmt_cckeq.f
15149 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15150 int UNUSED written = 0;
15151 IADDR UNUSED pc = abuf->addr;
15152 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15153
15154if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15155if (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))))) {
15156 {
15157 UQI opval = 3;
15158 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15159 written |= (1 << 3);
15160 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15161 }
15162} else {
15163 {
15164 UQI opval = 2;
15165 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15166 written |= (1 << 3);
15167 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15168 }
15169}
15170} else {
15171 {
15172 UQI opval = 0;
15173 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15174 written |= (1 << 3);
15175 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15176 }
15177}
15178
15179 abuf->written = written;
15180 return vpc;
15181#undef FLD
15182}
15183
15184/* cckls: cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
15185
15186static SEM_PC
15187SEM_FN_NAME (frvbf,cckls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15188{
15189#define FLD(f) abuf->fields.sfmt_cckeq.f
15190 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15191 int UNUSED written = 0;
15192 IADDR UNUSED pc = abuf->addr;
15193 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15194
15195if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15196if (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2)))) {
15197 {
15198 UQI opval = 3;
15199 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15200 written |= (1 << 3);
15201 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15202 }
15203} else {
15204 {
15205 UQI opval = 2;
15206 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15207 written |= (1 << 3);
15208 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15209 }
15210}
15211} else {
15212 {
15213 UQI opval = 0;
15214 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15215 written |= (1 << 3);
15216 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15217 }
15218}
15219
15220 abuf->written = written;
15221 return vpc;
15222#undef FLD
15223}
15224
15225/* cckhi: cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
15226
15227static SEM_PC
15228SEM_FN_NAME (frvbf,cckhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15229{
15230#define FLD(f) abuf->fields.sfmt_cckeq.f
15231 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15232 int UNUSED written = 0;
15233 IADDR UNUSED pc = abuf->addr;
15234 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15235
15236if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15237if (NOTBI (ORIF (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)), TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 4), 2))))) {
15238 {
15239 UQI opval = 3;
15240 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15241 written |= (1 << 3);
15242 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15243 }
15244} else {
15245 {
15246 UQI opval = 2;
15247 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15248 written |= (1 << 3);
15249 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15250 }
15251}
15252} else {
15253 {
15254 UQI opval = 0;
15255 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15256 written |= (1 << 3);
15257 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15258 }
15259}
15260
15261 abuf->written = written;
15262 return vpc;
15263#undef FLD
15264}
15265
15266/* cckc: cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15267
15268static SEM_PC
15269SEM_FN_NAME (frvbf,cckc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15270{
15271#define FLD(f) abuf->fields.sfmt_cckeq.f
15272 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15273 int UNUSED written = 0;
15274 IADDR UNUSED pc = abuf->addr;
15275 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15276
15277if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15278if (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1))) {
15279 {
15280 UQI opval = 3;
15281 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15282 written |= (1 << 3);
15283 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15284 }
15285} else {
15286 {
15287 UQI opval = 2;
15288 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15289 written |= (1 << 3);
15290 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15291 }
15292}
15293} else {
15294 {
15295 UQI opval = 0;
15296 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15297 written |= (1 << 3);
15298 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15299 }
15300}
15301
15302 abuf->written = written;
15303 return vpc;
15304#undef FLD
15305}
15306
15307/* ccknc: ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
15308
15309static SEM_PC
15310SEM_FN_NAME (frvbf,ccknc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15311{
15312#define FLD(f) abuf->fields.sfmt_cckeq.f
15313 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15314 int UNUSED written = 0;
15315 IADDR UNUSED pc = abuf->addr;
15316 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15317
15318if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15319if (NOTBI (TRUNCQIBI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 1)))) {
15320 {
15321 UQI opval = 3;
15322 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15323 written |= (1 << 3);
15324 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15325 }
15326} else {
15327 {
15328 UQI opval = 2;
15329 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15330 written |= (1 << 3);
15331 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15332 }
15333}
15334} else {
15335 {
15336 UQI opval = 0;
15337 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15338 written |= (1 << 3);
15339 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15340 }
15341}
15342
15343 abuf->written = written;
15344 return vpc;
15345#undef FLD
15346}
15347
15348/* cckn: cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
15349
15350static SEM_PC
15351SEM_FN_NAME (frvbf,cckn) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15352{
15353#define FLD(f) abuf->fields.sfmt_cckeq.f
15354 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15355 int UNUSED written = 0;
15356 IADDR UNUSED pc = abuf->addr;
15357 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15358
15359if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15360if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3))) {
15361 {
15362 UQI opval = 3;
15363 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15364 written |= (1 << 3);
15365 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15366 }
15367} else {
15368 {
15369 UQI opval = 2;
15370 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15371 written |= (1 << 3);
15372 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15373 }
15374}
15375} else {
15376 {
15377 UQI opval = 0;
15378 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15379 written |= (1 << 3);
15380 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15381 }
15382}
15383
15384 abuf->written = written;
15385 return vpc;
15386#undef FLD
15387}
15388
15389/* cckp: cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
15390
15391static SEM_PC
15392SEM_FN_NAME (frvbf,cckp) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15393{
15394#define FLD(f) abuf->fields.sfmt_cckeq.f
15395 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15396 int UNUSED written = 0;
15397 IADDR UNUSED pc = abuf->addr;
15398 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15399
15400if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15401if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 8), 3)))) {
15402 {
15403 UQI opval = 3;
15404 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15405 written |= (1 << 3);
15406 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15407 }
15408} else {
15409 {
15410 UQI opval = 2;
15411 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15412 written |= (1 << 3);
15413 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15414 }
15415}
15416} else {
15417 {
15418 UQI opval = 0;
15419 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15420 written |= (1 << 3);
15421 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15422 }
15423}
15424
15425 abuf->written = written;
15426 return vpc;
15427#undef FLD
15428}
15429
15430/* cckv: cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15431
15432static SEM_PC
15433SEM_FN_NAME (frvbf,cckv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15434{
15435#define FLD(f) abuf->fields.sfmt_cckeq.f
15436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15437 int UNUSED written = 0;
15438 IADDR UNUSED pc = abuf->addr;
15439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15440
15441if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15442if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1))) {
15443 {
15444 UQI opval = 3;
15445 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15446 written |= (1 << 3);
15447 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15448 }
15449} else {
15450 {
15451 UQI opval = 2;
15452 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15453 written |= (1 << 3);
15454 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15455 }
15456}
15457} else {
15458 {
15459 UQI opval = 0;
15460 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15461 written |= (1 << 3);
15462 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15463 }
15464}
15465
15466 abuf->written = written;
15467 return vpc;
15468#undef FLD
15469}
15470
15471/* ccknv: ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
15472
15473static SEM_PC
15474SEM_FN_NAME (frvbf,ccknv) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15475{
15476#define FLD(f) abuf->fields.sfmt_cckeq.f
15477 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15478 int UNUSED written = 0;
15479 IADDR UNUSED pc = abuf->addr;
15480 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15481
15482if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15483if (NOTBI (TRUNCQIBI (SRLQI (ANDQI (CPU (h_iccr[FLD (f_ICCi_3)]), 2), 1)))) {
15484 {
15485 UQI opval = 3;
15486 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15487 written |= (1 << 3);
15488 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15489 }
15490} else {
15491 {
15492 UQI opval = 2;
15493 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15494 written |= (1 << 3);
15495 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15496 }
15497}
15498} else {
15499 {
15500 UQI opval = 0;
15501 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_int)]), opval);
15502 written |= (1 << 3);
15503 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15504 }
15505}
15506
15507 abuf->written = written;
15508 return vpc;
15509#undef FLD
15510}
15511
15512/* cfckra: cfckra$pack $CRj_float,$CCi,$cond */
15513
15514static SEM_PC
15515SEM_FN_NAME (frvbf,cfckra) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15516{
15517#define FLD(f) abuf->fields.sfmt_cfckne.f
15518 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15519 int UNUSED written = 0;
15520 IADDR UNUSED pc = abuf->addr;
15521 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15522
15523if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15524 {
15525 UQI opval = 3;
15526 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15527 written |= (1 << 2);
15528 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15529 }
15530} else {
15531 {
15532 UQI opval = 0;
15533 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15534 written |= (1 << 2);
15535 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15536 }
15537}
15538
15539 abuf->written = written;
15540 return vpc;
15541#undef FLD
15542}
15543
15544/* cfckno: cfckno$pack $CRj_float,$CCi,$cond */
15545
15546static SEM_PC
15547SEM_FN_NAME (frvbf,cfckno) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15548{
15549#define FLD(f) abuf->fields.sfmt_cfckne.f
15550 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15551 int UNUSED written = 0;
15552 IADDR UNUSED pc = abuf->addr;
15553 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15554
15555if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15556 {
15557 UQI opval = 2;
15558 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15559 written |= (1 << 2);
15560 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15561 }
15562} else {
15563 {
15564 UQI opval = 0;
15565 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15566 written |= (1 << 2);
15567 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15568 }
15569}
15570
15571 abuf->written = written;
15572 return vpc;
15573#undef FLD
15574}
15575
15576/* cfckne: cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
15577
15578static SEM_PC
15579SEM_FN_NAME (frvbf,cfckne) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15580{
15581#define FLD(f) abuf->fields.sfmt_cfckne.f
15582 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15583 int UNUSED written = 0;
15584 IADDR UNUSED pc = abuf->addr;
15585 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15586
15587if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15588if (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))))) {
15589 {
15590 UQI opval = 3;
15591 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15592 written |= (1 << 3);
15593 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15594 }
15595} else {
15596 {
15597 UQI opval = 2;
15598 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15599 written |= (1 << 3);
15600 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15601 }
15602}
15603} else {
15604 {
15605 UQI opval = 0;
15606 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15607 written |= (1 << 3);
15608 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15609 }
15610}
15611
15612 abuf->written = written;
15613 return vpc;
15614#undef FLD
15615}
15616
15617/* cfckeq: cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
15618
15619static SEM_PC
15620SEM_FN_NAME (frvbf,cfckeq) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15621{
15622#define FLD(f) abuf->fields.sfmt_cfckne.f
15623 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15624 int UNUSED written = 0;
15625 IADDR UNUSED pc = abuf->addr;
15626 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15627
15628if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15629if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3))) {
15630 {
15631 UQI opval = 3;
15632 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15633 written |= (1 << 3);
15634 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15635 }
15636} else {
15637 {
15638 UQI opval = 2;
15639 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15640 written |= (1 << 3);
15641 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15642 }
15643}
15644} else {
15645 {
15646 UQI opval = 0;
15647 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15648 written |= (1 << 3);
15649 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15650 }
15651}
15652
15653 abuf->written = written;
15654 return vpc;
15655#undef FLD
15656}
15657
15658/* cfcklg: cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
15659
15660static SEM_PC
15661SEM_FN_NAME (frvbf,cfcklg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15662{
15663#define FLD(f) abuf->fields.sfmt_cfckne.f
15664 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15665 int UNUSED written = 0;
15666 IADDR UNUSED pc = abuf->addr;
15667 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15668
15669if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15670if (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)))) {
15671 {
15672 UQI opval = 3;
15673 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15674 written |= (1 << 3);
15675 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15676 }
15677} else {
15678 {
15679 UQI opval = 2;
15680 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15681 written |= (1 << 3);
15682 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15683 }
15684}
15685} else {
15686 {
15687 UQI opval = 0;
15688 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15689 written |= (1 << 3);
15690 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15691 }
15692}
15693
15694 abuf->written = written;
15695 return vpc;
15696#undef FLD
15697}
15698
15699/* cfckue: cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
15700
15701static SEM_PC
15702SEM_FN_NAME (frvbf,cfckue) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15703{
15704#define FLD(f) abuf->fields.sfmt_cfckne.f
15705 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15706 int UNUSED written = 0;
15707 IADDR UNUSED pc = abuf->addr;
15708 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15709
15710if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15711if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 8), 3)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15712 {
15713 UQI opval = 3;
15714 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15715 written |= (1 << 3);
15716 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15717 }
15718} else {
15719 {
15720 UQI opval = 2;
15721 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15722 written |= (1 << 3);
15723 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15724 }
15725}
15726} else {
15727 {
15728 UQI opval = 0;
15729 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15730 written |= (1 << 3);
15731 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15732 }
15733}
15734
15735 abuf->written = written;
15736 return vpc;
15737#undef FLD
15738}
15739
15740/* cfckul: cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
15741
15742static SEM_PC
15743SEM_FN_NAME (frvbf,cfckul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15744{
15745#define FLD(f) abuf->fields.sfmt_cfckne.f
15746 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15747 int UNUSED written = 0;
15748 IADDR UNUSED pc = abuf->addr;
15749 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15750
15751if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15752if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15753 {
15754 UQI opval = 3;
15755 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15756 written |= (1 << 3);
15757 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15758 }
15759} else {
15760 {
15761 UQI opval = 2;
15762 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15763 written |= (1 << 3);
15764 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15765 }
15766}
15767} else {
15768 {
15769 UQI opval = 0;
15770 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15771 written |= (1 << 3);
15772 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15773 }
15774}
15775
15776 abuf->written = written;
15777 return vpc;
15778#undef FLD
15779}
15780
15781/* cfckge: cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15782
15783static SEM_PC
15784SEM_FN_NAME (frvbf,cfckge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15785{
15786#define FLD(f) abuf->fields.sfmt_cfckne.f
15787 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15788 int UNUSED written = 0;
15789 IADDR UNUSED pc = abuf->addr;
15790 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15791
15792if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15793if (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)))) {
15794 {
15795 UQI opval = 3;
15796 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15797 written |= (1 << 3);
15798 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15799 }
15800} else {
15801 {
15802 UQI opval = 2;
15803 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15804 written |= (1 << 3);
15805 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15806 }
15807}
15808} else {
15809 {
15810 UQI opval = 0;
15811 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15812 written |= (1 << 3);
15813 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15814 }
15815}
15816
15817 abuf->written = written;
15818 return vpc;
15819#undef FLD
15820}
15821
15822/* cfcklt: cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15823
15824static SEM_PC
15825SEM_FN_NAME (frvbf,cfcklt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15826{
15827#define FLD(f) abuf->fields.sfmt_cfckne.f
15828 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15829 int UNUSED written = 0;
15830 IADDR UNUSED pc = abuf->addr;
15831 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15832
15833if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15834if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 4), 2))) {
15835 {
15836 UQI opval = 3;
15837 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15838 written |= (1 << 3);
15839 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15840 }
15841} else {
15842 {
15843 UQI opval = 2;
15844 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15845 written |= (1 << 3);
15846 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15847 }
15848}
15849} else {
15850 {
15851 UQI opval = 0;
15852 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15853 written |= (1 << 3);
15854 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15855 }
15856}
15857
15858 abuf->written = written;
15859 return vpc;
15860#undef FLD
15861}
15862
15863/* cfckuge: cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
15864
15865static SEM_PC
15866SEM_FN_NAME (frvbf,cfckuge) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15867{
15868#define FLD(f) abuf->fields.sfmt_cfckne.f
15869 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15870 int UNUSED written = 0;
15871 IADDR UNUSED pc = abuf->addr;
15872 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15873
15874if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15875if (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))))) {
15876 {
15877 UQI opval = 3;
15878 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15879 written |= (1 << 3);
15880 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15881 }
15882} else {
15883 {
15884 UQI opval = 2;
15885 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15886 written |= (1 << 3);
15887 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15888 }
15889}
15890} else {
15891 {
15892 UQI opval = 0;
15893 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15894 written |= (1 << 3);
15895 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15896 }
15897}
15898
15899 abuf->written = written;
15900 return vpc;
15901#undef FLD
15902}
15903
15904/* cfckug: cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
15905
15906static SEM_PC
15907SEM_FN_NAME (frvbf,cfckug) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15908{
15909#define FLD(f) abuf->fields.sfmt_cfckne.f
15910 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15911 int UNUSED written = 0;
15912 IADDR UNUSED pc = abuf->addr;
15913 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15914
15915if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15916if (ORIF (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1)), TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1)))) {
15917 {
15918 UQI opval = 3;
15919 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15920 written |= (1 << 3);
15921 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15922 }
15923} else {
15924 {
15925 UQI opval = 2;
15926 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15927 written |= (1 << 3);
15928 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15929 }
15930}
15931} else {
15932 {
15933 UQI opval = 0;
15934 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15935 written |= (1 << 3);
15936 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15937 }
15938}
15939
15940 abuf->written = written;
15941 return vpc;
15942#undef FLD
15943}
15944
15945/* cfckle: cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
15946
15947static SEM_PC
15948SEM_FN_NAME (frvbf,cfckle) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15949{
15950#define FLD(f) abuf->fields.sfmt_cfckne.f
15951 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15952 int UNUSED written = 0;
15953 IADDR UNUSED pc = abuf->addr;
15954 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15955
15956if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15957if (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)))) {
15958 {
15959 UQI opval = 3;
15960 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15961 written |= (1 << 3);
15962 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15963 }
15964} else {
15965 {
15966 UQI opval = 2;
15967 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15968 written |= (1 << 3);
15969 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15970 }
15971}
15972} else {
15973 {
15974 UQI opval = 0;
15975 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
15976 written |= (1 << 3);
15977 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
15978 }
15979}
15980
15981 abuf->written = written;
15982 return vpc;
15983#undef FLD
15984}
15985
15986/* cfckgt: cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
15987
15988static SEM_PC
15989SEM_FN_NAME (frvbf,cfckgt) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
15990{
15991#define FLD(f) abuf->fields.sfmt_cfckne.f
15992 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
15993 int UNUSED written = 0;
15994 IADDR UNUSED pc = abuf->addr;
15995 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
15996
15997if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
15998if (TRUNCQIBI (SRLQI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 2), 1))) {
15999 {
16000 UQI opval = 3;
16001 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16002 written |= (1 << 3);
16003 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16004 }
16005} else {
16006 {
16007 UQI opval = 2;
16008 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16009 written |= (1 << 3);
16010 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16011 }
16012}
16013} else {
16014 {
16015 UQI opval = 0;
16016 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16017 written |= (1 << 3);
16018 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16019 }
16020}
16021
16022 abuf->written = written;
16023 return vpc;
16024#undef FLD
16025}
16026
16027/* cfckule: cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
16028
16029static SEM_PC
16030SEM_FN_NAME (frvbf,cfckule) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16031{
16032#define FLD(f) abuf->fields.sfmt_cfckne.f
16033 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16034 int UNUSED written = 0;
16035 IADDR UNUSED pc = abuf->addr;
16036 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16037
16038if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16039if (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))))) {
16040 {
16041 UQI opval = 3;
16042 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16043 written |= (1 << 3);
16044 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16045 }
16046} else {
16047 {
16048 UQI opval = 2;
16049 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16050 written |= (1 << 3);
16051 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16052 }
16053}
16054} else {
16055 {
16056 UQI opval = 0;
16057 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16058 written |= (1 << 3);
16059 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16060 }
16061}
16062
16063 abuf->written = written;
16064 return vpc;
16065#undef FLD
16066}
16067
16068/* cfcku: cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
16069
16070static SEM_PC
16071SEM_FN_NAME (frvbf,cfcku) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16072{
16073#define FLD(f) abuf->fields.sfmt_cfckne.f
16074 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16075 int UNUSED written = 0;
16076 IADDR UNUSED pc = abuf->addr;
16077 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16078
16079if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16080if (TRUNCQIBI (ANDQI (CPU (h_fccr[FLD (f_FCCi_3)]), 1))) {
16081 {
16082 UQI opval = 3;
16083 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16084 written |= (1 << 3);
16085 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16086 }
16087} else {
16088 {
16089 UQI opval = 2;
16090 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16091 written |= (1 << 3);
16092 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16093 }
16094}
16095} else {
16096 {
16097 UQI opval = 0;
16098 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16099 written |= (1 << 3);
16100 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16101 }
16102}
16103
16104 abuf->written = written;
16105 return vpc;
16106#undef FLD
16107}
16108
16109/* cfcko: cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
16110
16111static SEM_PC
16112SEM_FN_NAME (frvbf,cfcko) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16113{
16114#define FLD(f) abuf->fields.sfmt_cfckne.f
16115 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16116 int UNUSED written = 0;
16117 IADDR UNUSED pc = abuf->addr;
16118 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16119
16120if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16121if (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))))) {
16122 {
16123 UQI opval = 3;
16124 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16125 written |= (1 << 3);
16126 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16127 }
16128} else {
16129 {
16130 UQI opval = 2;
16131 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16132 written |= (1 << 3);
16133 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16134 }
16135}
16136} else {
16137 {
16138 UQI opval = 0;
16139 sim_queue_qi_write (current_cpu, & CPU (h_cccr[FLD (f_CRj_float)]), opval);
16140 written |= (1 << 3);
16141 TRACE_RESULT (current_cpu, abuf, "cccr", 'x', opval);
16142 }
16143}
16144
16145 abuf->written = written;
16146 return vpc;
16147#undef FLD
16148}
16149
16150/* cjmpl: cjmpl$pack @($GRi,$GRj),$CCi,$cond */
16151
16152static SEM_PC
16153SEM_FN_NAME (frvbf,cjmpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16154{
16155#define FLD(f) abuf->fields.sfmt_cjmpl.f
16156 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16157 int UNUSED written = 0;
16158 IADDR UNUSED pc = abuf->addr;
16159 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16160
16161if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16162{
16163if (EQSI (FLD (f_LI), 1)) {
16164frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16165}
16166 {
16167 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16168 sim_queue_pc_write (current_cpu, opval);
16169 written |= (1 << 6);
16170 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16171 }
16172frvbf_model_branch (current_cpu, pc, 2);
16173}
16174}
16175
16176 abuf->written = written;
16177 return vpc;
16178#undef FLD
16179}
16180
16181/* ccalll: ccalll$pack @($GRi,$GRj),$CCi,$cond */
16182
16183static SEM_PC
16184SEM_FN_NAME (frvbf,ccalll) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16185{
16186#define FLD(f) abuf->fields.sfmt_cjmpl.f
16187 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16188 int UNUSED written = 0;
16189 IADDR UNUSED pc = abuf->addr;
16190 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16191
16192if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16193{
16194if (EQSI (FLD (f_LI), 1)) {
16195frvbf_set_write_next_vliw_addr_to_LR (current_cpu, 1);
16196}
16197 {
16198 USI opval = ANDSI (ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0xfffffffc);
16199 sim_queue_pc_write (current_cpu, opval);
16200 written |= (1 << 6);
16201 TRACE_RESULT (current_cpu, abuf, "pc", 'x', opval);
16202 }
16203frvbf_model_branch (current_cpu, pc, 2);
16204}
16205}
16206
16207 abuf->written = written;
16208 return vpc;
16209#undef FLD
16210}
16211
16212/* ici: ici$pack @($GRi,$GRj) */
16213
16214static SEM_PC
16215SEM_FN_NAME (frvbf,ici) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16216{
16217#define FLD(f) abuf->fields.sfmt_icpl.f
16218 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16219 int UNUSED written = 0;
16220 IADDR UNUSED pc = abuf->addr;
16221 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16222
16223frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16224
16225 return vpc;
16226#undef FLD
16227}
16228
16229/* dci: dci$pack @($GRi,$GRj) */
16230
16231static SEM_PC
16232SEM_FN_NAME (frvbf,dci) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16233{
16234#define FLD(f) abuf->fields.sfmt_icpl.f
16235 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16236 int UNUSED written = 0;
16237 IADDR UNUSED pc = abuf->addr;
16238 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16239
16240frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16241
16242 return vpc;
16243#undef FLD
16244}
16245
16246/* icei: icei$pack @($GRi,$GRj),$ae */
16247
16248static SEM_PC
16249SEM_FN_NAME (frvbf,icei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16250{
16251#define FLD(f) abuf->fields.sfmt_icei.f
16252 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16253 int UNUSED written = 0;
16254 IADDR UNUSED pc = abuf->addr;
16255 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16256
16257if (EQSI (FLD (f_ae), 0)) {
16258frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16259} else {
16260frvbf_insn_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16261}
16262
16263 return vpc;
16264#undef FLD
16265}
16266
16267/* dcei: dcei$pack @($GRi,$GRj),$ae */
16268
16269static SEM_PC
16270SEM_FN_NAME (frvbf,dcei) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16271{
16272#define FLD(f) abuf->fields.sfmt_icei.f
16273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16274 int UNUSED written = 0;
16275 IADDR UNUSED pc = abuf->addr;
16276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16277
16278if (EQSI (FLD (f_ae), 0)) {
16279frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16280} else {
16281frvbf_data_cache_invalidate (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16282}
16283
16284 return vpc;
16285#undef FLD
16286}
16287
16288/* dcf: dcf$pack @($GRi,$GRj) */
16289
16290static SEM_PC
16291SEM_FN_NAME (frvbf,dcf) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16292{
16293#define FLD(f) abuf->fields.sfmt_icpl.f
16294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16295 int UNUSED written = 0;
16296 IADDR UNUSED pc = abuf->addr;
16297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16298
16299frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), 0);
16300
16301 return vpc;
16302#undef FLD
16303}
16304
16305/* dcef: dcef$pack @($GRi,$GRj),$ae */
16306
16307static SEM_PC
16308SEM_FN_NAME (frvbf,dcef) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16309{
16310#define FLD(f) abuf->fields.sfmt_icei.f
16311 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16312 int UNUSED written = 0;
16313 IADDR UNUSED pc = abuf->addr;
16314 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16315
16316if (EQSI (FLD (f_ae), 0)) {
16317frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), -1);
16318} else {
16319frvbf_data_cache_flush (current_cpu, ADDSI (GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj))), FLD (f_ae));
16320}
16321
16322 return vpc;
16323#undef FLD
16324}
16325
16326/* witlb: witlb$pack $GRk,@($GRi,$GRj) */
16327
16328static SEM_PC
16329SEM_FN_NAME (frvbf,witlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16330{
16331#define FLD(f) abuf->fields.fmt_empty.f
16332 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16333 int UNUSED written = 0;
16334 IADDR UNUSED pc = abuf->addr;
16335 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16336
16337((void) 0); /*nop*/
16338
16339 return vpc;
16340#undef FLD
16341}
16342
16343/* wdtlb: wdtlb$pack $GRk,@($GRi,$GRj) */
16344
16345static SEM_PC
16346SEM_FN_NAME (frvbf,wdtlb) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16347{
16348#define FLD(f) abuf->fields.fmt_empty.f
16349 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16350 int UNUSED written = 0;
16351 IADDR UNUSED pc = abuf->addr;
16352 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16353
16354((void) 0); /*nop*/
16355
16356 return vpc;
16357#undef FLD
16358}
16359
16360/* itlbi: itlbi$pack @($GRi,$GRj) */
16361
16362static SEM_PC
16363SEM_FN_NAME (frvbf,itlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16364{
16365#define FLD(f) abuf->fields.fmt_empty.f
16366 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16367 int UNUSED written = 0;
16368 IADDR UNUSED pc = abuf->addr;
16369 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16370
16371((void) 0); /*nop*/
16372
16373 return vpc;
16374#undef FLD
16375}
16376
16377/* dtlbi: dtlbi$pack @($GRi,$GRj) */
16378
16379static SEM_PC
16380SEM_FN_NAME (frvbf,dtlbi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16381{
16382#define FLD(f) abuf->fields.fmt_empty.f
16383 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16384 int UNUSED written = 0;
16385 IADDR UNUSED pc = abuf->addr;
16386 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16387
16388((void) 0); /*nop*/
16389
16390 return vpc;
16391#undef FLD
16392}
16393
16394/* icpl: icpl$pack $GRi,$GRj,$lock */
16395
16396static SEM_PC
16397SEM_FN_NAME (frvbf,icpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16398{
16399#define FLD(f) abuf->fields.sfmt_icpl.f
16400 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16401 int UNUSED written = 0;
16402 IADDR UNUSED pc = abuf->addr;
16403 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16404
16405frvbf_insn_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16406
16407 return vpc;
16408#undef FLD
16409}
16410
16411/* dcpl: dcpl$pack $GRi,$GRj,$lock */
16412
16413static SEM_PC
16414SEM_FN_NAME (frvbf,dcpl) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16415{
16416#define FLD(f) abuf->fields.sfmt_icpl.f
16417 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16418 int UNUSED written = 0;
16419 IADDR UNUSED pc = abuf->addr;
16420 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16421
16422frvbf_data_cache_preload (current_cpu, GET_H_GR (FLD (f_GRi)), GET_H_GR (FLD (f_GRj)), FLD (f_lock));
16423
16424 return vpc;
16425#undef FLD
16426}
16427
16428/* icul: icul$pack $GRi */
16429
16430static SEM_PC
16431SEM_FN_NAME (frvbf,icul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16432{
16433#define FLD(f) abuf->fields.sfmt_jmpil.f
16434 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16435 int UNUSED written = 0;
16436 IADDR UNUSED pc = abuf->addr;
16437 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16438
16439frvbf_insn_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16440
16441 return vpc;
16442#undef FLD
16443}
16444
16445/* dcul: dcul$pack $GRi */
16446
16447static SEM_PC
16448SEM_FN_NAME (frvbf,dcul) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16449{
16450#define FLD(f) abuf->fields.sfmt_jmpil.f
16451 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16452 int UNUSED written = 0;
16453 IADDR UNUSED pc = abuf->addr;
16454 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16455
16456frvbf_data_cache_unlock (current_cpu, GET_H_GR (FLD (f_GRi)));
16457
16458 return vpc;
16459#undef FLD
16460}
16461
16462/* bar: bar$pack */
16463
16464static SEM_PC
16465SEM_FN_NAME (frvbf,bar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16466{
16467#define FLD(f) abuf->fields.fmt_empty.f
16468 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16469 int UNUSED written = 0;
16470 IADDR UNUSED pc = abuf->addr;
16471 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16472
16473((void) 0); /*nop*/
16474
16475 return vpc;
16476#undef FLD
16477}
16478
16479/* membar: membar$pack */
16480
16481static SEM_PC
16482SEM_FN_NAME (frvbf,membar) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16483{
16484#define FLD(f) abuf->fields.fmt_empty.f
16485 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16486 int UNUSED written = 0;
16487 IADDR UNUSED pc = abuf->addr;
16488 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16489
16490((void) 0); /*nop*/
16491
16492 return vpc;
16493#undef FLD
16494}
16495
16496/* cop1: cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
16497
16498static SEM_PC
16499SEM_FN_NAME (frvbf,cop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16500{
16501#define FLD(f) abuf->fields.fmt_empty.f
16502 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16503 int UNUSED written = 0;
16504 IADDR UNUSED pc = abuf->addr;
16505 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16506
16507((void) 0); /*nop*/
16508
16509 return vpc;
16510#undef FLD
16511}
16512
16513/* cop2: cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
16514
16515static SEM_PC
16516SEM_FN_NAME (frvbf,cop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16517{
16518#define FLD(f) abuf->fields.fmt_empty.f
16519 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16520 int UNUSED written = 0;
16521 IADDR UNUSED pc = abuf->addr;
16522 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16523
16524((void) 0); /*nop*/
16525
16526 return vpc;
16527#undef FLD
16528}
16529
16530/* clrgr: clrgr$pack $GRk */
16531
16532static SEM_PC
16533SEM_FN_NAME (frvbf,clrgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16534{
16535#define FLD(f) abuf->fields.sfmt_setlos.f
16536 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16537 int UNUSED written = 0;
16538 IADDR UNUSED pc = abuf->addr;
16539 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16540
16541frvbf_clear_ne_flags (current_cpu, FLD (f_GRk), 0);
16542
16543 return vpc;
16544#undef FLD
16545}
16546
16547/* clrfr: clrfr$pack $FRk */
16548
16549static SEM_PC
16550SEM_FN_NAME (frvbf,clrfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16551{
16552#define FLD(f) abuf->fields.sfmt_mhsethis.f
16553 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16554 int UNUSED written = 0;
16555 IADDR UNUSED pc = abuf->addr;
16556 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16557
16558frvbf_clear_ne_flags (current_cpu, FLD (f_FRk), 1);
16559
16560 return vpc;
16561#undef FLD
16562}
16563
16564/* clrga: clrga$pack */
16565
16566static SEM_PC
16567SEM_FN_NAME (frvbf,clrga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16568{
16569#define FLD(f) abuf->fields.fmt_empty.f
16570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16571 int UNUSED written = 0;
16572 IADDR UNUSED pc = abuf->addr;
16573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16574
16575frvbf_clear_ne_flags (current_cpu, -1, 0);
16576
16577 return vpc;
16578#undef FLD
16579}
16580
16581/* clrfa: clrfa$pack */
16582
16583static SEM_PC
16584SEM_FN_NAME (frvbf,clrfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16585{
16586#define FLD(f) abuf->fields.fmt_empty.f
16587 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16588 int UNUSED written = 0;
16589 IADDR UNUSED pc = abuf->addr;
16590 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16591
16592frvbf_clear_ne_flags (current_cpu, -1, 1);
16593
16594 return vpc;
16595#undef FLD
16596}
16597
16598/* commitgr: commitgr$pack $GRk */
16599
16600static SEM_PC
16601SEM_FN_NAME (frvbf,commitgr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16602{
16603#define FLD(f) abuf->fields.sfmt_setlos.f
16604 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16605 int UNUSED written = 0;
16606 IADDR UNUSED pc = abuf->addr;
16607 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16608
16609frvbf_commit (current_cpu, FLD (f_GRk), 0);
16610
16611 return vpc;
16612#undef FLD
16613}
16614
16615/* commitfr: commitfr$pack $FRk */
16616
16617static SEM_PC
16618SEM_FN_NAME (frvbf,commitfr) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16619{
16620#define FLD(f) abuf->fields.sfmt_mhsethis.f
16621 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16622 int UNUSED written = 0;
16623 IADDR UNUSED pc = abuf->addr;
16624 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16625
16626frvbf_commit (current_cpu, FLD (f_FRk), 1);
16627
16628 return vpc;
16629#undef FLD
16630}
16631
16632/* commitga: commitga$pack */
16633
16634static SEM_PC
16635SEM_FN_NAME (frvbf,commitga) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16636{
16637#define FLD(f) abuf->fields.fmt_empty.f
16638 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16639 int UNUSED written = 0;
16640 IADDR UNUSED pc = abuf->addr;
16641 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16642
16643frvbf_commit (current_cpu, -1, 0);
16644
16645 return vpc;
16646#undef FLD
16647}
16648
16649/* commitfa: commitfa$pack */
16650
16651static SEM_PC
16652SEM_FN_NAME (frvbf,commitfa) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16653{
16654#define FLD(f) abuf->fields.fmt_empty.f
16655 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16656 int UNUSED written = 0;
16657 IADDR UNUSED pc = abuf->addr;
16658 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16659
16660frvbf_commit (current_cpu, -1, 1);
16661
16662 return vpc;
16663#undef FLD
16664}
16665
16666/* fitos: fitos$pack $FRintj,$FRk */
16667
16668static SEM_PC
16669SEM_FN_NAME (frvbf,fitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16670{
16671#define FLD(f) abuf->fields.sfmt_fditos.f
16672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16673 int UNUSED written = 0;
16674 IADDR UNUSED pc = abuf->addr;
16675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16676
16677 {
16678 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16679 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16680 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16681 }
16682
16683 return vpc;
16684#undef FLD
16685}
16686
16687/* fstoi: fstoi$pack $FRj,$FRintk */
16688
16689static SEM_PC
16690SEM_FN_NAME (frvbf,fstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16691{
16692#define FLD(f) abuf->fields.sfmt_fdstoi.f
16693 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16694 int UNUSED written = 0;
16695 IADDR UNUSED pc = abuf->addr;
16696 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16697
16698 {
16699 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16700 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16701 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16702 }
16703
16704 return vpc;
16705#undef FLD
16706}
16707
16708/* fitod: fitod$pack $FRintj,$FRdoublek */
16709
16710static SEM_PC
16711SEM_FN_NAME (frvbf,fitod) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16712{
16713#define FLD(f) abuf->fields.sfmt_fitod.f
16714 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16715 int UNUSED written = 0;
16716 IADDR UNUSED pc = abuf->addr;
16717 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16718
16719 {
16720 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsidf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16721 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16722 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
16723 }
16724
16725 return vpc;
16726#undef FLD
16727}
16728
16729/* fdtoi: fdtoi$pack $FRdoublej,$FRintk */
16730
16731static SEM_PC
16732SEM_FN_NAME (frvbf,fdtoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16733{
16734#define FLD(f) abuf->fields.sfmt_fdtoi.f
16735 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16736 int UNUSED written = 0;
16737 IADDR UNUSED pc = abuf->addr;
16738 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16739
16740 {
16741 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixdfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
16742 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16743 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16744 }
16745
16746 return vpc;
16747#undef FLD
16748}
16749
16750/* fditos: fditos$pack $FRintj,$FRk */
16751
16752static SEM_PC
16753SEM_FN_NAME (frvbf,fditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16754{
16755#define FLD(f) abuf->fields.sfmt_fditos.f
16756 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16757 int UNUSED written = 0;
16758 IADDR UNUSED pc = abuf->addr;
16759 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16760
16761{
16762 {
16763 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16764 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16765 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16766 }
16767 {
16768 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16769 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16770 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16771 }
16772}
16773
16774 return vpc;
16775#undef FLD
16776}
16777
16778/* fdstoi: fdstoi$pack $FRj,$FRintk */
16779
16780static SEM_PC
16781SEM_FN_NAME (frvbf,fdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16782{
16783#define FLD(f) abuf->fields.sfmt_fdstoi.f
16784 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16785 int UNUSED written = 0;
16786 IADDR UNUSED pc = abuf->addr;
16787 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16788
16789{
16790 {
16791 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16792 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16793 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16794 }
16795 {
16796 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16797 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16798 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16799 }
16800}
16801
16802 return vpc;
16803#undef FLD
16804}
16805
16806/* nfditos: nfditos$pack $FRintj,$FRk */
16807
16808static SEM_PC
16809SEM_FN_NAME (frvbf,nfditos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16810{
16811#define FLD(f) abuf->fields.sfmt_fditos.f
16812 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16813 int UNUSED written = 0;
16814 IADDR UNUSED pc = abuf->addr;
16815 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16816
16817{
16818frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16819 {
16820 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16821 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16822 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16823 }
16824frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16825 {
16826 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (((FLD (f_FRj)) + (1))));
16827 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
16828 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16829 }
16830}
16831
16832 return vpc;
16833#undef FLD
16834}
16835
16836/* nfdstoi: nfdstoi$pack $FRj,$FRintk */
16837
16838static SEM_PC
16839SEM_FN_NAME (frvbf,nfdstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16840{
16841#define FLD(f) abuf->fields.sfmt_fdstoi.f
16842 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16843 int UNUSED written = 0;
16844 IADDR UNUSED pc = abuf->addr;
16845 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16846
16847{
16848frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16849 {
16850 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16851 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16852 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16853 }
16854frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
16855 {
16856 USI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
16857 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
16858 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16859 }
16860}
16861
16862 return vpc;
16863#undef FLD
16864}
16865
16866/* cfitos: cfitos$pack $FRintj,$FRk,$CCi,$cond */
16867
16868static SEM_PC
16869SEM_FN_NAME (frvbf,cfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16870{
16871#define FLD(f) abuf->fields.sfmt_cfitos.f
16872 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16873 int UNUSED written = 0;
16874 IADDR UNUSED pc = abuf->addr;
16875 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16876
16877if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16878 {
16879 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16880 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16881 written |= (1 << 3);
16882 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16883 }
16884}
16885
16886 abuf->written = written;
16887 return vpc;
16888#undef FLD
16889}
16890
16891/* cfstoi: cfstoi$pack $FRj,$FRintk,$CCi,$cond */
16892
16893static SEM_PC
16894SEM_FN_NAME (frvbf,cfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16895{
16896#define FLD(f) abuf->fields.sfmt_cfstoi.f
16897 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16898 int UNUSED written = 0;
16899 IADDR UNUSED pc = abuf->addr;
16900 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16901
16902if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
16903 {
16904 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16905 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16906 written |= (1 << 3);
16907 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16908 }
16909}
16910
16911 abuf->written = written;
16912 return vpc;
16913#undef FLD
16914}
16915
16916/* nfitos: nfitos$pack $FRintj,$FRk */
16917
16918static SEM_PC
16919SEM_FN_NAME (frvbf,nfitos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16920{
16921#define FLD(f) abuf->fields.sfmt_fditos.f
16922 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16923 int UNUSED written = 0;
16924 IADDR UNUSED pc = abuf->addr;
16925 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16926
16927{
16928frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16929 {
16930 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->floatsisf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_INT (FLD (f_FRj)));
16931 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16932 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16933 }
16934}
16935
16936 return vpc;
16937#undef FLD
16938}
16939
16940/* nfstoi: nfstoi$pack $FRj,$FRintk */
16941
16942static SEM_PC
16943SEM_FN_NAME (frvbf,nfstoi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16944{
16945#define FLD(f) abuf->fields.sfmt_fdstoi.f
16946 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16947 int UNUSED written = 0;
16948 IADDR UNUSED pc = abuf->addr;
16949 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16950
16951{
16952frvbf_set_ne_index (current_cpu, FLD (f_FRk));
16953 {
16954 SI opval = (* CGEN_CPU_FPU (current_cpu)->ops->fixsfsi) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
16955 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
16956 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
16957 }
16958}
16959
16960 return vpc;
16961#undef FLD
16962}
16963
16964/* fmovs: fmovs$pack $FRj,$FRk */
16965
16966static SEM_PC
16967SEM_FN_NAME (frvbf,fmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16968{
16969#define FLD(f) abuf->fields.sfmt_cfmadds.f
16970 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16971 int UNUSED written = 0;
16972 IADDR UNUSED pc = abuf->addr;
16973 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16974
16975 {
16976 SF opval = GET_H_FR (FLD (f_FRj));
16977 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
16978 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
16979 }
16980
16981 return vpc;
16982#undef FLD
16983}
16984
16985/* fmovd: fmovd$pack $FRdoublej,$FRdoublek */
16986
16987static SEM_PC
16988SEM_FN_NAME (frvbf,fmovd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
16989{
16990#define FLD(f) abuf->fields.sfmt_fmaddd.f
16991 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
16992 int UNUSED written = 0;
16993 IADDR UNUSED pc = abuf->addr;
16994 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
16995
16996 {
16997 DF opval = GET_H_FR_DOUBLE (FLD (f_FRj));
16998 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
16999 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17000 }
17001
17002 return vpc;
17003#undef FLD
17004}
17005
17006/* fdmovs: fdmovs$pack $FRj,$FRk */
17007
17008static SEM_PC
17009SEM_FN_NAME (frvbf,fdmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17010{
17011#define FLD(f) abuf->fields.sfmt_fdmadds.f
17012 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17013 int UNUSED written = 0;
17014 IADDR UNUSED pc = abuf->addr;
17015 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17016
17017{
17018 {
17019 SF opval = GET_H_FR (FLD (f_FRj));
17020 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17021 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17022 }
17023 {
17024 SF opval = GET_H_FR (((FLD (f_FRj)) + (1)));
17025 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17026 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17027 }
17028}
17029
17030 return vpc;
17031#undef FLD
17032}
17033
17034/* cfmovs: cfmovs$pack $FRj,$FRk,$CCi,$cond */
17035
17036static SEM_PC
17037SEM_FN_NAME (frvbf,cfmovs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17038{
17039#define FLD(f) abuf->fields.sfmt_cfmadds.f
17040 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17041 int UNUSED written = 0;
17042 IADDR UNUSED pc = abuf->addr;
17043 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17044
17045if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17046 {
17047 SF opval = GET_H_FR (FLD (f_FRj));
17048 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17049 written |= (1 << 3);
17050 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17051 }
17052}
17053
17054 abuf->written = written;
17055 return vpc;
17056#undef FLD
17057}
17058
17059/* fnegs: fnegs$pack $FRj,$FRk */
17060
17061static SEM_PC
17062SEM_FN_NAME (frvbf,fnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17063{
17064#define FLD(f) abuf->fields.sfmt_cfmadds.f
17065 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17066 int UNUSED written = 0;
17067 IADDR UNUSED pc = abuf->addr;
17068 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17069
17070 {
17071 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17072 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17073 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17074 }
17075
17076 return vpc;
17077#undef FLD
17078}
17079
17080/* fnegd: fnegd$pack $FRdoublej,$FRdoublek */
17081
17082static SEM_PC
17083SEM_FN_NAME (frvbf,fnegd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17084{
17085#define FLD(f) abuf->fields.sfmt_fmaddd.f
17086 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17087 int UNUSED written = 0;
17088 IADDR UNUSED pc = abuf->addr;
17089 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17090
17091 {
17092 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17093 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17094 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17095 }
17096
17097 return vpc;
17098#undef FLD
17099}
17100
17101/* fdnegs: fdnegs$pack $FRj,$FRk */
17102
17103static SEM_PC
17104SEM_FN_NAME (frvbf,fdnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17105{
17106#define FLD(f) abuf->fields.sfmt_fdmadds.f
17107 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17108 int UNUSED written = 0;
17109 IADDR UNUSED pc = abuf->addr;
17110 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17111
17112{
17113 {
17114 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17115 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17116 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17117 }
17118 {
17119 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17120 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17121 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17122 }
17123}
17124
17125 return vpc;
17126#undef FLD
17127}
17128
17129/* cfnegs: cfnegs$pack $FRj,$FRk,$CCi,$cond */
17130
17131static SEM_PC
17132SEM_FN_NAME (frvbf,cfnegs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17133{
17134#define FLD(f) abuf->fields.sfmt_cfmadds.f
17135 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17136 int UNUSED written = 0;
17137 IADDR UNUSED pc = abuf->addr;
17138 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17139
17140if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17141 {
17142 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->negsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17143 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17144 written |= (1 << 3);
17145 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17146 }
17147}
17148
17149 abuf->written = written;
17150 return vpc;
17151#undef FLD
17152}
17153
17154/* fabss: fabss$pack $FRj,$FRk */
17155
17156static SEM_PC
17157SEM_FN_NAME (frvbf,fabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17158{
17159#define FLD(f) abuf->fields.sfmt_cfmadds.f
17160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17161 int UNUSED written = 0;
17162 IADDR UNUSED pc = abuf->addr;
17163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17164
17165 {
17166 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17167 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17168 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17169 }
17170
17171 return vpc;
17172#undef FLD
17173}
17174
17175/* fabsd: fabsd$pack $FRdoublej,$FRdoublek */
17176
17177static SEM_PC
17178SEM_FN_NAME (frvbf,fabsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17179{
17180#define FLD(f) abuf->fields.sfmt_fmaddd.f
17181 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17182 int UNUSED written = 0;
17183 IADDR UNUSED pc = abuf->addr;
17184 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17185
17186 {
17187 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->absdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17188 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17189 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17190 }
17191
17192 return vpc;
17193#undef FLD
17194}
17195
17196/* fdabss: fdabss$pack $FRj,$FRk */
17197
17198static SEM_PC
17199SEM_FN_NAME (frvbf,fdabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17200{
17201#define FLD(f) abuf->fields.sfmt_fdmadds.f
17202 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17203 int UNUSED written = 0;
17204 IADDR UNUSED pc = abuf->addr;
17205 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17206
17207{
17208 {
17209 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17210 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17211 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17212 }
17213 {
17214 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17215 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17216 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17217 }
17218}
17219
17220 return vpc;
17221#undef FLD
17222}
17223
17224/* cfabss: cfabss$pack $FRj,$FRk,$CCi,$cond */
17225
17226static SEM_PC
17227SEM_FN_NAME (frvbf,cfabss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17228{
17229#define FLD(f) abuf->fields.sfmt_cfmadds.f
17230 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17231 int UNUSED written = 0;
17232 IADDR UNUSED pc = abuf->addr;
17233 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17234
17235if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17236 {
17237 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->abssf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17238 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17239 written |= (1 << 3);
17240 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17241 }
17242}
17243
17244 abuf->written = written;
17245 return vpc;
17246#undef FLD
17247}
17248
17249/* fsqrts: fsqrts$pack $FRj,$FRk */
17250
17251static SEM_PC
17252SEM_FN_NAME (frvbf,fsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17253{
17254#define FLD(f) abuf->fields.sfmt_cfmadds.f
17255 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17256 int UNUSED written = 0;
17257 IADDR UNUSED pc = abuf->addr;
17258 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17259
17260 {
17261 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17262 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17263 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17264 }
17265
17266 return vpc;
17267#undef FLD
17268}
17269
17270/* fdsqrts: fdsqrts$pack $FRj,$FRk */
17271
17272static SEM_PC
17273SEM_FN_NAME (frvbf,fdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17274{
17275#define FLD(f) abuf->fields.sfmt_fdmadds.f
17276 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17277 int UNUSED written = 0;
17278 IADDR UNUSED pc = abuf->addr;
17279 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17280
17281{
17282 {
17283 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17284 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17285 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17286 }
17287 {
17288 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17289 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17290 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17291 }
17292}
17293
17294 return vpc;
17295#undef FLD
17296}
17297
17298/* nfdsqrts: nfdsqrts$pack $FRj,$FRk */
17299
17300static SEM_PC
17301SEM_FN_NAME (frvbf,nfdsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17302{
17303#define FLD(f) abuf->fields.sfmt_fdmadds.f
17304 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17305 int UNUSED written = 0;
17306 IADDR UNUSED pc = abuf->addr;
17307 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17308
17309{
17310frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17311 {
17312 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17313 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17314 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17315 }
17316frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
17317 {
17318 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (((FLD (f_FRj)) + (1))));
17319 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
17320 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17321 }
17322}
17323
17324 return vpc;
17325#undef FLD
17326}
17327
17328/* fsqrtd: fsqrtd$pack $FRdoublej,$FRdoublek */
17329
17330static SEM_PC
17331SEM_FN_NAME (frvbf,fsqrtd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17332{
17333#define FLD(f) abuf->fields.sfmt_fmaddd.f
17334 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17335 int UNUSED written = 0;
17336 IADDR UNUSED pc = abuf->addr;
17337 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17338
17339 {
17340 DF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtdf) (CGEN_CPU_FPU (current_cpu), GET_H_FR_DOUBLE (FLD (f_FRj)));
17341 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17342 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17343 }
17344
17345 return vpc;
17346#undef FLD
17347}
17348
17349/* cfsqrts: cfsqrts$pack $FRj,$FRk,$CCi,$cond */
17350
17351static SEM_PC
17352SEM_FN_NAME (frvbf,cfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17353{
17354#define FLD(f) abuf->fields.sfmt_cfmadds.f
17355 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17356 int UNUSED written = 0;
17357 IADDR UNUSED pc = abuf->addr;
17358 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17359
17360if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17361 {
17362 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17363 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17364 written |= (1 << 3);
17365 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17366 }
17367}
17368
17369 abuf->written = written;
17370 return vpc;
17371#undef FLD
17372}
17373
17374/* nfsqrts: nfsqrts$pack $FRj,$FRk */
17375
17376static SEM_PC
17377SEM_FN_NAME (frvbf,nfsqrts) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17378{
17379#define FLD(f) abuf->fields.sfmt_cfmadds.f
17380 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17381 int UNUSED written = 0;
17382 IADDR UNUSED pc = abuf->addr;
17383 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17384
17385{
17386frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17387 {
17388 SF opval = (* CGEN_CPU_FPU (current_cpu)->ops->sqrtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRj)));
17389 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17390 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17391 }
17392}
17393
17394 return vpc;
17395#undef FLD
17396}
17397
17398/* fadds: fadds$pack $FRi,$FRj,$FRk */
17399
17400static SEM_PC
17401SEM_FN_NAME (frvbf,fadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17402{
17403#define FLD(f) abuf->fields.sfmt_cfmadds.f
17404 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17405 int UNUSED written = 0;
17406 IADDR UNUSED pc = abuf->addr;
17407 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17408
17409 {
17410 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)));
17411 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17412 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17413 }
17414
17415 return vpc;
17416#undef FLD
17417}
17418
17419/* fsubs: fsubs$pack $FRi,$FRj,$FRk */
17420
17421static SEM_PC
17422SEM_FN_NAME (frvbf,fsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17423{
17424#define FLD(f) abuf->fields.sfmt_cfmadds.f
17425 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17426 int UNUSED written = 0;
17427 IADDR UNUSED pc = abuf->addr;
17428 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17429
17430 {
17431 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)));
17432 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17433 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17434 }
17435
17436 return vpc;
17437#undef FLD
17438}
17439
17440/* fmuls: fmuls$pack $FRi,$FRj,$FRk */
17441
17442static SEM_PC
17443SEM_FN_NAME (frvbf,fmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17444{
17445#define FLD(f) abuf->fields.sfmt_cfmadds.f
17446 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17447 int UNUSED written = 0;
17448 IADDR UNUSED pc = abuf->addr;
17449 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17450
17451 {
17452 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)));
17453 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17454 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17455 }
17456
17457 return vpc;
17458#undef FLD
17459}
17460
17461/* fdivs: fdivs$pack $FRi,$FRj,$FRk */
17462
17463static SEM_PC
17464SEM_FN_NAME (frvbf,fdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17465{
17466#define FLD(f) abuf->fields.sfmt_cfmadds.f
17467 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17468 int UNUSED written = 0;
17469 IADDR UNUSED pc = abuf->addr;
17470 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17471
17472 {
17473 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)));
17474 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17475 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17476 }
17477
17478 return vpc;
17479#undef FLD
17480}
17481
17482/* faddd: faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17483
17484static SEM_PC
17485SEM_FN_NAME (frvbf,faddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17486{
17487#define FLD(f) abuf->fields.sfmt_fmaddd.f
17488 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17489 int UNUSED written = 0;
17490 IADDR UNUSED pc = abuf->addr;
17491 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17492
17493 {
17494 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)));
17495 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17496 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17497 }
17498
17499 return vpc;
17500#undef FLD
17501}
17502
17503/* fsubd: fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17504
17505static SEM_PC
17506SEM_FN_NAME (frvbf,fsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17507{
17508#define FLD(f) abuf->fields.sfmt_fmaddd.f
17509 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17510 int UNUSED written = 0;
17511 IADDR UNUSED pc = abuf->addr;
17512 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17513
17514 {
17515 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)));
17516 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17517 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17518 }
17519
17520 return vpc;
17521#undef FLD
17522}
17523
17524/* fmuld: fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
17525
17526static SEM_PC
17527SEM_FN_NAME (frvbf,fmuld) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17528{
17529#define FLD(f) abuf->fields.sfmt_fmaddd.f
17530 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17531 int UNUSED written = 0;
17532 IADDR UNUSED pc = abuf->addr;
17533 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17534
17535 {
17536 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)));
17537 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17538 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17539 }
17540
17541 return vpc;
17542#undef FLD
17543}
17544
17545/* fdivd: fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
17546
17547static SEM_PC
17548SEM_FN_NAME (frvbf,fdivd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17549{
17550#define FLD(f) abuf->fields.sfmt_fmaddd.f
17551 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17552 int UNUSED written = 0;
17553 IADDR UNUSED pc = abuf->addr;
17554 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17555
17556 {
17557 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)));
17558 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
17559 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
17560 }
17561
17562 return vpc;
17563#undef FLD
17564}
17565
17566/* cfadds: cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
17567
17568static SEM_PC
17569SEM_FN_NAME (frvbf,cfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17570{
17571#define FLD(f) abuf->fields.sfmt_cfmadds.f
17572 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17573 int UNUSED written = 0;
17574 IADDR UNUSED pc = abuf->addr;
17575 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17576
17577if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17578 {
17579 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)));
17580 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17581 written |= (1 << 4);
17582 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17583 }
17584}
17585
17586 abuf->written = written;
17587 return vpc;
17588#undef FLD
17589}
17590
17591/* cfsubs: cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17592
17593static SEM_PC
17594SEM_FN_NAME (frvbf,cfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17595{
17596#define FLD(f) abuf->fields.sfmt_cfmadds.f
17597 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17598 int UNUSED written = 0;
17599 IADDR UNUSED pc = abuf->addr;
17600 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17601
17602if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17603 {
17604 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)));
17605 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17606 written |= (1 << 4);
17607 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17608 }
17609}
17610
17611 abuf->written = written;
17612 return vpc;
17613#undef FLD
17614}
17615
17616/* cfmuls: cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
17617
17618static SEM_PC
17619SEM_FN_NAME (frvbf,cfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17620{
17621#define FLD(f) abuf->fields.sfmt_cfmadds.f
17622 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17623 int UNUSED written = 0;
17624 IADDR UNUSED pc = abuf->addr;
17625 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17626
17627if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17628 {
17629 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)));
17630 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17631 written |= (1 << 4);
17632 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17633 }
17634}
17635
17636 abuf->written = written;
17637 return vpc;
17638#undef FLD
17639}
17640
17641/* cfdivs: cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
17642
17643static SEM_PC
17644SEM_FN_NAME (frvbf,cfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17645{
17646#define FLD(f) abuf->fields.sfmt_cfmadds.f
17647 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17648 int UNUSED written = 0;
17649 IADDR UNUSED pc = abuf->addr;
17650 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17651
17652if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17653 {
17654 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)));
17655 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17656 written |= (1 << 4);
17657 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17658 }
17659}
17660
17661 abuf->written = written;
17662 return vpc;
17663#undef FLD
17664}
17665
17666/* nfadds: nfadds$pack $FRi,$FRj,$FRk */
17667
17668static SEM_PC
17669SEM_FN_NAME (frvbf,nfadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17670{
17671#define FLD(f) abuf->fields.sfmt_cfmadds.f
17672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17673 int UNUSED written = 0;
17674 IADDR UNUSED pc = abuf->addr;
17675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17676
17677{
17678frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17679 {
17680 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)));
17681 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17682 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17683 }
17684}
17685
17686 return vpc;
17687#undef FLD
17688}
17689
17690/* nfsubs: nfsubs$pack $FRi,$FRj,$FRk */
17691
17692static SEM_PC
17693SEM_FN_NAME (frvbf,nfsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17694{
17695#define FLD(f) abuf->fields.sfmt_cfmadds.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{
17702frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17703 {
17704 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)));
17705 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17706 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17707 }
17708}
17709
17710 return vpc;
17711#undef FLD
17712}
17713
17714/* nfmuls: nfmuls$pack $FRi,$FRj,$FRk */
17715
17716static SEM_PC
17717SEM_FN_NAME (frvbf,nfmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17718{
17719#define FLD(f) abuf->fields.sfmt_cfmadds.f
17720 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17721 int UNUSED written = 0;
17722 IADDR UNUSED pc = abuf->addr;
17723 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17724
17725{
17726frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17727 {
17728 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)));
17729 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17730 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17731 }
17732}
17733
17734 return vpc;
17735#undef FLD
17736}
17737
17738/* nfdivs: nfdivs$pack $FRi,$FRj,$FRk */
17739
17740static SEM_PC
17741SEM_FN_NAME (frvbf,nfdivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17742{
17743#define FLD(f) abuf->fields.sfmt_cfmadds.f
17744 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17745 int UNUSED written = 0;
17746 IADDR UNUSED pc = abuf->addr;
17747 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17748
17749{
17750frvbf_set_ne_index (current_cpu, FLD (f_FRk));
17751 {
17752 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)));
17753 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
17754 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
17755 }
17756}
17757
17758 return vpc;
17759#undef FLD
17760}
17761
17762/* fcmps: fcmps$pack $FRi,$FRj,$FCCi_2 */
17763
17764static SEM_PC
17765SEM_FN_NAME (frvbf,fcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17766{
17767#define FLD(f) abuf->fields.sfmt_cfcmps.f
17768 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17769 int UNUSED written = 0;
17770 IADDR UNUSED pc = abuf->addr;
17771 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17772
17773if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17774 {
17775 UQI opval = 2;
17776 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17777 written |= (1 << 2);
17778 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17779 }
17780} else {
17781if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17782 {
17783 UQI opval = 8;
17784 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17785 written |= (1 << 2);
17786 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17787 }
17788} else {
17789if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17790 {
17791 UQI opval = 4;
17792 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17793 written |= (1 << 2);
17794 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17795 }
17796} else {
17797 {
17798 UQI opval = 1;
17799 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17800 written |= (1 << 2);
17801 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17802 }
17803}
17804}
17805}
17806
17807 abuf->written = written;
17808 return vpc;
17809#undef FLD
17810}
17811
17812/* fcmpd: fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
17813
17814static SEM_PC
17815SEM_FN_NAME (frvbf,fcmpd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17816{
17817#define FLD(f) abuf->fields.sfmt_fcmpd.f
17818 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17819 int UNUSED written = 0;
17820 IADDR UNUSED pc = abuf->addr;
17821 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17822
17823if ((* 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)))) {
17824 {
17825 UQI opval = 2;
17826 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17827 written |= (1 << 2);
17828 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17829 }
17830} else {
17831if ((* 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)))) {
17832 {
17833 UQI opval = 8;
17834 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17835 written |= (1 << 2);
17836 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17837 }
17838} else {
17839if ((* 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)))) {
17840 {
17841 UQI opval = 4;
17842 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17843 written |= (1 << 2);
17844 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17845 }
17846} else {
17847 {
17848 UQI opval = 1;
17849 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17850 written |= (1 << 2);
17851 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17852 }
17853}
17854}
17855}
17856
17857 abuf->written = written;
17858 return vpc;
17859#undef FLD
17860}
17861
17862/* cfcmps: cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
17863
17864static SEM_PC
17865SEM_FN_NAME (frvbf,cfcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17866{
17867#define FLD(f) abuf->fields.sfmt_cfcmps.f
17868 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17869 int UNUSED written = 0;
17870 IADDR UNUSED pc = abuf->addr;
17871 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17872
17873if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
17874if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17875 {
17876 UQI opval = 2;
17877 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17878 written |= (1 << 4);
17879 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17880 }
17881} else {
17882if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17883 {
17884 UQI opval = 8;
17885 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17886 written |= (1 << 4);
17887 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17888 }
17889} else {
17890if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17891 {
17892 UQI opval = 4;
17893 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17894 written |= (1 << 4);
17895 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17896 }
17897} else {
17898 {
17899 UQI opval = 1;
17900 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17901 written |= (1 << 4);
17902 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17903 }
17904}
17905}
17906}
17907}
17908
17909 abuf->written = written;
17910 return vpc;
17911#undef FLD
17912}
17913
17914/* fdcmps: fdcmps$pack $FRi,$FRj,$FCCi_2 */
17915
17916static SEM_PC
17917SEM_FN_NAME (frvbf,fdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
17918{
17919#define FLD(f) abuf->fields.sfmt_nfdcmps.f
17920 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
17921 int UNUSED written = 0;
17922 IADDR UNUSED pc = abuf->addr;
17923 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
17924
17925{
17926if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17927 {
17928 UQI opval = 2;
17929 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17930 written |= (1 << 7);
17931 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17932 }
17933} else {
17934if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17935 {
17936 UQI opval = 8;
17937 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17938 written |= (1 << 7);
17939 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17940 }
17941} else {
17942if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
17943 {
17944 UQI opval = 4;
17945 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17946 written |= (1 << 7);
17947 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17948 }
17949} else {
17950 {
17951 UQI opval = 1;
17952 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
17953 written |= (1 << 7);
17954 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17955 }
17956}
17957}
17958}
17959if ((* 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))))) {
17960 {
17961 UQI opval = 2;
17962 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17963 written |= (1 << 8);
17964 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17965 }
17966} else {
17967if ((* 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))))) {
17968 {
17969 UQI opval = 8;
17970 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17971 written |= (1 << 8);
17972 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17973 }
17974} else {
17975if ((* 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))))) {
17976 {
17977 UQI opval = 4;
17978 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17979 written |= (1 << 8);
17980 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17981 }
17982} else {
17983 {
17984 UQI opval = 1;
17985 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
17986 written |= (1 << 8);
17987 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
17988 }
17989}
17990}
17991}
17992}
17993
17994 abuf->written = written;
17995 return vpc;
17996#undef FLD
17997}
17998
17999/* fmadds: fmadds$pack $FRi,$FRj,$FRk */
18000
18001static SEM_PC
18002SEM_FN_NAME (frvbf,fmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18003{
18004#define FLD(f) abuf->fields.sfmt_cfmadds.f
18005 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18006 int UNUSED written = 0;
18007 IADDR UNUSED pc = abuf->addr;
18008 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18009
18010 {
18011 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)));
18012 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18013 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18014 }
18015
18016 return vpc;
18017#undef FLD
18018}
18019
18020/* fmsubs: fmsubs$pack $FRi,$FRj,$FRk */
18021
18022static SEM_PC
18023SEM_FN_NAME (frvbf,fmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18024{
18025#define FLD(f) abuf->fields.sfmt_cfmadds.f
18026 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18027 int UNUSED written = 0;
18028 IADDR UNUSED pc = abuf->addr;
18029 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18030
18031 {
18032 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)));
18033 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18034 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18035 }
18036
18037 return vpc;
18038#undef FLD
18039}
18040
18041/* fmaddd: fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18042
18043static SEM_PC
18044SEM_FN_NAME (frvbf,fmaddd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18045{
18046#define FLD(f) abuf->fields.sfmt_fmaddd.f
18047 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18048 int UNUSED written = 0;
18049 IADDR UNUSED pc = abuf->addr;
18050 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18051
18052 {
18053 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)));
18054 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18055 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18056 }
18057
18058 return vpc;
18059#undef FLD
18060}
18061
18062/* fmsubd: fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
18063
18064static SEM_PC
18065SEM_FN_NAME (frvbf,fmsubd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18066{
18067#define FLD(f) abuf->fields.sfmt_fmaddd.f
18068 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18069 int UNUSED written = 0;
18070 IADDR UNUSED pc = abuf->addr;
18071 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18072
18073 {
18074 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)));
18075 sim_queue_fn_df_write (current_cpu, frvbf_h_fr_double_set, FLD (f_FRk), opval);
18076 TRACE_RESULT (current_cpu, abuf, "fr_double", 'f', opval);
18077 }
18078
18079 return vpc;
18080#undef FLD
18081}
18082
18083/* fdmadds: fdmadds$pack $FRi,$FRj,$FRk */
18084
18085static SEM_PC
18086SEM_FN_NAME (frvbf,fdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18087{
18088#define FLD(f) abuf->fields.sfmt_fdmadds.f
18089 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18090 int UNUSED written = 0;
18091 IADDR UNUSED pc = abuf->addr;
18092 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18093
18094{
18095 {
18096 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)));
18097 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18098 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18099 }
18100 {
18101 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))));
18102 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18103 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18104 }
18105}
18106
18107 return vpc;
18108#undef FLD
18109}
18110
18111/* nfdmadds: nfdmadds$pack $FRi,$FRj,$FRk */
18112
18113static SEM_PC
18114SEM_FN_NAME (frvbf,nfdmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18115{
18116#define FLD(f) abuf->fields.sfmt_fdmadds.f
18117 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18118 int UNUSED written = 0;
18119 IADDR UNUSED pc = abuf->addr;
18120 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18121
18122{
18123frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18124 {
18125 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)));
18126 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18127 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18128 }
18129frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18130 {
18131 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))));
18132 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18133 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18134 }
18135}
18136
18137 return vpc;
18138#undef FLD
18139}
18140
18141/* cfmadds: cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
18142
18143static SEM_PC
18144SEM_FN_NAME (frvbf,cfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18145{
18146#define FLD(f) abuf->fields.sfmt_cfmadds.f
18147 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18148 int UNUSED written = 0;
18149 IADDR UNUSED pc = abuf->addr;
18150 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18151
18152if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18153 {
18154 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)));
18155 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18156 written |= (1 << 5);
18157 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18158 }
18159}
18160
18161 abuf->written = written;
18162 return vpc;
18163#undef FLD
18164}
18165
18166/* cfmsubs: cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
18167
18168static SEM_PC
18169SEM_FN_NAME (frvbf,cfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18170{
18171#define FLD(f) abuf->fields.sfmt_cfmadds.f
18172 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18173 int UNUSED written = 0;
18174 IADDR UNUSED pc = abuf->addr;
18175 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18176
18177if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18178 {
18179 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)));
18180 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18181 written |= (1 << 5);
18182 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18183 }
18184}
18185
18186 abuf->written = written;
18187 return vpc;
18188#undef FLD
18189}
18190
18191/* nfmadds: nfmadds$pack $FRi,$FRj,$FRk */
18192
18193static SEM_PC
18194SEM_FN_NAME (frvbf,nfmadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18195{
18196#define FLD(f) abuf->fields.sfmt_cfmadds.f
18197 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18198 int UNUSED written = 0;
18199 IADDR UNUSED pc = abuf->addr;
18200 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18201
18202{
18203frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18204 {
18205 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)));
18206 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18207 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18208 }
18209}
18210
18211 return vpc;
18212#undef FLD
18213}
18214
18215/* nfmsubs: nfmsubs$pack $FRi,$FRj,$FRk */
18216
18217static SEM_PC
18218SEM_FN_NAME (frvbf,nfmsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18219{
18220#define FLD(f) abuf->fields.sfmt_cfmadds.f
18221 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18222 int UNUSED written = 0;
18223 IADDR UNUSED pc = abuf->addr;
18224 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18225
18226{
18227frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18228 {
18229 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)));
18230 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18231 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18232 }
18233}
18234
18235 return vpc;
18236#undef FLD
18237}
18238
18239/* fmas: fmas$pack $FRi,$FRj,$FRk */
18240
18241static SEM_PC
18242SEM_FN_NAME (frvbf,fmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18243{
18244#define FLD(f) abuf->fields.sfmt_fdmadds.f
18245 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18246 int UNUSED written = 0;
18247 IADDR UNUSED pc = abuf->addr;
18248 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18249
18250{
18251 {
18252 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)));
18253 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18254 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18255 }
18256 {
18257 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))));
18258 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18259 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18260 }
18261}
18262
18263 return vpc;
18264#undef FLD
18265}
18266
18267/* fmss: fmss$pack $FRi,$FRj,$FRk */
18268
18269static SEM_PC
18270SEM_FN_NAME (frvbf,fmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18271{
18272#define FLD(f) abuf->fields.sfmt_fdmadds.f
18273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18274 int UNUSED written = 0;
18275 IADDR UNUSED pc = abuf->addr;
18276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18277
18278{
18279 {
18280 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)));
18281 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18282 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18283 }
18284 {
18285 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))));
18286 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18287 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18288 }
18289}
18290
18291 return vpc;
18292#undef FLD
18293}
18294
18295/* fdmas: fdmas$pack $FRi,$FRj,$FRk */
18296
18297static SEM_PC
18298SEM_FN_NAME (frvbf,fdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18299{
18300#define FLD(f) abuf->fields.sfmt_fdmas.f
18301 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18302 int UNUSED written = 0;
18303 IADDR UNUSED pc = abuf->addr;
18304 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18305
18306{
18307 {
18308 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)));
18309 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18310 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18311 }
18312 {
18313 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))));
18314 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18315 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18316 }
18317 {
18318 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))));
18319 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18320 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18321 }
18322 {
18323 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))));
18324 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18325 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18326 }
18327}
18328
18329 return vpc;
18330#undef FLD
18331}
18332
18333/* fdmss: fdmss$pack $FRi,$FRj,$FRk */
18334
18335static SEM_PC
18336SEM_FN_NAME (frvbf,fdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18337{
18338#define FLD(f) abuf->fields.sfmt_fdmas.f
18339 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18340 int UNUSED written = 0;
18341 IADDR UNUSED pc = abuf->addr;
18342 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18343
18344{
18345 {
18346 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)));
18347 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18348 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18349 }
18350 {
18351 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))));
18352 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18353 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18354 }
18355 {
18356 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))));
18357 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18358 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18359 }
18360 {
18361 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))));
18362 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18363 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18364 }
18365}
18366
18367 return vpc;
18368#undef FLD
18369}
18370
18371/* nfdmas: nfdmas$pack $FRi,$FRj,$FRk */
18372
18373static SEM_PC
18374SEM_FN_NAME (frvbf,nfdmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18375{
18376#define FLD(f) abuf->fields.sfmt_fdmas.f
18377 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18378 int UNUSED written = 0;
18379 IADDR UNUSED pc = abuf->addr;
18380 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18381
18382{
18383frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18384frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18385frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18386frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18387 {
18388 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)));
18389 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18390 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18391 }
18392 {
18393 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))));
18394 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18395 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18396 }
18397 {
18398 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))));
18399 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18400 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18401 }
18402 {
18403 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))));
18404 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18405 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18406 }
18407}
18408
18409 return vpc;
18410#undef FLD
18411}
18412
18413/* nfdmss: nfdmss$pack $FRi,$FRj,$FRk */
18414
18415static SEM_PC
18416SEM_FN_NAME (frvbf,nfdmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18417{
18418#define FLD(f) abuf->fields.sfmt_fdmas.f
18419 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18420 int UNUSED written = 0;
18421 IADDR UNUSED pc = abuf->addr;
18422 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18423
18424{
18425frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18426frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18427frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 2));
18428frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 3));
18429 {
18430 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)));
18431 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18432 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18433 }
18434 {
18435 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))));
18436 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18437 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18438 }
18439 {
18440 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))));
18441 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (2)), opval);
18442 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18443 }
18444 {
18445 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))));
18446 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (3)), opval);
18447 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18448 }
18449}
18450
18451 return vpc;
18452#undef FLD
18453}
18454
18455/* cfmas: cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
18456
18457static SEM_PC
18458SEM_FN_NAME (frvbf,cfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18459{
18460#define FLD(f) abuf->fields.sfmt_cfmas.f
18461 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18462 int UNUSED written = 0;
18463 IADDR UNUSED pc = abuf->addr;
18464 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18465
18466if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18467{
18468 {
18469 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)));
18470 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18471 written |= (1 << 9);
18472 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18473 }
18474 {
18475 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))));
18476 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18477 written |= (1 << 10);
18478 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18479 }
18480}
18481}
18482
18483 abuf->written = written;
18484 return vpc;
18485#undef FLD
18486}
18487
18488/* cfmss: cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
18489
18490static SEM_PC
18491SEM_FN_NAME (frvbf,cfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18492{
18493#define FLD(f) abuf->fields.sfmt_cfmas.f
18494 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18495 int UNUSED written = 0;
18496 IADDR UNUSED pc = abuf->addr;
18497 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18498
18499if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
18500{
18501 {
18502 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)));
18503 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18504 written |= (1 << 9);
18505 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18506 }
18507 {
18508 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))));
18509 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18510 written |= (1 << 10);
18511 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18512 }
18513}
18514}
18515
18516 abuf->written = written;
18517 return vpc;
18518#undef FLD
18519}
18520
18521/* fmad: fmad$pack $FRi,$FRj,$FRk */
18522
18523static SEM_PC
18524SEM_FN_NAME (frvbf,fmad) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18525{
18526#define FLD(f) abuf->fields.sfmt_fdmadds.f
18527 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18528 int UNUSED written = 0;
18529 IADDR UNUSED pc = abuf->addr;
18530 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18531
18532{
18533 {
18534 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)))));
18535 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18536 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18537 }
18538 {
18539 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))))));
18540 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18541 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18542 }
18543}
18544
18545 return vpc;
18546#undef FLD
18547}
18548
18549/* fmsd: fmsd$pack $FRi,$FRj,$FRk */
18550
18551static SEM_PC
18552SEM_FN_NAME (frvbf,fmsd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18553{
18554#define FLD(f) abuf->fields.sfmt_fdmadds.f
18555 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18556 int UNUSED written = 0;
18557 IADDR UNUSED pc = abuf->addr;
18558 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18559
18560{
18561 {
18562 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)))));
18563 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18564 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18565 }
18566 {
18567 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))))));
18568 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18569 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18570 }
18571}
18572
18573 return vpc;
18574#undef FLD
18575}
18576
18577/* nfmas: nfmas$pack $FRi,$FRj,$FRk */
18578
18579static SEM_PC
18580SEM_FN_NAME (frvbf,nfmas) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18581{
18582#define FLD(f) abuf->fields.sfmt_fdmadds.f
18583 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18584 int UNUSED written = 0;
18585 IADDR UNUSED pc = abuf->addr;
18586 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18587
18588{
18589frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18590 {
18591 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)));
18592 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18593 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18594 }
18595frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18596 {
18597 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))));
18598 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18599 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18600 }
18601}
18602
18603 return vpc;
18604#undef FLD
18605}
18606
18607/* nfmss: nfmss$pack $FRi,$FRj,$FRk */
18608
18609static SEM_PC
18610SEM_FN_NAME (frvbf,nfmss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18611{
18612#define FLD(f) abuf->fields.sfmt_fdmadds.f
18613 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18614 int UNUSED written = 0;
18615 IADDR UNUSED pc = abuf->addr;
18616 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18617
18618{
18619frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18620 {
18621 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)));
18622 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18623 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18624 }
18625frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18626 {
18627 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))));
18628 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18629 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18630 }
18631}
18632
18633 return vpc;
18634#undef FLD
18635}
18636
18637/* fdadds: fdadds$pack $FRi,$FRj,$FRk */
18638
18639static SEM_PC
18640SEM_FN_NAME (frvbf,fdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18641{
18642#define FLD(f) abuf->fields.sfmt_fdmadds.f
18643 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18644 int UNUSED written = 0;
18645 IADDR UNUSED pc = abuf->addr;
18646 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18647
18648{
18649 {
18650 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)));
18651 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18652 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18653 }
18654 {
18655 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))));
18656 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18657 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18658 }
18659}
18660
18661 return vpc;
18662#undef FLD
18663}
18664
18665/* fdsubs: fdsubs$pack $FRi,$FRj,$FRk */
18666
18667static SEM_PC
18668SEM_FN_NAME (frvbf,fdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18669{
18670#define FLD(f) abuf->fields.sfmt_fdmadds.f
18671 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18672 int UNUSED written = 0;
18673 IADDR UNUSED pc = abuf->addr;
18674 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18675
18676{
18677 {
18678 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)));
18679 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18680 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18681 }
18682 {
18683 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))));
18684 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18685 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18686 }
18687}
18688
18689 return vpc;
18690#undef FLD
18691}
18692
18693/* fdmuls: fdmuls$pack $FRi,$FRj,$FRk */
18694
18695static SEM_PC
18696SEM_FN_NAME (frvbf,fdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18697{
18698#define FLD(f) abuf->fields.sfmt_fdmadds.f
18699 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18700 int UNUSED written = 0;
18701 IADDR UNUSED pc = abuf->addr;
18702 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18703
18704{
18705 {
18706 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)));
18707 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18708 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18709 }
18710 {
18711 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))));
18712 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18713 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18714 }
18715}
18716
18717 return vpc;
18718#undef FLD
18719}
18720
18721/* fddivs: fddivs$pack $FRi,$FRj,$FRk */
18722
18723static SEM_PC
18724SEM_FN_NAME (frvbf,fddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18725{
18726#define FLD(f) abuf->fields.sfmt_fdmadds.f
18727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18728 int UNUSED written = 0;
18729 IADDR UNUSED pc = abuf->addr;
18730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18731
18732{
18733 {
18734 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)));
18735 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18736 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18737 }
18738 {
18739 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))));
18740 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18741 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18742 }
18743}
18744
18745 return vpc;
18746#undef FLD
18747}
18748
18749/* fdsads: fdsads$pack $FRi,$FRj,$FRk */
18750
18751static SEM_PC
18752SEM_FN_NAME (frvbf,fdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18753{
18754#define FLD(f) abuf->fields.sfmt_fdmadds.f
18755 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18756 int UNUSED written = 0;
18757 IADDR UNUSED pc = abuf->addr;
18758 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18759
18760{
18761 {
18762 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)));
18763 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18764 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18765 }
18766 {
18767 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))));
18768 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18769 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18770 }
18771}
18772
18773 return vpc;
18774#undef FLD
18775}
18776
18777/* fdmulcs: fdmulcs$pack $FRi,$FRj,$FRk */
18778
18779static SEM_PC
18780SEM_FN_NAME (frvbf,fdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18781{
18782#define FLD(f) abuf->fields.sfmt_fdmadds.f
18783 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18784 int UNUSED written = 0;
18785 IADDR UNUSED pc = abuf->addr;
18786 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18787
18788{
18789 {
18790 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))));
18791 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18792 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18793 }
18794 {
18795 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)));
18796 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18797 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18798 }
18799}
18800
18801 return vpc;
18802#undef FLD
18803}
18804
18805/* nfdmulcs: nfdmulcs$pack $FRi,$FRj,$FRk */
18806
18807static SEM_PC
18808SEM_FN_NAME (frvbf,nfdmulcs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18809{
18810#define FLD(f) abuf->fields.sfmt_fdmadds.f
18811 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18812 int UNUSED written = 0;
18813 IADDR UNUSED pc = abuf->addr;
18814 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18815
18816{
18817frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18818 {
18819 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))));
18820 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18821 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18822 }
18823frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18824 {
18825 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)));
18826 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18827 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18828 }
18829}
18830
18831 return vpc;
18832#undef FLD
18833}
18834
18835/* nfdadds: nfdadds$pack $FRi,$FRj,$FRk */
18836
18837static SEM_PC
18838SEM_FN_NAME (frvbf,nfdadds) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18839{
18840#define FLD(f) abuf->fields.sfmt_fdmadds.f
18841 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18842 int UNUSED written = 0;
18843 IADDR UNUSED pc = abuf->addr;
18844 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18845
18846{
18847frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18848 {
18849 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)));
18850 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18851 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18852 }
18853frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18854 {
18855 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))));
18856 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18857 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18858 }
18859}
18860
18861 return vpc;
18862#undef FLD
18863}
18864
18865/* nfdsubs: nfdsubs$pack $FRi,$FRj,$FRk */
18866
18867static SEM_PC
18868SEM_FN_NAME (frvbf,nfdsubs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18869{
18870#define FLD(f) abuf->fields.sfmt_fdmadds.f
18871 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18872 int UNUSED written = 0;
18873 IADDR UNUSED pc = abuf->addr;
18874 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18875
18876{
18877frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18878 {
18879 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)));
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 }
18883frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18884 {
18885 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))));
18886 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18887 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18888 }
18889}
18890
18891 return vpc;
18892#undef FLD
18893}
18894
18895/* nfdmuls: nfdmuls$pack $FRi,$FRj,$FRk */
18896
18897static SEM_PC
18898SEM_FN_NAME (frvbf,nfdmuls) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18899{
18900#define FLD(f) abuf->fields.sfmt_fdmadds.f
18901 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18902 int UNUSED written = 0;
18903 IADDR UNUSED pc = abuf->addr;
18904 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18905
18906{
18907frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18908 {
18909 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)));
18910 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18911 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18912 }
18913frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18914 {
18915 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))));
18916 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18917 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18918 }
18919}
18920
18921 return vpc;
18922#undef FLD
18923}
18924
18925/* nfddivs: nfddivs$pack $FRi,$FRj,$FRk */
18926
18927static SEM_PC
18928SEM_FN_NAME (frvbf,nfddivs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18929{
18930#define FLD(f) abuf->fields.sfmt_fdmadds.f
18931 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18932 int UNUSED written = 0;
18933 IADDR UNUSED pc = abuf->addr;
18934 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18935
18936{
18937frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18938 {
18939 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)));
18940 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18941 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18942 }
18943frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18944 {
18945 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))));
18946 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18947 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18948 }
18949}
18950
18951 return vpc;
18952#undef FLD
18953}
18954
18955/* nfdsads: nfdsads$pack $FRi,$FRj,$FRk */
18956
18957static SEM_PC
18958SEM_FN_NAME (frvbf,nfdsads) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18959{
18960#define FLD(f) abuf->fields.sfmt_fdmadds.f
18961 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18962 int UNUSED written = 0;
18963 IADDR UNUSED pc = abuf->addr;
18964 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18965
18966{
18967frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18968 {
18969 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)));
18970 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, FLD (f_FRk), opval);
18971 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18972 }
18973frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
18974 {
18975 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))));
18976 sim_queue_fn_sf_write (current_cpu, frvbf_h_fr_set, ((FLD (f_FRk)) + (1)), opval);
18977 TRACE_RESULT (current_cpu, abuf, "fr", 'f', opval);
18978 }
18979}
18980
18981 return vpc;
18982#undef FLD
18983}
18984
18985/* nfdcmps: nfdcmps$pack $FRi,$FRj,$FCCi_2 */
18986
18987static SEM_PC
18988SEM_FN_NAME (frvbf,nfdcmps) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
18989{
18990#define FLD(f) abuf->fields.sfmt_nfdcmps.f
18991 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
18992 int UNUSED written = 0;
18993 IADDR UNUSED pc = abuf->addr;
18994 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
18995
18996{
18997frvbf_set_ne_index (current_cpu, FLD (f_FRk));
18998if ((* CGEN_CPU_FPU (current_cpu)->ops->gtsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
18999 {
19000 UQI opval = 2;
19001 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19002 written |= (1 << 8);
19003 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19004 }
19005} else {
19006if ((* CGEN_CPU_FPU (current_cpu)->ops->eqsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
19007 {
19008 UQI opval = 8;
19009 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19010 written |= (1 << 8);
19011 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19012 }
19013} else {
19014if ((* CGEN_CPU_FPU (current_cpu)->ops->ltsf) (CGEN_CPU_FPU (current_cpu), GET_H_FR (FLD (f_FRi)), GET_H_FR (FLD (f_FRj)))) {
19015 {
19016 UQI opval = 4;
19017 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19018 written |= (1 << 8);
19019 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19020 }
19021} else {
19022 {
19023 UQI opval = 1;
19024 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCi_2)]), opval);
19025 written |= (1 << 8);
19026 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19027 }
19028}
19029}
19030}
19031frvbf_set_ne_index (current_cpu, ADDSI (FLD (f_FRk), 1));
19032if ((* 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))))) {
19033 {
19034 UQI opval = 2;
19035 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19036 written |= (1 << 9);
19037 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19038 }
19039} else {
19040if ((* 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))))) {
19041 {
19042 UQI opval = 8;
19043 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19044 written |= (1 << 9);
19045 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19046 }
19047} else {
19048if ((* 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))))) {
19049 {
19050 UQI opval = 4;
19051 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19052 written |= (1 << 9);
19053 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19054 }
19055} else {
19056 {
19057 UQI opval = 1;
19058 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCi_2)) + (1))]), opval);
19059 written |= (1 << 9);
19060 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
19061 }
19062}
19063}
19064}
19065}
19066
19067 abuf->written = written;
19068 return vpc;
19069#undef FLD
19070}
19071
19072/* mhsetlos: mhsetlos$pack $u12,$FRklo */
19073
19074static SEM_PC
19075SEM_FN_NAME (frvbf,mhsetlos) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19076{
19077#define FLD(f) abuf->fields.sfmt_mhsetlos.f
19078 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19079 int UNUSED written = 0;
19080 IADDR UNUSED pc = abuf->addr;
19081 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19082
19083 {
19084 UHI opval = FLD (f_u12);
19085 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19086 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19087 }
19088
19089 return vpc;
19090#undef FLD
19091}
19092
19093/* mhsethis: mhsethis$pack $u12,$FRkhi */
19094
19095static SEM_PC
19096SEM_FN_NAME (frvbf,mhsethis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19097{
19098#define FLD(f) abuf->fields.sfmt_mhsethis.f
19099 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19100 int UNUSED written = 0;
19101 IADDR UNUSED pc = abuf->addr;
19102 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19103
19104 {
19105 UHI opval = FLD (f_u12);
19106 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19107 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19108 }
19109
19110 return vpc;
19111#undef FLD
19112}
19113
19114/* mhdsets: mhdsets$pack $u12,$FRintk */
19115
19116static SEM_PC
19117SEM_FN_NAME (frvbf,mhdsets) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19118{
19119#define FLD(f) abuf->fields.sfmt_mhdsets.f
19120 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19121 int UNUSED written = 0;
19122 IADDR UNUSED pc = abuf->addr;
19123 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19124
19125{
19126 {
19127 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19128 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19129 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19130 }
19131 {
19132 UHI opval = FLD (f_u12);
19133 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19134 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19135 }
19136 {
19137 UHI opval = FLD (f_u12);
19138 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19139 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19140 }
19141}
19142
19143 return vpc;
19144#undef FLD
19145}
19146
19147/* mhsetloh: mhsetloh$pack $s5,$FRklo */
19148
19149static SEM_PC
19150SEM_FN_NAME (frvbf,mhsetloh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19151{
19152#define FLD(f) abuf->fields.sfmt_mhsetloh.f
19153 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19154 int UNUSED written = 0;
19155 IADDR UNUSED pc = abuf->addr;
19156 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19157
19158{
19159 HI tmp_tmp;
19160 tmp_tmp = GET_H_FR_LO (FLD (f_FRk));
19161 tmp_tmp = ANDHI (tmp_tmp, 2047);
19162 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19163 {
19164 UHI opval = tmp_tmp;
19165 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, FLD (f_FRk), opval);
19166 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19167 }
19168}
19169
19170 return vpc;
19171#undef FLD
19172}
19173
19174/* mhsethih: mhsethih$pack $s5,$FRkhi */
19175
19176static SEM_PC
19177SEM_FN_NAME (frvbf,mhsethih) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19178{
19179#define FLD(f) abuf->fields.sfmt_mhsethih.f
19180 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19181 int UNUSED written = 0;
19182 IADDR UNUSED pc = abuf->addr;
19183 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19184
19185{
19186 HI tmp_tmp;
19187 tmp_tmp = GET_H_FR_HI (FLD (f_FRk));
19188 tmp_tmp = ANDHI (tmp_tmp, 2047);
19189 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19190 {
19191 UHI opval = tmp_tmp;
19192 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, FLD (f_FRk), opval);
19193 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19194 }
19195}
19196
19197 return vpc;
19198#undef FLD
19199}
19200
19201/* mhdseth: mhdseth$pack $s5,$FRintk */
19202
19203static SEM_PC
19204SEM_FN_NAME (frvbf,mhdseth) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19205{
19206#define FLD(f) abuf->fields.sfmt_mhdseth.f
19207 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19208 int UNUSED written = 0;
19209 IADDR UNUSED pc = abuf->addr;
19210 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19211
19212{
19213 {
19214 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19215 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19216 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19217 }
19218{
19219 HI tmp_tmp;
19220 tmp_tmp = GET_H_FR_HI (((FLD (f_FRk)) + (0)));
19221 tmp_tmp = ANDHI (tmp_tmp, 2047);
19222 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19223 {
19224 UHI opval = tmp_tmp;
19225 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19226 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19227 }
19228}
19229{
19230 HI tmp_tmp;
19231 tmp_tmp = GET_H_FR_LO (((FLD (f_FRk)) + (0)));
19232 tmp_tmp = ANDHI (tmp_tmp, 2047);
19233 tmp_tmp = ORHI (tmp_tmp, SLLSI (ANDSI (FLD (f_s5), 31), 11));
19234 {
19235 UHI opval = tmp_tmp;
19236 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19237 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19238 }
19239}
19240}
19241
19242 return vpc;
19243#undef FLD
19244}
19245
19246/* mand: mand$pack $FRinti,$FRintj,$FRintk */
19247
19248static SEM_PC
19249SEM_FN_NAME (frvbf,mand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19250{
19251#define FLD(f) abuf->fields.sfmt_mwcut.f
19252 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19253 int UNUSED written = 0;
19254 IADDR UNUSED pc = abuf->addr;
19255 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19256
19257 {
19258 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19259 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19260 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19261 }
19262
19263 return vpc;
19264#undef FLD
19265}
19266
19267/* mor: mor$pack $FRinti,$FRintj,$FRintk */
19268
19269static SEM_PC
19270SEM_FN_NAME (frvbf,mor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19271{
19272#define FLD(f) abuf->fields.sfmt_mwcut.f
19273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19274 int UNUSED written = 0;
19275 IADDR UNUSED pc = abuf->addr;
19276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19277
19278 {
19279 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19280 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19281 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19282 }
19283
19284 return vpc;
19285#undef FLD
19286}
19287
19288/* mxor: mxor$pack $FRinti,$FRintj,$FRintk */
19289
19290static SEM_PC
19291SEM_FN_NAME (frvbf,mxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19292{
19293#define FLD(f) abuf->fields.sfmt_mwcut.f
19294 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19295 int UNUSED written = 0;
19296 IADDR UNUSED pc = abuf->addr;
19297 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19298
19299 {
19300 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19301 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19302 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19303 }
19304
19305 return vpc;
19306#undef FLD
19307}
19308
19309/* cmand: cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19310
19311static SEM_PC
19312SEM_FN_NAME (frvbf,cmand) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19313{
19314#define FLD(f) abuf->fields.sfmt_cmand.f
19315 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19316 int UNUSED written = 0;
19317 IADDR UNUSED pc = abuf->addr;
19318 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19319
19320if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19321 {
19322 SI opval = ANDSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19323 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19324 written |= (1 << 4);
19325 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19326 }
19327}
19328
19329 abuf->written = written;
19330 return vpc;
19331#undef FLD
19332}
19333
19334/* cmor: cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19335
19336static SEM_PC
19337SEM_FN_NAME (frvbf,cmor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19338{
19339#define FLD(f) abuf->fields.sfmt_cmand.f
19340 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19341 int UNUSED written = 0;
19342 IADDR UNUSED pc = abuf->addr;
19343 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19344
19345if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19346 {
19347 SI opval = ORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19348 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19349 written |= (1 << 4);
19350 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19351 }
19352}
19353
19354 abuf->written = written;
19355 return vpc;
19356#undef FLD
19357}
19358
19359/* cmxor: cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
19360
19361static SEM_PC
19362SEM_FN_NAME (frvbf,cmxor) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19363{
19364#define FLD(f) abuf->fields.sfmt_cmand.f
19365 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19366 int UNUSED written = 0;
19367 IADDR UNUSED pc = abuf->addr;
19368 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19369
19370if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19371 {
19372 SI opval = XORSI (GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19373 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19374 written |= (1 << 4);
19375 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19376 }
19377}
19378
19379 abuf->written = written;
19380 return vpc;
19381#undef FLD
19382}
19383
19384/* mnot: mnot$pack $FRintj,$FRintk */
19385
19386static SEM_PC
19387SEM_FN_NAME (frvbf,mnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19388{
19389#define FLD(f) abuf->fields.sfmt_mcut.f
19390 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19391 int UNUSED written = 0;
19392 IADDR UNUSED pc = abuf->addr;
19393 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19394
19395 {
19396 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19397 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19398 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19399 }
19400
19401 return vpc;
19402#undef FLD
19403}
19404
19405/* cmnot: cmnot$pack $FRintj,$FRintk,$CCi,$cond */
19406
19407static SEM_PC
19408SEM_FN_NAME (frvbf,cmnot) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19409{
19410#define FLD(f) abuf->fields.sfmt_cmand.f
19411 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19412 int UNUSED written = 0;
19413 IADDR UNUSED pc = abuf->addr;
19414 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19415
19416if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
19417 {
19418 SI opval = INVSI (GET_H_FR_INT (FLD (f_FRj)));
19419 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19420 written |= (1 << 3);
19421 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19422 }
19423}
19424
19425 abuf->written = written;
19426 return vpc;
19427#undef FLD
19428}
19429
19430/* mrotli: mrotli$pack $FRinti,$u6,$FRintk */
19431
19432static SEM_PC
19433SEM_FN_NAME (frvbf,mrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19434{
19435#define FLD(f) abuf->fields.sfmt_mwcuti.f
19436 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19437 int UNUSED written = 0;
19438 IADDR UNUSED pc = abuf->addr;
19439 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19440
19441 {
19442 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19443 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19444 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19445 }
19446
19447 return vpc;
19448#undef FLD
19449}
19450
19451/* mrotri: mrotri$pack $FRinti,$u6,$FRintk */
19452
19453static SEM_PC
19454SEM_FN_NAME (frvbf,mrotri) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19455{
19456#define FLD(f) abuf->fields.sfmt_mwcuti.f
19457 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19458 int UNUSED written = 0;
19459 IADDR UNUSED pc = abuf->addr;
19460 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19461
19462 {
19463 SI opval = RORSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_u6), 31));
19464 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19465 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19466 }
19467
19468 return vpc;
19469#undef FLD
19470}
19471
19472/* mwcut: mwcut$pack $FRinti,$FRintj,$FRintk */
19473
19474static SEM_PC
19475SEM_FN_NAME (frvbf,mwcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19476{
19477#define FLD(f) abuf->fields.sfmt_mwcut.f
19478 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19479 int UNUSED written = 0;
19480 IADDR UNUSED pc = abuf->addr;
19481 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19482
19483 {
19484 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)));
19485 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19486 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19487 }
19488
19489 return vpc;
19490#undef FLD
19491}
19492
19493/* mwcuti: mwcuti$pack $FRinti,$u6,$FRintk */
19494
19495static SEM_PC
19496SEM_FN_NAME (frvbf,mwcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19497{
19498#define FLD(f) abuf->fields.sfmt_mwcuti.f
19499 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19500 int UNUSED written = 0;
19501 IADDR UNUSED pc = abuf->addr;
19502 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19503
19504 {
19505 SI opval = frvbf_cut (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (((FLD (f_FRi)) + (1))), FLD (f_u6));
19506 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19507 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19508 }
19509
19510 return vpc;
19511#undef FLD
19512}
19513
19514/* mcut: mcut$pack $ACC40Si,$FRintj,$FRintk */
19515
19516static SEM_PC
19517SEM_FN_NAME (frvbf,mcut) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19518{
19519#define FLD(f) abuf->fields.sfmt_mcut.f
19520 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19521 int UNUSED written = 0;
19522 IADDR UNUSED pc = abuf->addr;
19523 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19524
19525 {
19526 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19527 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19528 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19529 }
19530
19531 return vpc;
19532#undef FLD
19533}
19534
19535/* mcuti: mcuti$pack $ACC40Si,$s6,$FRintk */
19536
19537static SEM_PC
19538SEM_FN_NAME (frvbf,mcuti) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19539{
19540#define FLD(f) abuf->fields.sfmt_mcuti.f
19541 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19542 int UNUSED written = 0;
19543 IADDR UNUSED pc = abuf->addr;
19544 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19545
19546 {
19547 SI opval = frvbf_media_cut (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19548 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19549 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19550 }
19551
19552 return vpc;
19553#undef FLD
19554}
19555
19556/* mcutss: mcutss$pack $ACC40Si,$FRintj,$FRintk */
19557
19558static SEM_PC
19559SEM_FN_NAME (frvbf,mcutss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19560{
19561#define FLD(f) abuf->fields.sfmt_mcut.f
19562 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19563 int UNUSED written = 0;
19564 IADDR UNUSED pc = abuf->addr;
19565 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19566
19567 {
19568 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_FR_INT (FLD (f_FRj)));
19569 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19570 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19571 }
19572
19573 return vpc;
19574#undef FLD
19575}
19576
19577/* mcutssi: mcutssi$pack $ACC40Si,$s6,$FRintk */
19578
19579static SEM_PC
19580SEM_FN_NAME (frvbf,mcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19581{
19582#define FLD(f) abuf->fields.sfmt_mcuti.f
19583 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19584 int UNUSED written = 0;
19585 IADDR UNUSED pc = abuf->addr;
19586 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19587
19588 {
19589 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19590 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19591 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19592 }
19593
19594 return vpc;
19595#undef FLD
19596}
19597
19598/* mdcutssi: mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
19599
19600static SEM_PC
19601SEM_FN_NAME (frvbf,mdcutssi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19602{
19603#define FLD(f) abuf->fields.sfmt_mdcutssi.f
19604 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19605 int UNUSED written = 0;
19606 IADDR UNUSED pc = abuf->addr;
19607 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19608
19609if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
19610frvbf_media_acc_not_aligned (current_cpu);
19611} else {
19612if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
19613frvbf_media_register_not_aligned (current_cpu);
19614} else {
19615{
19616 {
19617 SI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (FLD (f_ACC40Si)), FLD (f_s6));
19618 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19619 written |= (1 << 5);
19620 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19621 }
19622 {
19623 USI opval = frvbf_media_cut_ss (current_cpu, GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))), FLD (f_s6));
19624 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19625 written |= (1 << 6);
19626 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19627 }
19628}
19629}
19630}
19631
19632 abuf->written = written;
19633 return vpc;
19634#undef FLD
19635}
19636
19637/* maveh: maveh$pack $FRinti,$FRintj,$FRintk */
19638
19639static SEM_PC
19640SEM_FN_NAME (frvbf,maveh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19641{
19642#define FLD(f) abuf->fields.sfmt_mwcut.f
19643 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19644 int UNUSED written = 0;
19645 IADDR UNUSED pc = abuf->addr;
19646 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19647
19648 {
19649 SI opval = frvbf_media_average (current_cpu, GET_H_FR_INT (FLD (f_FRi)), GET_H_FR_INT (FLD (f_FRj)));
19650 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19651 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19652 }
19653
19654 return vpc;
19655#undef FLD
19656}
19657
19658/* msllhi: msllhi$pack $FRinti,$u6,$FRintk */
19659
19660static SEM_PC
19661SEM_FN_NAME (frvbf,msllhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19662{
19663#define FLD(f) abuf->fields.sfmt_msllhi.f
19664 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19665 int UNUSED written = 0;
19666 IADDR UNUSED pc = abuf->addr;
19667 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19668
19669{
19670 {
19671 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19672 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19673 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19674 }
19675 {
19676 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19677 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19678 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19679 }
19680 {
19681 UHI opval = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19682 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19683 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19684 }
19685 {
19686 UHI opval = SLLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19687 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19688 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19689 }
19690}
19691
19692 return vpc;
19693#undef FLD
19694}
19695
19696/* msrlhi: msrlhi$pack $FRinti,$u6,$FRintk */
19697
19698static SEM_PC
19699SEM_FN_NAME (frvbf,msrlhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19700{
19701#define FLD(f) abuf->fields.sfmt_msllhi.f
19702 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19703 int UNUSED written = 0;
19704 IADDR UNUSED pc = abuf->addr;
19705 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19706
19707{
19708 {
19709 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19710 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19711 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19712 }
19713 {
19714 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19715 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19716 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19717 }
19718 {
19719 UHI opval = SRLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19720 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19721 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19722 }
19723 {
19724 UHI opval = SRLHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19725 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19726 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19727 }
19728}
19729
19730 return vpc;
19731#undef FLD
19732}
19733
19734/* msrahi: msrahi$pack $FRinti,$u6,$FRintk */
19735
19736static SEM_PC
19737SEM_FN_NAME (frvbf,msrahi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19738{
19739#define FLD(f) abuf->fields.sfmt_msllhi.f
19740 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19741 int UNUSED written = 0;
19742 IADDR UNUSED pc = abuf->addr;
19743 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19744
19745{
19746 {
19747 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19748 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19749 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19750 }
19751 {
19752 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19753 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19754 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19755 }
19756 {
19757 UHI opval = SRAHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19758 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19759 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19760 }
19761 {
19762 UHI opval = SRAHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), ANDSI (FLD (f_u6), 15));
19763 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19764 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19765 }
19766}
19767
19768 return vpc;
19769#undef FLD
19770}
19771
19772/* mdrotli: mdrotli$pack $FRintieven,$s6,$FRintkeven */
19773
19774static SEM_PC
19775SEM_FN_NAME (frvbf,mdrotli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19776{
19777#define FLD(f) abuf->fields.sfmt_mdrotli.f
19778 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19779 int UNUSED written = 0;
19780 IADDR UNUSED pc = abuf->addr;
19781 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19782
19783if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1)))) {
19784frvbf_media_register_not_aligned (current_cpu);
19785} else {
19786{
19787 {
19788 SI opval = ROLSI (GET_H_FR_INT (FLD (f_FRi)), ANDSI (FLD (f_s6), 31));
19789 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19790 written |= (1 << 5);
19791 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19792 }
19793 {
19794 USI opval = ROLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), ANDSI (FLD (f_s6), 31));
19795 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, ((FLD (f_FRk)) + (1)), opval);
19796 written |= (1 << 6);
19797 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19798 }
19799}
19800}
19801
19802 abuf->written = written;
19803 return vpc;
19804#undef FLD
19805}
19806
19807/* mcplhi: mcplhi$pack $FRinti,$u6,$FRintk */
19808
19809static SEM_PC
19810SEM_FN_NAME (frvbf,mcplhi) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19811{
19812#define FLD(f) abuf->fields.sfmt_mcplhi.f
19813 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19814 int UNUSED written = 0;
19815 IADDR UNUSED pc = abuf->addr;
19816 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19817
19818{
19819 HI tmp_arg1;
19820 HI tmp_arg2;
19821 HI tmp_shift;
19822 {
19823 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
19824 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
19825 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19826 }
19827 {
19828 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19829 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19830 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19831 }
19832 tmp_shift = ANDSI (FLD (f_u6), 15);
19833 tmp_arg1 = SLLHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), tmp_shift);
19834if (NEHI (tmp_shift, 0)) {
19835{
19836 tmp_arg2 = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
19837 tmp_arg2 = SRLHI (SLLHI (tmp_arg2, SUBSI (15, tmp_shift)), SUBSI (15, tmp_shift));
19838 tmp_arg1 = ORHI (tmp_arg1, tmp_arg2);
19839}
19840}
19841 {
19842 UHI opval = tmp_arg1;
19843 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19844 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19845 }
19846}
19847
19848 return vpc;
19849#undef FLD
19850}
19851
19852/* mcpli: mcpli$pack $FRinti,$u6,$FRintk */
19853
19854static SEM_PC
19855SEM_FN_NAME (frvbf,mcpli) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19856{
19857#define FLD(f) abuf->fields.sfmt_mwcuti.f
19858 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19859 int UNUSED written = 0;
19860 IADDR UNUSED pc = abuf->addr;
19861 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19862
19863{
19864 SI tmp_tmp;
19865 SI tmp_shift;
19866 tmp_shift = ANDSI (FLD (f_u6), 31);
19867 tmp_tmp = SLLSI (GET_H_FR_INT (FLD (f_FRi)), tmp_shift);
19868if (NESI (tmp_shift, 0)) {
19869{
19870 SI tmp_tmp1;
19871 tmp_tmp1 = SRLSI (SLLSI (GET_H_FR_INT (((FLD (f_FRi)) + (1))), SUBSI (31, tmp_shift)), SUBSI (31, tmp_shift));
19872 tmp_tmp = ORSI (tmp_tmp, tmp_tmp1);
19873}
19874}
19875 {
19876 SI opval = tmp_tmp;
19877 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19878 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19879 }
19880}
19881
19882 return vpc;
19883#undef FLD
19884}
19885
19886/* msaths: msaths$pack $FRinti,$FRintj,$FRintk */
19887
19888static SEM_PC
19889SEM_FN_NAME (frvbf,msaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19890{
19891#define FLD(f) abuf->fields.sfmt_cmaddhss.f
19892 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19893 int UNUSED written = 0;
19894 IADDR UNUSED pc = abuf->addr;
19895 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19896
19897{
19898 HI tmp_argihi;
19899 HI tmp_argilo;
19900 HI tmp_argjhi;
19901 HI tmp_argjlo;
19902{
19903 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19904 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19905 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19906 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19907}
19908if (GTHI (tmp_argihi, tmp_argjhi)) {
19909 {
19910 UHI opval = tmp_argjhi;
19911 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19912 written |= (1 << 9);
19913 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19914 }
19915} else {
19916if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
19917 {
19918 UHI opval = INVHI (tmp_argjhi);
19919 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19920 written |= (1 << 9);
19921 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19922 }
19923} else {
19924 {
19925 UHI opval = tmp_argihi;
19926 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19927 written |= (1 << 9);
19928 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
19929 }
19930}
19931}
19932if (GTHI (tmp_argilo, tmp_argjlo)) {
19933 {
19934 UHI opval = tmp_argjlo;
19935 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19936 written |= (1 << 10);
19937 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19938 }
19939} else {
19940if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
19941 {
19942 UHI opval = INVHI (tmp_argjlo);
19943 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19944 written |= (1 << 10);
19945 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19946 }
19947} else {
19948 {
19949 UHI opval = tmp_argilo;
19950 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
19951 written |= (1 << 10);
19952 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
19953 }
19954}
19955}
19956}
19957
19958 abuf->written = written;
19959 return vpc;
19960#undef FLD
19961}
19962
19963/* mqsaths: mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
19964
19965static SEM_PC
19966SEM_FN_NAME (frvbf,mqsaths) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
19967{
19968#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
19969 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
19970 int UNUSED written = 0;
19971 IADDR UNUSED pc = abuf->addr;
19972 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
19973
19974if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
19975frvbf_media_register_not_aligned (current_cpu);
19976} else {
19977{
19978 HI tmp_argihi;
19979 HI tmp_argilo;
19980 HI tmp_argjhi;
19981 HI tmp_argjlo;
19982 {
19983 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
19984 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
19985 written |= (1 << 14);
19986 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
19987 }
19988{
19989 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19990 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
19991 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19992 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
19993}
19994if (GTHI (tmp_argihi, tmp_argjhi)) {
19995 {
19996 UHI opval = tmp_argjhi;
19997 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
19998 written |= (1 << 15);
19999 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20000 }
20001} else {
20002if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20003 {
20004 UHI opval = INVHI (tmp_argjhi);
20005 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20006 written |= (1 << 15);
20007 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20008 }
20009} else {
20010 {
20011 UHI opval = tmp_argihi;
20012 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20013 written |= (1 << 15);
20014 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20015 }
20016}
20017}
20018if (GTHI (tmp_argilo, tmp_argjlo)) {
20019 {
20020 UHI opval = tmp_argjlo;
20021 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20022 written |= (1 << 17);
20023 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20024 }
20025} else {
20026if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20027 {
20028 UHI opval = INVHI (tmp_argjlo);
20029 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20030 written |= (1 << 17);
20031 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20032 }
20033} else {
20034 {
20035 UHI opval = tmp_argilo;
20036 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20037 written |= (1 << 17);
20038 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20039 }
20040}
20041}
20042{
20043 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20044 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20045 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20046 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20047}
20048if (GTHI (tmp_argihi, tmp_argjhi)) {
20049 {
20050 UHI opval = tmp_argjhi;
20051 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20052 written |= (1 << 16);
20053 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20054 }
20055} else {
20056if (LTHI (tmp_argihi, INVHI (tmp_argjhi))) {
20057 {
20058 UHI opval = INVHI (tmp_argjhi);
20059 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20060 written |= (1 << 16);
20061 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20062 }
20063} else {
20064 {
20065 UHI opval = tmp_argihi;
20066 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
20067 written |= (1 << 16);
20068 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20069 }
20070}
20071}
20072if (GTHI (tmp_argilo, tmp_argjlo)) {
20073 {
20074 UHI opval = tmp_argjlo;
20075 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20076 written |= (1 << 18);
20077 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20078 }
20079} else {
20080if (LTHI (tmp_argilo, INVHI (tmp_argjlo))) {
20081 {
20082 UHI opval = INVHI (tmp_argjlo);
20083 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20084 written |= (1 << 18);
20085 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20086 }
20087} else {
20088 {
20089 UHI opval = tmp_argilo;
20090 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
20091 written |= (1 << 18);
20092 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20093 }
20094}
20095}
20096}
20097}
20098
20099 abuf->written = written;
20100 return vpc;
20101#undef FLD
20102}
20103
20104/* msathu: msathu$pack $FRinti,$FRintj,$FRintk */
20105
20106static SEM_PC
20107SEM_FN_NAME (frvbf,msathu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20108{
20109#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20110 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20111 int UNUSED written = 0;
20112 IADDR UNUSED pc = abuf->addr;
20113 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20114
20115{
20116 UHI tmp_argihi;
20117 UHI tmp_argilo;
20118 UHI tmp_argjhi;
20119 UHI tmp_argjlo;
20120{
20121 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20122 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20123 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20124 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20125}
20126if (GTUHI (tmp_argihi, tmp_argjhi)) {
20127 {
20128 UHI opval = tmp_argjhi;
20129 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20130 written |= (1 << 9);
20131 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20132 }
20133} else {
20134 {
20135 UHI opval = tmp_argihi;
20136 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20137 written |= (1 << 9);
20138 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20139 }
20140}
20141if (GTUHI (tmp_argilo, tmp_argjlo)) {
20142 {
20143 UHI opval = tmp_argjlo;
20144 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20145 written |= (1 << 10);
20146 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20147 }
20148} else {
20149 {
20150 UHI opval = tmp_argilo;
20151 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20152 written |= (1 << 10);
20153 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20154 }
20155}
20156}
20157
20158 abuf->written = written;
20159 return vpc;
20160#undef FLD
20161}
20162
20163/* mcmpsh: mcmpsh$pack $FRinti,$FRintj,$FCCk */
20164
20165static SEM_PC
20166SEM_FN_NAME (frvbf,mcmpsh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20167{
20168#define FLD(f) abuf->fields.sfmt_mcmpsh.f
20169 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20170 int UNUSED written = 0;
20171 IADDR UNUSED pc = abuf->addr;
20172 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20173
20174if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20175frvbf_media_cr_not_aligned (current_cpu);
20176} else {
20177{
20178 HI tmp_argihi;
20179 HI tmp_argilo;
20180 HI tmp_argjhi;
20181 HI tmp_argjlo;
20182{
20183 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20184 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20185 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20186 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20187}
20188if (GTHI (tmp_argihi, tmp_argjhi)) {
20189 {
20190 UQI opval = 2;
20191 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20192 written |= (1 << 9);
20193 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20194 }
20195} else {
20196if (EQHI (tmp_argihi, tmp_argjhi)) {
20197 {
20198 UQI opval = 8;
20199 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20200 written |= (1 << 9);
20201 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20202 }
20203} else {
20204if (LTHI (tmp_argihi, tmp_argjhi)) {
20205 {
20206 UQI opval = 4;
20207 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20208 written |= (1 << 9);
20209 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20210 }
20211} else {
20212 {
20213 UQI opval = 1;
20214 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20215 written |= (1 << 9);
20216 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20217 }
20218}
20219}
20220}
20221if (GTHI (tmp_argilo, tmp_argjlo)) {
20222 {
20223 UQI opval = 2;
20224 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20225 written |= (1 << 10);
20226 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20227 }
20228} else {
20229if (EQHI (tmp_argilo, tmp_argjlo)) {
20230 {
20231 UQI opval = 8;
20232 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20233 written |= (1 << 10);
20234 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20235 }
20236} else {
20237if (LTHI (tmp_argilo, tmp_argjlo)) {
20238 {
20239 UQI opval = 4;
20240 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20241 written |= (1 << 10);
20242 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20243 }
20244} else {
20245 {
20246 UQI opval = 1;
20247 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20248 written |= (1 << 10);
20249 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20250 }
20251}
20252}
20253}
20254}
20255}
20256
20257 abuf->written = written;
20258 return vpc;
20259#undef FLD
20260}
20261
20262/* mcmpuh: mcmpuh$pack $FRinti,$FRintj,$FCCk */
20263
20264static SEM_PC
20265SEM_FN_NAME (frvbf,mcmpuh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20266{
20267#define FLD(f) abuf->fields.sfmt_mcmpsh.f
20268 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20269 int UNUSED written = 0;
20270 IADDR UNUSED pc = abuf->addr;
20271 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20272
20273if (ANDSI (FLD (f_FCCk), SUBSI (2, 1))) {
20274frvbf_media_cr_not_aligned (current_cpu);
20275} else {
20276{
20277 UHI tmp_argihi;
20278 UHI tmp_argilo;
20279 UHI tmp_argjhi;
20280 UHI tmp_argjlo;
20281{
20282 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20283 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20284 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20285 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20286}
20287if (GTUHI (tmp_argihi, tmp_argjhi)) {
20288 {
20289 UQI opval = 2;
20290 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20291 written |= (1 << 9);
20292 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20293 }
20294} else {
20295if (EQHI (tmp_argihi, tmp_argjhi)) {
20296 {
20297 UQI opval = 8;
20298 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20299 written |= (1 << 9);
20300 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20301 }
20302} else {
20303if (LTUHI (tmp_argihi, tmp_argjhi)) {
20304 {
20305 UQI opval = 4;
20306 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20307 written |= (1 << 9);
20308 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20309 }
20310} else {
20311 {
20312 UQI opval = 1;
20313 sim_queue_qi_write (current_cpu, & CPU (h_fccr[FLD (f_FCCk)]), opval);
20314 written |= (1 << 9);
20315 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20316 }
20317}
20318}
20319}
20320if (GTUHI (tmp_argilo, tmp_argjlo)) {
20321 {
20322 UQI opval = 2;
20323 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20324 written |= (1 << 10);
20325 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20326 }
20327} else {
20328if (EQHI (tmp_argilo, tmp_argjlo)) {
20329 {
20330 UQI opval = 8;
20331 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20332 written |= (1 << 10);
20333 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20334 }
20335} else {
20336if (LTUHI (tmp_argilo, tmp_argjlo)) {
20337 {
20338 UQI opval = 4;
20339 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20340 written |= (1 << 10);
20341 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20342 }
20343} else {
20344 {
20345 UQI opval = 1;
20346 sim_queue_qi_write (current_cpu, & CPU (h_fccr[((FLD (f_FCCk)) + (1))]), opval);
20347 written |= (1 << 10);
20348 TRACE_RESULT (current_cpu, abuf, "fccr", 'x', opval);
20349 }
20350}
20351}
20352}
20353}
20354}
20355
20356 abuf->written = written;
20357 return vpc;
20358#undef FLD
20359}
20360
20361/* mabshs: mabshs$pack $FRintj,$FRintk */
20362
20363static SEM_PC
20364SEM_FN_NAME (frvbf,mabshs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20365{
20366#define FLD(f) abuf->fields.sfmt_mabshs.f
20367 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20368 int UNUSED written = 0;
20369 IADDR UNUSED pc = abuf->addr;
20370 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20371
20372{
20373 HI tmp_arghi;
20374 HI tmp_arglo;
20375 {
20376 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
20377 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
20378 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20379 }
20380 {
20381 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
20382 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
20383 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
20384 }
20385 tmp_arghi = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
20386 tmp_arglo = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
20387if (GTDI (ABSHI (tmp_arghi), 32767)) {
20388{
20389 {
20390 UHI opval = 32767;
20391 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20392 written |= (1 << 8);
20393 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20394 }
20395frvbf_media_overflow (current_cpu, 8);
20396}
20397} else {
20398if (LTDI (ABSHI (tmp_arghi), -32768)) {
20399{
20400 {
20401 UHI opval = -32768;
20402 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20403 written |= (1 << 8);
20404 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20405 }
20406frvbf_media_overflow (current_cpu, 8);
20407}
20408} else {
20409 {
20410 UHI opval = ABSHI (tmp_arghi);
20411 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20412 written |= (1 << 8);
20413 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20414 }
20415}
20416}
20417if (GTDI (ABSHI (tmp_arglo), 32767)) {
20418{
20419 {
20420 UHI opval = 32767;
20421 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20422 written |= (1 << 9);
20423 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20424 }
20425frvbf_media_overflow (current_cpu, 4);
20426}
20427} else {
20428if (LTDI (ABSHI (tmp_arglo), -32768)) {
20429{
20430 {
20431 UHI opval = -32768;
20432 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20433 written |= (1 << 9);
20434 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20435 }
20436frvbf_media_overflow (current_cpu, 4);
20437}
20438} else {
20439 {
20440 UHI opval = ABSHI (tmp_arglo);
20441 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20442 written |= (1 << 9);
20443 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20444 }
20445}
20446}
20447}
20448
20449 abuf->written = written;
20450 return vpc;
20451#undef FLD
20452}
20453
20454/* maddhss: maddhss$pack $FRinti,$FRintj,$FRintk */
20455
20456static SEM_PC
20457SEM_FN_NAME (frvbf,maddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20458{
20459#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20460 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20461 int UNUSED written = 0;
20462 IADDR UNUSED pc = abuf->addr;
20463 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20464
20465{
20466 HI tmp_argihi;
20467 HI tmp_argilo;
20468 HI tmp_argjhi;
20469 HI tmp_argjlo;
20470{
20471 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20472 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20473 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20474 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20475}
20476{
20477 DI tmp_tmp;
20478 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20479if (GTDI (tmp_tmp, 32767)) {
20480{
20481 {
20482 UHI opval = 32767;
20483 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20484 written |= (1 << 9);
20485 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20486 }
20487frvbf_media_overflow (current_cpu, 8);
20488}
20489} else {
20490if (LTDI (tmp_tmp, -32768)) {
20491{
20492 {
20493 UHI opval = -32768;
20494 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20495 written |= (1 << 9);
20496 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20497 }
20498frvbf_media_overflow (current_cpu, 8);
20499}
20500} else {
20501 {
20502 UHI opval = tmp_tmp;
20503 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20504 written |= (1 << 9);
20505 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20506 }
20507}
20508}
20509}
20510{
20511 DI tmp_tmp;
20512 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20513if (GTDI (tmp_tmp, 32767)) {
20514{
20515 {
20516 UHI opval = 32767;
20517 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20518 written |= (1 << 10);
20519 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20520 }
20521frvbf_media_overflow (current_cpu, 4);
20522}
20523} else {
20524if (LTDI (tmp_tmp, -32768)) {
20525{
20526 {
20527 UHI opval = -32768;
20528 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20529 written |= (1 << 10);
20530 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20531 }
20532frvbf_media_overflow (current_cpu, 4);
20533}
20534} else {
20535 {
20536 UHI opval = tmp_tmp;
20537 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20538 written |= (1 << 10);
20539 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20540 }
20541}
20542}
20543}
20544}
20545
20546 abuf->written = written;
20547 return vpc;
20548#undef FLD
20549}
20550
20551/* maddhus: maddhus$pack $FRinti,$FRintj,$FRintk */
20552
20553static SEM_PC
20554SEM_FN_NAME (frvbf,maddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20555{
20556#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20557 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20558 int UNUSED written = 0;
20559 IADDR UNUSED pc = abuf->addr;
20560 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20561
20562{
20563 UHI tmp_argihi;
20564 UHI tmp_argilo;
20565 UHI tmp_argjhi;
20566 UHI tmp_argjlo;
20567{
20568 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20569 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20570 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20571 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20572}
20573{
20574 DI tmp_tmp;
20575 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20576if (GTDI (tmp_tmp, 65535)) {
20577{
20578 {
20579 UHI opval = 65535;
20580 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20581 written |= (1 << 9);
20582 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20583 }
20584frvbf_media_overflow (current_cpu, 8);
20585}
20586} else {
20587if (LTDI (tmp_tmp, 0)) {
20588{
20589 {
20590 UHI opval = 0;
20591 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20592 written |= (1 << 9);
20593 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20594 }
20595frvbf_media_overflow (current_cpu, 8);
20596}
20597} else {
20598 {
20599 UHI opval = tmp_tmp;
20600 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20601 written |= (1 << 9);
20602 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20603 }
20604}
20605}
20606}
20607{
20608 DI tmp_tmp;
20609 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20610if (GTDI (tmp_tmp, 65535)) {
20611{
20612 {
20613 UHI opval = 65535;
20614 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20615 written |= (1 << 10);
20616 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20617 }
20618frvbf_media_overflow (current_cpu, 4);
20619}
20620} else {
20621if (LTDI (tmp_tmp, 0)) {
20622{
20623 {
20624 UHI opval = 0;
20625 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20626 written |= (1 << 10);
20627 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20628 }
20629frvbf_media_overflow (current_cpu, 4);
20630}
20631} else {
20632 {
20633 UHI opval = tmp_tmp;
20634 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20635 written |= (1 << 10);
20636 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20637 }
20638}
20639}
20640}
20641}
20642
20643 abuf->written = written;
20644 return vpc;
20645#undef FLD
20646}
20647
20648/* msubhss: msubhss$pack $FRinti,$FRintj,$FRintk */
20649
20650static SEM_PC
20651SEM_FN_NAME (frvbf,msubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20652{
20653#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20654 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20655 int UNUSED written = 0;
20656 IADDR UNUSED pc = abuf->addr;
20657 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20658
20659{
20660 HI tmp_argihi;
20661 HI tmp_argilo;
20662 HI tmp_argjhi;
20663 HI tmp_argjlo;
20664{
20665 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20666 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20667 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20668 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20669}
20670{
20671 DI tmp_tmp;
20672 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20673if (GTDI (tmp_tmp, 32767)) {
20674{
20675 {
20676 UHI opval = 32767;
20677 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20678 written |= (1 << 9);
20679 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20680 }
20681frvbf_media_overflow (current_cpu, 8);
20682}
20683} else {
20684if (LTDI (tmp_tmp, -32768)) {
20685{
20686 {
20687 UHI opval = -32768;
20688 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20689 written |= (1 << 9);
20690 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20691 }
20692frvbf_media_overflow (current_cpu, 8);
20693}
20694} else {
20695 {
20696 UHI opval = tmp_tmp;
20697 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20698 written |= (1 << 9);
20699 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20700 }
20701}
20702}
20703}
20704{
20705 DI tmp_tmp;
20706 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20707if (GTDI (tmp_tmp, 32767)) {
20708{
20709 {
20710 UHI opval = 32767;
20711 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20712 written |= (1 << 10);
20713 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20714 }
20715frvbf_media_overflow (current_cpu, 4);
20716}
20717} else {
20718if (LTDI (tmp_tmp, -32768)) {
20719{
20720 {
20721 UHI opval = -32768;
20722 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20723 written |= (1 << 10);
20724 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20725 }
20726frvbf_media_overflow (current_cpu, 4);
20727}
20728} else {
20729 {
20730 UHI opval = tmp_tmp;
20731 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20732 written |= (1 << 10);
20733 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20734 }
20735}
20736}
20737}
20738}
20739
20740 abuf->written = written;
20741 return vpc;
20742#undef FLD
20743}
20744
20745/* msubhus: msubhus$pack $FRinti,$FRintj,$FRintk */
20746
20747static SEM_PC
20748SEM_FN_NAME (frvbf,msubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20749{
20750#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20751 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20752 int UNUSED written = 0;
20753 IADDR UNUSED pc = abuf->addr;
20754 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20755
20756{
20757 UHI tmp_argihi;
20758 UHI tmp_argilo;
20759 UHI tmp_argjhi;
20760 UHI tmp_argjlo;
20761{
20762 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20763 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20764 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20765 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20766}
20767{
20768 DI tmp_tmp;
20769 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
20770if (GTDI (tmp_tmp, 65535)) {
20771{
20772 {
20773 UHI opval = 65535;
20774 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20775 written |= (1 << 9);
20776 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20777 }
20778frvbf_media_overflow (current_cpu, 8);
20779}
20780} else {
20781if (LTDI (tmp_tmp, 0)) {
20782{
20783 {
20784 UHI opval = 0;
20785 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20786 written |= (1 << 9);
20787 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20788 }
20789frvbf_media_overflow (current_cpu, 8);
20790}
20791} else {
20792 {
20793 UHI opval = tmp_tmp;
20794 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20795 written |= (1 << 9);
20796 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20797 }
20798}
20799}
20800}
20801{
20802 DI tmp_tmp;
20803 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
20804if (GTDI (tmp_tmp, 65535)) {
20805{
20806 {
20807 UHI opval = 65535;
20808 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20809 written |= (1 << 10);
20810 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20811 }
20812frvbf_media_overflow (current_cpu, 4);
20813}
20814} else {
20815if (LTDI (tmp_tmp, 0)) {
20816{
20817 {
20818 UHI opval = 0;
20819 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20820 written |= (1 << 10);
20821 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20822 }
20823frvbf_media_overflow (current_cpu, 4);
20824}
20825} else {
20826 {
20827 UHI opval = tmp_tmp;
20828 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20829 written |= (1 << 10);
20830 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20831 }
20832}
20833}
20834}
20835}
20836
20837 abuf->written = written;
20838 return vpc;
20839#undef FLD
20840}
20841
20842/* cmaddhss: cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20843
20844static SEM_PC
20845SEM_FN_NAME (frvbf,cmaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20846{
20847#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20848 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20849 int UNUSED written = 0;
20850 IADDR UNUSED pc = abuf->addr;
20851 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20852
20853if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20854{
20855 HI tmp_argihi;
20856 HI tmp_argilo;
20857 HI tmp_argjhi;
20858 HI tmp_argjlo;
20859{
20860 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20861 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20862 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20863 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20864}
20865{
20866 DI tmp_tmp;
20867 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20868if (GTDI (tmp_tmp, 32767)) {
20869{
20870 {
20871 UHI opval = 32767;
20872 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20873 written |= (1 << 11);
20874 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20875 }
20876frvbf_media_overflow (current_cpu, 8);
20877}
20878} else {
20879if (LTDI (tmp_tmp, -32768)) {
20880{
20881 {
20882 UHI opval = -32768;
20883 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20884 written |= (1 << 11);
20885 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20886 }
20887frvbf_media_overflow (current_cpu, 8);
20888}
20889} else {
20890 {
20891 UHI opval = tmp_tmp;
20892 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20893 written |= (1 << 11);
20894 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20895 }
20896}
20897}
20898}
20899{
20900 DI tmp_tmp;
20901 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
20902if (GTDI (tmp_tmp, 32767)) {
20903{
20904 {
20905 UHI opval = 32767;
20906 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20907 written |= (1 << 12);
20908 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20909 }
20910frvbf_media_overflow (current_cpu, 4);
20911}
20912} else {
20913if (LTDI (tmp_tmp, -32768)) {
20914{
20915 {
20916 UHI opval = -32768;
20917 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20918 written |= (1 << 12);
20919 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20920 }
20921frvbf_media_overflow (current_cpu, 4);
20922}
20923} else {
20924 {
20925 UHI opval = tmp_tmp;
20926 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
20927 written |= (1 << 12);
20928 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
20929 }
20930}
20931}
20932}
20933}
20934}
20935
20936 abuf->written = written;
20937 return vpc;
20938#undef FLD
20939}
20940
20941/* cmaddhus: cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
20942
20943static SEM_PC
20944SEM_FN_NAME (frvbf,cmaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
20945{
20946#define FLD(f) abuf->fields.sfmt_cmaddhss.f
20947 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
20948 int UNUSED written = 0;
20949 IADDR UNUSED pc = abuf->addr;
20950 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
20951
20952if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
20953{
20954 UHI tmp_argihi;
20955 UHI tmp_argilo;
20956 UHI tmp_argjhi;
20957 UHI tmp_argjlo;
20958{
20959 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20960 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
20961 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20962 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
20963}
20964{
20965 DI tmp_tmp;
20966 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
20967if (GTDI (tmp_tmp, 65535)) {
20968{
20969 {
20970 UHI opval = 65535;
20971 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20972 written |= (1 << 11);
20973 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20974 }
20975frvbf_media_overflow (current_cpu, 8);
20976}
20977} else {
20978if (LTDI (tmp_tmp, 0)) {
20979{
20980 {
20981 UHI opval = 0;
20982 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20983 written |= (1 << 11);
20984 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20985 }
20986frvbf_media_overflow (current_cpu, 8);
20987}
20988} else {
20989 {
20990 UHI opval = tmp_tmp;
20991 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
20992 written |= (1 << 11);
20993 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
20994 }
20995}
20996}
20997}
20998{
20999 DI tmp_tmp;
21000 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21001if (GTDI (tmp_tmp, 65535)) {
21002{
21003 {
21004 UHI opval = 65535;
21005 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21006 written |= (1 << 12);
21007 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21008 }
21009frvbf_media_overflow (current_cpu, 4);
21010}
21011} else {
21012if (LTDI (tmp_tmp, 0)) {
21013{
21014 {
21015 UHI opval = 0;
21016 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21017 written |= (1 << 12);
21018 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21019 }
21020frvbf_media_overflow (current_cpu, 4);
21021}
21022} else {
21023 {
21024 UHI opval = tmp_tmp;
21025 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21026 written |= (1 << 12);
21027 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21028 }
21029}
21030}
21031}
21032}
21033}
21034
21035 abuf->written = written;
21036 return vpc;
21037#undef FLD
21038}
21039
21040/* cmsubhss: cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21041
21042static SEM_PC
21043SEM_FN_NAME (frvbf,cmsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21044{
21045#define FLD(f) abuf->fields.sfmt_cmaddhss.f
21046 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21047 int UNUSED written = 0;
21048 IADDR UNUSED pc = abuf->addr;
21049 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21050
21051if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21052{
21053 HI tmp_argihi;
21054 HI tmp_argilo;
21055 HI tmp_argjhi;
21056 HI tmp_argjlo;
21057{
21058 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21059 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21060 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21061 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21062}
21063{
21064 DI tmp_tmp;
21065 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21066if (GTDI (tmp_tmp, 32767)) {
21067{
21068 {
21069 UHI opval = 32767;
21070 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21071 written |= (1 << 11);
21072 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21073 }
21074frvbf_media_overflow (current_cpu, 8);
21075}
21076} else {
21077if (LTDI (tmp_tmp, -32768)) {
21078{
21079 {
21080 UHI opval = -32768;
21081 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21082 written |= (1 << 11);
21083 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21084 }
21085frvbf_media_overflow (current_cpu, 8);
21086}
21087} else {
21088 {
21089 UHI opval = tmp_tmp;
21090 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21091 written |= (1 << 11);
21092 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21093 }
21094}
21095}
21096}
21097{
21098 DI tmp_tmp;
21099 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21100if (GTDI (tmp_tmp, 32767)) {
21101{
21102 {
21103 UHI opval = 32767;
21104 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21105 written |= (1 << 12);
21106 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21107 }
21108frvbf_media_overflow (current_cpu, 4);
21109}
21110} else {
21111if (LTDI (tmp_tmp, -32768)) {
21112{
21113 {
21114 UHI opval = -32768;
21115 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21116 written |= (1 << 12);
21117 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21118 }
21119frvbf_media_overflow (current_cpu, 4);
21120}
21121} else {
21122 {
21123 UHI opval = tmp_tmp;
21124 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21125 written |= (1 << 12);
21126 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21127 }
21128}
21129}
21130}
21131}
21132}
21133
21134 abuf->written = written;
21135 return vpc;
21136#undef FLD
21137}
21138
21139/* cmsubhus: cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
21140
21141static SEM_PC
21142SEM_FN_NAME (frvbf,cmsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21143{
21144#define FLD(f) abuf->fields.sfmt_cmaddhss.f
21145 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21146 int UNUSED written = 0;
21147 IADDR UNUSED pc = abuf->addr;
21148 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21149
21150if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21151{
21152 UHI tmp_argihi;
21153 UHI tmp_argilo;
21154 UHI tmp_argjhi;
21155 UHI tmp_argjlo;
21156{
21157 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21158 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21159 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21160 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21161}
21162{
21163 DI tmp_tmp;
21164 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21165if (GTDI (tmp_tmp, 65535)) {
21166{
21167 {
21168 UHI opval = 65535;
21169 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21170 written |= (1 << 11);
21171 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21172 }
21173frvbf_media_overflow (current_cpu, 8);
21174}
21175} else {
21176if (LTDI (tmp_tmp, 0)) {
21177{
21178 {
21179 UHI opval = 0;
21180 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21181 written |= (1 << 11);
21182 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21183 }
21184frvbf_media_overflow (current_cpu, 8);
21185}
21186} else {
21187 {
21188 UHI opval = tmp_tmp;
21189 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21190 written |= (1 << 11);
21191 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21192 }
21193}
21194}
21195}
21196{
21197 DI tmp_tmp;
21198 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21199if (GTDI (tmp_tmp, 65535)) {
21200{
21201 {
21202 UHI opval = 65535;
21203 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21204 written |= (1 << 12);
21205 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21206 }
21207frvbf_media_overflow (current_cpu, 4);
21208}
21209} else {
21210if (LTDI (tmp_tmp, 0)) {
21211{
21212 {
21213 UHI opval = 0;
21214 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21215 written |= (1 << 12);
21216 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21217 }
21218frvbf_media_overflow (current_cpu, 4);
21219}
21220} else {
21221 {
21222 UHI opval = tmp_tmp;
21223 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21224 written |= (1 << 12);
21225 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21226 }
21227}
21228}
21229}
21230}
21231}
21232
21233 abuf->written = written;
21234 return vpc;
21235#undef FLD
21236}
21237
21238/* mqaddhss: mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21239
21240static SEM_PC
21241SEM_FN_NAME (frvbf,mqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21242{
21243#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21244 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21245 int UNUSED written = 0;
21246 IADDR UNUSED pc = abuf->addr;
21247 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21248
21249if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21250frvbf_media_register_not_aligned (current_cpu);
21251} else {
21252{
21253 HI tmp_argihi;
21254 HI tmp_argilo;
21255 HI tmp_argjhi;
21256 HI tmp_argjlo;
21257 {
21258 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21259 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21260 written |= (1 << 14);
21261 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21262 }
21263{
21264 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21265 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21266 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21267 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21268}
21269{
21270 DI tmp_tmp;
21271 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21272if (GTDI (tmp_tmp, 32767)) {
21273{
21274 {
21275 UHI opval = 32767;
21276 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21277 written |= (1 << 15);
21278 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21279 }
21280frvbf_media_overflow (current_cpu, 8);
21281}
21282} else {
21283if (LTDI (tmp_tmp, -32768)) {
21284{
21285 {
21286 UHI opval = -32768;
21287 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21288 written |= (1 << 15);
21289 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21290 }
21291frvbf_media_overflow (current_cpu, 8);
21292}
21293} else {
21294 {
21295 UHI opval = tmp_tmp;
21296 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21297 written |= (1 << 15);
21298 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21299 }
21300}
21301}
21302}
21303{
21304 DI tmp_tmp;
21305 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21306if (GTDI (tmp_tmp, 32767)) {
21307{
21308 {
21309 UHI opval = 32767;
21310 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21311 written |= (1 << 17);
21312 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21313 }
21314frvbf_media_overflow (current_cpu, 4);
21315}
21316} else {
21317if (LTDI (tmp_tmp, -32768)) {
21318{
21319 {
21320 UHI opval = -32768;
21321 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21322 written |= (1 << 17);
21323 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21324 }
21325frvbf_media_overflow (current_cpu, 4);
21326}
21327} else {
21328 {
21329 UHI opval = tmp_tmp;
21330 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21331 written |= (1 << 17);
21332 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21333 }
21334}
21335}
21336}
21337{
21338 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21339 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21340 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21341 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21342}
21343{
21344 DI tmp_tmp;
21345 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21346if (GTDI (tmp_tmp, 32767)) {
21347{
21348 {
21349 UHI opval = 32767;
21350 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21351 written |= (1 << 16);
21352 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21353 }
21354frvbf_media_overflow (current_cpu, 2);
21355}
21356} else {
21357if (LTDI (tmp_tmp, -32768)) {
21358{
21359 {
21360 UHI opval = -32768;
21361 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21362 written |= (1 << 16);
21363 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21364 }
21365frvbf_media_overflow (current_cpu, 2);
21366}
21367} else {
21368 {
21369 UHI opval = tmp_tmp;
21370 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21371 written |= (1 << 16);
21372 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21373 }
21374}
21375}
21376}
21377{
21378 DI tmp_tmp;
21379 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21380if (GTDI (tmp_tmp, 32767)) {
21381{
21382 {
21383 UHI opval = 32767;
21384 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21385 written |= (1 << 18);
21386 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21387 }
21388frvbf_media_overflow (current_cpu, 1);
21389}
21390} else {
21391if (LTDI (tmp_tmp, -32768)) {
21392{
21393 {
21394 UHI opval = -32768;
21395 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21396 written |= (1 << 18);
21397 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21398 }
21399frvbf_media_overflow (current_cpu, 1);
21400}
21401} else {
21402 {
21403 UHI opval = tmp_tmp;
21404 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21405 written |= (1 << 18);
21406 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21407 }
21408}
21409}
21410}
21411}
21412}
21413
21414 abuf->written = written;
21415 return vpc;
21416#undef FLD
21417}
21418
21419/* mqaddhus: mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21420
21421static SEM_PC
21422SEM_FN_NAME (frvbf,mqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21423{
21424#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21425 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21426 int UNUSED written = 0;
21427 IADDR UNUSED pc = abuf->addr;
21428 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21429
21430if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21431frvbf_media_register_not_aligned (current_cpu);
21432} else {
21433{
21434 UHI tmp_argihi;
21435 UHI tmp_argilo;
21436 UHI tmp_argjhi;
21437 UHI tmp_argjlo;
21438 {
21439 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21440 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21441 written |= (1 << 14);
21442 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21443 }
21444{
21445 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21446 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21447 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21448 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21449}
21450{
21451 DI tmp_tmp;
21452 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21453if (GTDI (tmp_tmp, 65535)) {
21454{
21455 {
21456 UHI opval = 65535;
21457 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21458 written |= (1 << 15);
21459 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21460 }
21461frvbf_media_overflow (current_cpu, 8);
21462}
21463} else {
21464if (LTDI (tmp_tmp, 0)) {
21465{
21466 {
21467 UHI opval = 0;
21468 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21469 written |= (1 << 15);
21470 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21471 }
21472frvbf_media_overflow (current_cpu, 8);
21473}
21474} else {
21475 {
21476 UHI opval = tmp_tmp;
21477 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21478 written |= (1 << 15);
21479 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21480 }
21481}
21482}
21483}
21484{
21485 DI tmp_tmp;
21486 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21487if (GTDI (tmp_tmp, 65535)) {
21488{
21489 {
21490 UHI opval = 65535;
21491 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21492 written |= (1 << 17);
21493 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21494 }
21495frvbf_media_overflow (current_cpu, 4);
21496}
21497} else {
21498if (LTDI (tmp_tmp, 0)) {
21499{
21500 {
21501 UHI opval = 0;
21502 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21503 written |= (1 << 17);
21504 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21505 }
21506frvbf_media_overflow (current_cpu, 4);
21507}
21508} else {
21509 {
21510 UHI opval = tmp_tmp;
21511 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21512 written |= (1 << 17);
21513 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21514 }
21515}
21516}
21517}
21518{
21519 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21520 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21521 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21522 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21523}
21524{
21525 DI tmp_tmp;
21526 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21527if (GTDI (tmp_tmp, 65535)) {
21528{
21529 {
21530 UHI opval = 65535;
21531 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21532 written |= (1 << 16);
21533 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21534 }
21535frvbf_media_overflow (current_cpu, 2);
21536}
21537} else {
21538if (LTDI (tmp_tmp, 0)) {
21539{
21540 {
21541 UHI opval = 0;
21542 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21543 written |= (1 << 16);
21544 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21545 }
21546frvbf_media_overflow (current_cpu, 2);
21547}
21548} else {
21549 {
21550 UHI opval = tmp_tmp;
21551 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21552 written |= (1 << 16);
21553 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21554 }
21555}
21556}
21557}
21558{
21559 DI tmp_tmp;
21560 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
21561if (GTDI (tmp_tmp, 65535)) {
21562{
21563 {
21564 UHI opval = 65535;
21565 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21566 written |= (1 << 18);
21567 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21568 }
21569frvbf_media_overflow (current_cpu, 1);
21570}
21571} else {
21572if (LTDI (tmp_tmp, 0)) {
21573{
21574 {
21575 UHI opval = 0;
21576 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21577 written |= (1 << 18);
21578 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21579 }
21580frvbf_media_overflow (current_cpu, 1);
21581}
21582} else {
21583 {
21584 UHI opval = tmp_tmp;
21585 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21586 written |= (1 << 18);
21587 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21588 }
21589}
21590}
21591}
21592}
21593}
21594
21595 abuf->written = written;
21596 return vpc;
21597#undef FLD
21598}
21599
21600/* mqsubhss: mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
21601
21602static SEM_PC
21603SEM_FN_NAME (frvbf,mqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21604{
21605#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21606 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21607 int UNUSED written = 0;
21608 IADDR UNUSED pc = abuf->addr;
21609 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21610
21611if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21612frvbf_media_register_not_aligned (current_cpu);
21613} else {
21614{
21615 HI tmp_argihi;
21616 HI tmp_argilo;
21617 HI tmp_argjhi;
21618 HI tmp_argjlo;
21619 {
21620 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21621 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21622 written |= (1 << 14);
21623 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21624 }
21625{
21626 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21627 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21628 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21629 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21630}
21631{
21632 DI tmp_tmp;
21633 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21634if (GTDI (tmp_tmp, 32767)) {
21635{
21636 {
21637 UHI opval = 32767;
21638 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21639 written |= (1 << 15);
21640 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21641 }
21642frvbf_media_overflow (current_cpu, 8);
21643}
21644} else {
21645if (LTDI (tmp_tmp, -32768)) {
21646{
21647 {
21648 UHI opval = -32768;
21649 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21650 written |= (1 << 15);
21651 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21652 }
21653frvbf_media_overflow (current_cpu, 8);
21654}
21655} else {
21656 {
21657 UHI opval = tmp_tmp;
21658 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21659 written |= (1 << 15);
21660 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21661 }
21662}
21663}
21664}
21665{
21666 DI tmp_tmp;
21667 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21668if (GTDI (tmp_tmp, 32767)) {
21669{
21670 {
21671 UHI opval = 32767;
21672 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21673 written |= (1 << 17);
21674 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21675 }
21676frvbf_media_overflow (current_cpu, 4);
21677}
21678} else {
21679if (LTDI (tmp_tmp, -32768)) {
21680{
21681 {
21682 UHI opval = -32768;
21683 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21684 written |= (1 << 17);
21685 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21686 }
21687frvbf_media_overflow (current_cpu, 4);
21688}
21689} else {
21690 {
21691 UHI opval = tmp_tmp;
21692 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21693 written |= (1 << 17);
21694 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21695 }
21696}
21697}
21698}
21699{
21700 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21701 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21702 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21703 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21704}
21705{
21706 DI tmp_tmp;
21707 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21708if (GTDI (tmp_tmp, 32767)) {
21709{
21710 {
21711 UHI opval = 32767;
21712 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21713 written |= (1 << 16);
21714 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21715 }
21716frvbf_media_overflow (current_cpu, 2);
21717}
21718} else {
21719if (LTDI (tmp_tmp, -32768)) {
21720{
21721 {
21722 UHI opval = -32768;
21723 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21724 written |= (1 << 16);
21725 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21726 }
21727frvbf_media_overflow (current_cpu, 2);
21728}
21729} else {
21730 {
21731 UHI opval = tmp_tmp;
21732 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21733 written |= (1 << 16);
21734 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21735 }
21736}
21737}
21738}
21739{
21740 DI tmp_tmp;
21741 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21742if (GTDI (tmp_tmp, 32767)) {
21743{
21744 {
21745 UHI opval = 32767;
21746 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21747 written |= (1 << 18);
21748 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21749 }
21750frvbf_media_overflow (current_cpu, 1);
21751}
21752} else {
21753if (LTDI (tmp_tmp, -32768)) {
21754{
21755 {
21756 UHI opval = -32768;
21757 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21758 written |= (1 << 18);
21759 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21760 }
21761frvbf_media_overflow (current_cpu, 1);
21762}
21763} else {
21764 {
21765 UHI opval = tmp_tmp;
21766 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21767 written |= (1 << 18);
21768 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21769 }
21770}
21771}
21772}
21773}
21774}
21775
21776 abuf->written = written;
21777 return vpc;
21778#undef FLD
21779}
21780
21781/* mqsubhus: mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
21782
21783static SEM_PC
21784SEM_FN_NAME (frvbf,mqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21785{
21786#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21787 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21788 int UNUSED written = 0;
21789 IADDR UNUSED pc = abuf->addr;
21790 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21791
21792if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21793frvbf_media_register_not_aligned (current_cpu);
21794} else {
21795{
21796 UHI tmp_argihi;
21797 UHI tmp_argilo;
21798 UHI tmp_argjhi;
21799 UHI tmp_argjlo;
21800 {
21801 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21802 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21803 written |= (1 << 14);
21804 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21805 }
21806{
21807 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21808 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21809 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21810 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21811}
21812{
21813 DI tmp_tmp;
21814 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21815if (GTDI (tmp_tmp, 65535)) {
21816{
21817 {
21818 UHI opval = 65535;
21819 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21820 written |= (1 << 15);
21821 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21822 }
21823frvbf_media_overflow (current_cpu, 8);
21824}
21825} else {
21826if (LTDI (tmp_tmp, 0)) {
21827{
21828 {
21829 UHI opval = 0;
21830 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21831 written |= (1 << 15);
21832 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21833 }
21834frvbf_media_overflow (current_cpu, 8);
21835}
21836} else {
21837 {
21838 UHI opval = tmp_tmp;
21839 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
21840 written |= (1 << 15);
21841 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21842 }
21843}
21844}
21845}
21846{
21847 DI tmp_tmp;
21848 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21849if (GTDI (tmp_tmp, 65535)) {
21850{
21851 {
21852 UHI opval = 65535;
21853 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21854 written |= (1 << 17);
21855 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21856 }
21857frvbf_media_overflow (current_cpu, 4);
21858}
21859} else {
21860if (LTDI (tmp_tmp, 0)) {
21861{
21862 {
21863 UHI opval = 0;
21864 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21865 written |= (1 << 17);
21866 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21867 }
21868frvbf_media_overflow (current_cpu, 4);
21869}
21870} else {
21871 {
21872 UHI opval = tmp_tmp;
21873 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
21874 written |= (1 << 17);
21875 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21876 }
21877}
21878}
21879}
21880{
21881 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21882 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21883 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21884 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21885}
21886{
21887 DI tmp_tmp;
21888 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
21889if (GTDI (tmp_tmp, 65535)) {
21890{
21891 {
21892 UHI opval = 65535;
21893 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21894 written |= (1 << 16);
21895 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21896 }
21897frvbf_media_overflow (current_cpu, 2);
21898}
21899} else {
21900if (LTDI (tmp_tmp, 0)) {
21901{
21902 {
21903 UHI opval = 0;
21904 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21905 written |= (1 << 16);
21906 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21907 }
21908frvbf_media_overflow (current_cpu, 2);
21909}
21910} else {
21911 {
21912 UHI opval = tmp_tmp;
21913 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
21914 written |= (1 << 16);
21915 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
21916 }
21917}
21918}
21919}
21920{
21921 DI tmp_tmp;
21922 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
21923if (GTDI (tmp_tmp, 65535)) {
21924{
21925 {
21926 UHI opval = 65535;
21927 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21928 written |= (1 << 18);
21929 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21930 }
21931frvbf_media_overflow (current_cpu, 1);
21932}
21933} else {
21934if (LTDI (tmp_tmp, 0)) {
21935{
21936 {
21937 UHI opval = 0;
21938 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21939 written |= (1 << 18);
21940 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21941 }
21942frvbf_media_overflow (current_cpu, 1);
21943}
21944} else {
21945 {
21946 UHI opval = tmp_tmp;
21947 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
21948 written |= (1 << 18);
21949 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
21950 }
21951}
21952}
21953}
21954}
21955}
21956
21957 abuf->written = written;
21958 return vpc;
21959#undef FLD
21960}
21961
21962/* cmqaddhss: cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
21963
21964static SEM_PC
21965SEM_FN_NAME (frvbf,cmqaddhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
21966{
21967#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
21968 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
21969 int UNUSED written = 0;
21970 IADDR UNUSED pc = abuf->addr;
21971 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
21972
21973if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
21974frvbf_media_register_not_aligned (current_cpu);
21975} else {
21976if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
21977{
21978 HI tmp_argihi;
21979 HI tmp_argilo;
21980 HI tmp_argjhi;
21981 HI tmp_argjlo;
21982 {
21983 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
21984 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
21985 written |= (1 << 16);
21986 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
21987 }
21988{
21989 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21990 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
21991 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21992 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
21993}
21994{
21995 DI tmp_tmp;
21996 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
21997if (GTDI (tmp_tmp, 32767)) {
21998{
21999 {
22000 UHI opval = 32767;
22001 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22002 written |= (1 << 17);
22003 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22004 }
22005frvbf_media_overflow (current_cpu, 8);
22006}
22007} else {
22008if (LTDI (tmp_tmp, -32768)) {
22009{
22010 {
22011 UHI opval = -32768;
22012 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22013 written |= (1 << 17);
22014 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22015 }
22016frvbf_media_overflow (current_cpu, 8);
22017}
22018} else {
22019 {
22020 UHI opval = tmp_tmp;
22021 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22022 written |= (1 << 17);
22023 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22024 }
22025}
22026}
22027}
22028{
22029 DI tmp_tmp;
22030 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22031if (GTDI (tmp_tmp, 32767)) {
22032{
22033 {
22034 UHI opval = 32767;
22035 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22036 written |= (1 << 19);
22037 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22038 }
22039frvbf_media_overflow (current_cpu, 4);
22040}
22041} else {
22042if (LTDI (tmp_tmp, -32768)) {
22043{
22044 {
22045 UHI opval = -32768;
22046 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22047 written |= (1 << 19);
22048 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22049 }
22050frvbf_media_overflow (current_cpu, 4);
22051}
22052} else {
22053 {
22054 UHI opval = tmp_tmp;
22055 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22056 written |= (1 << 19);
22057 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22058 }
22059}
22060}
22061}
22062{
22063 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22064 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22065 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22066 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22067}
22068{
22069 DI tmp_tmp;
22070 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22071if (GTDI (tmp_tmp, 32767)) {
22072{
22073 {
22074 UHI opval = 32767;
22075 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22076 written |= (1 << 18);
22077 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22078 }
22079frvbf_media_overflow (current_cpu, 2);
22080}
22081} else {
22082if (LTDI (tmp_tmp, -32768)) {
22083{
22084 {
22085 UHI opval = -32768;
22086 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22087 written |= (1 << 18);
22088 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22089 }
22090frvbf_media_overflow (current_cpu, 2);
22091}
22092} else {
22093 {
22094 UHI opval = tmp_tmp;
22095 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22096 written |= (1 << 18);
22097 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22098 }
22099}
22100}
22101}
22102{
22103 DI tmp_tmp;
22104 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22105if (GTDI (tmp_tmp, 32767)) {
22106{
22107 {
22108 UHI opval = 32767;
22109 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22110 written |= (1 << 20);
22111 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22112 }
22113frvbf_media_overflow (current_cpu, 1);
22114}
22115} else {
22116if (LTDI (tmp_tmp, -32768)) {
22117{
22118 {
22119 UHI opval = -32768;
22120 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22121 written |= (1 << 20);
22122 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22123 }
22124frvbf_media_overflow (current_cpu, 1);
22125}
22126} else {
22127 {
22128 UHI opval = tmp_tmp;
22129 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22130 written |= (1 << 20);
22131 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22132 }
22133}
22134}
22135}
22136}
22137}
22138}
22139
22140 abuf->written = written;
22141 return vpc;
22142#undef FLD
22143}
22144
22145/* cmqaddhus: cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22146
22147static SEM_PC
22148SEM_FN_NAME (frvbf,cmqaddhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22149{
22150#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22151 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22152 int UNUSED written = 0;
22153 IADDR UNUSED pc = abuf->addr;
22154 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22155
22156if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22157frvbf_media_register_not_aligned (current_cpu);
22158} else {
22159if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22160{
22161 UHI tmp_argihi;
22162 UHI tmp_argilo;
22163 UHI tmp_argjhi;
22164 UHI tmp_argjlo;
22165 {
22166 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22167 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22168 written |= (1 << 16);
22169 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22170 }
22171{
22172 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22173 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22174 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22175 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22176}
22177{
22178 DI tmp_tmp;
22179 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22180if (GTDI (tmp_tmp, 65535)) {
22181{
22182 {
22183 UHI opval = 65535;
22184 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22185 written |= (1 << 17);
22186 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22187 }
22188frvbf_media_overflow (current_cpu, 8);
22189}
22190} else {
22191if (LTDI (tmp_tmp, 0)) {
22192{
22193 {
22194 UHI opval = 0;
22195 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22196 written |= (1 << 17);
22197 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22198 }
22199frvbf_media_overflow (current_cpu, 8);
22200}
22201} else {
22202 {
22203 UHI opval = tmp_tmp;
22204 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22205 written |= (1 << 17);
22206 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22207 }
22208}
22209}
22210}
22211{
22212 DI tmp_tmp;
22213 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22214if (GTDI (tmp_tmp, 65535)) {
22215{
22216 {
22217 UHI opval = 65535;
22218 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22219 written |= (1 << 19);
22220 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22221 }
22222frvbf_media_overflow (current_cpu, 4);
22223}
22224} else {
22225if (LTDI (tmp_tmp, 0)) {
22226{
22227 {
22228 UHI opval = 0;
22229 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22230 written |= (1 << 19);
22231 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22232 }
22233frvbf_media_overflow (current_cpu, 4);
22234}
22235} else {
22236 {
22237 UHI opval = tmp_tmp;
22238 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22239 written |= (1 << 19);
22240 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22241 }
22242}
22243}
22244}
22245{
22246 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22247 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22248 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22249 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22250}
22251{
22252 DI tmp_tmp;
22253 tmp_tmp = ADDHI (tmp_argihi, tmp_argjhi);
22254if (GTDI (tmp_tmp, 65535)) {
22255{
22256 {
22257 UHI opval = 65535;
22258 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22259 written |= (1 << 18);
22260 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22261 }
22262frvbf_media_overflow (current_cpu, 2);
22263}
22264} else {
22265if (LTDI (tmp_tmp, 0)) {
22266{
22267 {
22268 UHI opval = 0;
22269 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22270 written |= (1 << 18);
22271 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22272 }
22273frvbf_media_overflow (current_cpu, 2);
22274}
22275} else {
22276 {
22277 UHI opval = tmp_tmp;
22278 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22279 written |= (1 << 18);
22280 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22281 }
22282}
22283}
22284}
22285{
22286 DI tmp_tmp;
22287 tmp_tmp = ADDHI (tmp_argilo, tmp_argjlo);
22288if (GTDI (tmp_tmp, 65535)) {
22289{
22290 {
22291 UHI opval = 65535;
22292 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22293 written |= (1 << 20);
22294 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22295 }
22296frvbf_media_overflow (current_cpu, 1);
22297}
22298} else {
22299if (LTDI (tmp_tmp, 0)) {
22300{
22301 {
22302 UHI opval = 0;
22303 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22304 written |= (1 << 20);
22305 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22306 }
22307frvbf_media_overflow (current_cpu, 1);
22308}
22309} else {
22310 {
22311 UHI opval = tmp_tmp;
22312 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22313 written |= (1 << 20);
22314 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22315 }
22316}
22317}
22318}
22319}
22320}
22321}
22322
22323 abuf->written = written;
22324 return vpc;
22325#undef FLD
22326}
22327
22328/* cmqsubhss: cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22329
22330static SEM_PC
22331SEM_FN_NAME (frvbf,cmqsubhss) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22332{
22333#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22334 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22335 int UNUSED written = 0;
22336 IADDR UNUSED pc = abuf->addr;
22337 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22338
22339if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22340frvbf_media_register_not_aligned (current_cpu);
22341} else {
22342if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22343{
22344 HI tmp_argihi;
22345 HI tmp_argilo;
22346 HI tmp_argjhi;
22347 HI tmp_argjlo;
22348 {
22349 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22350 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22351 written |= (1 << 16);
22352 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22353 }
22354{
22355 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22356 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22357 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22358 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22359}
22360{
22361 DI tmp_tmp;
22362 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22363if (GTDI (tmp_tmp, 32767)) {
22364{
22365 {
22366 UHI opval = 32767;
22367 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22368 written |= (1 << 17);
22369 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22370 }
22371frvbf_media_overflow (current_cpu, 8);
22372}
22373} else {
22374if (LTDI (tmp_tmp, -32768)) {
22375{
22376 {
22377 UHI opval = -32768;
22378 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22379 written |= (1 << 17);
22380 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22381 }
22382frvbf_media_overflow (current_cpu, 8);
22383}
22384} else {
22385 {
22386 UHI opval = tmp_tmp;
22387 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22388 written |= (1 << 17);
22389 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22390 }
22391}
22392}
22393}
22394{
22395 DI tmp_tmp;
22396 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22397if (GTDI (tmp_tmp, 32767)) {
22398{
22399 {
22400 UHI opval = 32767;
22401 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22402 written |= (1 << 19);
22403 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22404 }
22405frvbf_media_overflow (current_cpu, 4);
22406}
22407} else {
22408if (LTDI (tmp_tmp, -32768)) {
22409{
22410 {
22411 UHI opval = -32768;
22412 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22413 written |= (1 << 19);
22414 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22415 }
22416frvbf_media_overflow (current_cpu, 4);
22417}
22418} else {
22419 {
22420 UHI opval = tmp_tmp;
22421 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22422 written |= (1 << 19);
22423 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22424 }
22425}
22426}
22427}
22428{
22429 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22430 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22431 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22432 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22433}
22434{
22435 DI tmp_tmp;
22436 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22437if (GTDI (tmp_tmp, 32767)) {
22438{
22439 {
22440 UHI opval = 32767;
22441 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22442 written |= (1 << 18);
22443 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22444 }
22445frvbf_media_overflow (current_cpu, 2);
22446}
22447} else {
22448if (LTDI (tmp_tmp, -32768)) {
22449{
22450 {
22451 UHI opval = -32768;
22452 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22453 written |= (1 << 18);
22454 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22455 }
22456frvbf_media_overflow (current_cpu, 2);
22457}
22458} else {
22459 {
22460 UHI opval = tmp_tmp;
22461 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22462 written |= (1 << 18);
22463 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22464 }
22465}
22466}
22467}
22468{
22469 DI tmp_tmp;
22470 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22471if (GTDI (tmp_tmp, 32767)) {
22472{
22473 {
22474 UHI opval = 32767;
22475 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22476 written |= (1 << 20);
22477 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22478 }
22479frvbf_media_overflow (current_cpu, 1);
22480}
22481} else {
22482if (LTDI (tmp_tmp, -32768)) {
22483{
22484 {
22485 UHI opval = -32768;
22486 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22487 written |= (1 << 20);
22488 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22489 }
22490frvbf_media_overflow (current_cpu, 1);
22491}
22492} else {
22493 {
22494 UHI opval = tmp_tmp;
22495 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22496 written |= (1 << 20);
22497 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22498 }
22499}
22500}
22501}
22502}
22503}
22504}
22505
22506 abuf->written = written;
22507 return vpc;
22508#undef FLD
22509}
22510
22511/* cmqsubhus: cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
22512
22513static SEM_PC
22514SEM_FN_NAME (frvbf,cmqsubhus) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22515{
22516#define FLD(f) abuf->fields.sfmt_cmqaddhss.f
22517 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22518 int UNUSED written = 0;
22519 IADDR UNUSED pc = abuf->addr;
22520 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22521
22522if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
22523frvbf_media_register_not_aligned (current_cpu);
22524} else {
22525if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
22526{
22527 UHI tmp_argihi;
22528 UHI tmp_argilo;
22529 UHI tmp_argjhi;
22530 UHI tmp_argjlo;
22531 {
22532 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
22533 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
22534 written |= (1 << 16);
22535 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
22536 }
22537{
22538 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22539 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22540 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22541 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22542}
22543{
22544 DI tmp_tmp;
22545 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22546if (GTDI (tmp_tmp, 65535)) {
22547{
22548 {
22549 UHI opval = 65535;
22550 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22551 written |= (1 << 17);
22552 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22553 }
22554frvbf_media_overflow (current_cpu, 8);
22555}
22556} else {
22557if (LTDI (tmp_tmp, 0)) {
22558{
22559 {
22560 UHI opval = 0;
22561 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22562 written |= (1 << 17);
22563 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22564 }
22565frvbf_media_overflow (current_cpu, 8);
22566}
22567} else {
22568 {
22569 UHI opval = tmp_tmp;
22570 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
22571 written |= (1 << 17);
22572 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22573 }
22574}
22575}
22576}
22577{
22578 DI tmp_tmp;
22579 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22580if (GTDI (tmp_tmp, 65535)) {
22581{
22582 {
22583 UHI opval = 65535;
22584 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22585 written |= (1 << 19);
22586 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22587 }
22588frvbf_media_overflow (current_cpu, 4);
22589}
22590} else {
22591if (LTDI (tmp_tmp, 0)) {
22592{
22593 {
22594 UHI opval = 0;
22595 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22596 written |= (1 << 19);
22597 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22598 }
22599frvbf_media_overflow (current_cpu, 4);
22600}
22601} else {
22602 {
22603 UHI opval = tmp_tmp;
22604 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
22605 written |= (1 << 19);
22606 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22607 }
22608}
22609}
22610}
22611{
22612 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22613 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
22614 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22615 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
22616}
22617{
22618 DI tmp_tmp;
22619 tmp_tmp = SUBHI (tmp_argihi, tmp_argjhi);
22620if (GTDI (tmp_tmp, 65535)) {
22621{
22622 {
22623 UHI opval = 65535;
22624 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22625 written |= (1 << 18);
22626 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22627 }
22628frvbf_media_overflow (current_cpu, 2);
22629}
22630} else {
22631if (LTDI (tmp_tmp, 0)) {
22632{
22633 {
22634 UHI opval = 0;
22635 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22636 written |= (1 << 18);
22637 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22638 }
22639frvbf_media_overflow (current_cpu, 2);
22640}
22641} else {
22642 {
22643 UHI opval = tmp_tmp;
22644 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
22645 written |= (1 << 18);
22646 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
22647 }
22648}
22649}
22650}
22651{
22652 DI tmp_tmp;
22653 tmp_tmp = SUBHI (tmp_argilo, tmp_argjlo);
22654if (GTDI (tmp_tmp, 65535)) {
22655{
22656 {
22657 UHI opval = 65535;
22658 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22659 written |= (1 << 20);
22660 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22661 }
22662frvbf_media_overflow (current_cpu, 1);
22663}
22664} else {
22665if (LTDI (tmp_tmp, 0)) {
22666{
22667 {
22668 UHI opval = 0;
22669 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22670 written |= (1 << 20);
22671 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22672 }
22673frvbf_media_overflow (current_cpu, 1);
22674}
22675} else {
22676 {
22677 UHI opval = tmp_tmp;
22678 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
22679 written |= (1 << 20);
22680 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
22681 }
22682}
22683}
22684}
22685}
22686}
22687}
22688
22689 abuf->written = written;
22690 return vpc;
22691#undef FLD
22692}
22693
22694/* maddaccs: maddaccs$pack $ACC40Si,$ACC40Sk */
22695
22696static SEM_PC
22697SEM_FN_NAME (frvbf,maddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22698{
22699#define FLD(f) abuf->fields.sfmt_mdasaccs.f
22700 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22701 int UNUSED written = 0;
22702 IADDR UNUSED pc = abuf->addr;
22703 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22704
22705if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22706frvbf_media_acc_not_aligned (current_cpu);
22707} else {
22708{
22709 DI tmp_tmp;
22710 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22711if (GTDI (tmp_tmp, 549755813887)) {
22712{
22713 {
22714 DI opval = 549755813887;
22715 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22716 written |= (1 << 3);
22717 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22718 }
22719frvbf_media_overflow (current_cpu, 8);
22720}
22721} else {
22722if (LTDI (tmp_tmp, INVDI (549755813887))) {
22723{
22724 {
22725 DI opval = INVDI (549755813887);
22726 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22727 written |= (1 << 3);
22728 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22729 }
22730frvbf_media_overflow (current_cpu, 8);
22731}
22732} else {
22733 {
22734 DI opval = tmp_tmp;
22735 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22736 written |= (1 << 3);
22737 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22738 }
22739}
22740}
22741}
22742}
22743
22744 abuf->written = written;
22745 return vpc;
22746#undef FLD
22747}
22748
22749/* msubaccs: msubaccs$pack $ACC40Si,$ACC40Sk */
22750
22751static SEM_PC
22752SEM_FN_NAME (frvbf,msubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22753{
22754#define FLD(f) abuf->fields.sfmt_mdasaccs.f
22755 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22756 int UNUSED written = 0;
22757 IADDR UNUSED pc = abuf->addr;
22758 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22759
22760if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
22761frvbf_media_acc_not_aligned (current_cpu);
22762} else {
22763{
22764 DI tmp_tmp;
22765 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22766if (GTDI (tmp_tmp, 549755813887)) {
22767{
22768 {
22769 DI opval = 549755813887;
22770 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22771 written |= (1 << 3);
22772 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22773 }
22774frvbf_media_overflow (current_cpu, 8);
22775}
22776} else {
22777if (LTDI (tmp_tmp, INVDI (549755813887))) {
22778{
22779 {
22780 DI opval = INVDI (549755813887);
22781 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22782 written |= (1 << 3);
22783 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22784 }
22785frvbf_media_overflow (current_cpu, 8);
22786}
22787} else {
22788 {
22789 DI opval = tmp_tmp;
22790 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22791 written |= (1 << 3);
22792 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22793 }
22794}
22795}
22796}
22797}
22798
22799 abuf->written = written;
22800 return vpc;
22801#undef FLD
22802}
22803
22804/* mdaddaccs: mdaddaccs$pack $ACC40Si,$ACC40Sk */
22805
22806static SEM_PC
22807SEM_FN_NAME (frvbf,mdaddaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22808{
22809#define FLD(f) abuf->fields.sfmt_mdasaccs.f
22810 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22811 int UNUSED written = 0;
22812 IADDR UNUSED pc = abuf->addr;
22813 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22814
22815if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22816frvbf_media_acc_not_aligned (current_cpu);
22817} else {
22818if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22819frvbf_media_acc_not_aligned (current_cpu);
22820} else {
22821{
22822{
22823 DI tmp_tmp;
22824 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22825if (GTDI (tmp_tmp, 549755813887)) {
22826{
22827 {
22828 DI opval = 549755813887;
22829 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22830 written |= (1 << 6);
22831 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22832 }
22833frvbf_media_overflow (current_cpu, 8);
22834}
22835} else {
22836if (LTDI (tmp_tmp, INVDI (549755813887))) {
22837{
22838 {
22839 DI opval = INVDI (549755813887);
22840 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22841 written |= (1 << 6);
22842 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22843 }
22844frvbf_media_overflow (current_cpu, 8);
22845}
22846} else {
22847 {
22848 DI opval = tmp_tmp;
22849 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22850 written |= (1 << 6);
22851 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22852 }
22853}
22854}
22855}
22856{
22857 DI tmp_tmp;
22858 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22859if (GTDI (tmp_tmp, 549755813887)) {
22860{
22861 {
22862 DI opval = 549755813887;
22863 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22864 written |= (1 << 7);
22865 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22866 }
22867frvbf_media_overflow (current_cpu, 4);
22868}
22869} else {
22870if (LTDI (tmp_tmp, INVDI (549755813887))) {
22871{
22872 {
22873 DI opval = INVDI (549755813887);
22874 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22875 written |= (1 << 7);
22876 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22877 }
22878frvbf_media_overflow (current_cpu, 4);
22879}
22880} else {
22881 {
22882 DI opval = tmp_tmp;
22883 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22884 written |= (1 << 7);
22885 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22886 }
22887}
22888}
22889}
22890}
22891}
22892}
22893
22894 abuf->written = written;
22895 return vpc;
22896#undef FLD
22897}
22898
22899/* mdsubaccs: mdsubaccs$pack $ACC40Si,$ACC40Sk */
22900
22901static SEM_PC
22902SEM_FN_NAME (frvbf,mdsubaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22903{
22904#define FLD(f) abuf->fields.sfmt_mdasaccs.f
22905 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
22906 int UNUSED written = 0;
22907 IADDR UNUSED pc = abuf->addr;
22908 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
22909
22910if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
22911frvbf_media_acc_not_aligned (current_cpu);
22912} else {
22913if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
22914frvbf_media_acc_not_aligned (current_cpu);
22915} else {
22916{
22917{
22918 DI tmp_tmp;
22919 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
22920if (GTDI (tmp_tmp, 549755813887)) {
22921{
22922 {
22923 DI opval = 549755813887;
22924 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22925 written |= (1 << 6);
22926 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22927 }
22928frvbf_media_overflow (current_cpu, 8);
22929}
22930} else {
22931if (LTDI (tmp_tmp, INVDI (549755813887))) {
22932{
22933 {
22934 DI opval = INVDI (549755813887);
22935 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22936 written |= (1 << 6);
22937 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22938 }
22939frvbf_media_overflow (current_cpu, 8);
22940}
22941} else {
22942 {
22943 DI opval = tmp_tmp;
22944 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
22945 written |= (1 << 6);
22946 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22947 }
22948}
22949}
22950}
22951{
22952 DI tmp_tmp;
22953 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
22954if (GTDI (tmp_tmp, 549755813887)) {
22955{
22956 {
22957 DI opval = 549755813887;
22958 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22959 written |= (1 << 7);
22960 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22961 }
22962frvbf_media_overflow (current_cpu, 4);
22963}
22964} else {
22965if (LTDI (tmp_tmp, INVDI (549755813887))) {
22966{
22967 {
22968 DI opval = INVDI (549755813887);
22969 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22970 written |= (1 << 7);
22971 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22972 }
22973frvbf_media_overflow (current_cpu, 4);
22974}
22975} else {
22976 {
22977 DI opval = tmp_tmp;
22978 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
22979 written |= (1 << 7);
22980 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
22981 }
22982}
22983}
22984}
22985}
22986}
22987}
22988
22989 abuf->written = written;
22990 return vpc;
22991#undef FLD
22992}
22993
22994/* masaccs: masaccs$pack $ACC40Si,$ACC40Sk */
22995
22996static SEM_PC
22997SEM_FN_NAME (frvbf,masaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
22998{
22999#define FLD(f) abuf->fields.sfmt_mdasaccs.f
23000 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23001 int UNUSED written = 0;
23002 IADDR UNUSED pc = abuf->addr;
23003 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23004
23005if (ANDSI (FLD (f_ACC40Si), SUBSI (2, 1))) {
23006frvbf_media_acc_not_aligned (current_cpu);
23007} else {
23008if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23009frvbf_media_acc_not_aligned (current_cpu);
23010} else {
23011{
23012{
23013 DI tmp_tmp;
23014 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23015if (GTDI (tmp_tmp, 549755813887)) {
23016{
23017 {
23018 DI opval = 549755813887;
23019 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23020 written |= (1 << 4);
23021 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23022 }
23023frvbf_media_overflow (current_cpu, 8);
23024}
23025} else {
23026if (LTDI (tmp_tmp, INVDI (549755813887))) {
23027{
23028 {
23029 DI opval = INVDI (549755813887);
23030 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23031 written |= (1 << 4);
23032 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23033 }
23034frvbf_media_overflow (current_cpu, 8);
23035}
23036} else {
23037 {
23038 DI opval = tmp_tmp;
23039 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23040 written |= (1 << 4);
23041 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23042 }
23043}
23044}
23045}
23046{
23047 DI tmp_tmp;
23048 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23049if (GTDI (tmp_tmp, 549755813887)) {
23050{
23051 {
23052 DI opval = 549755813887;
23053 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23054 written |= (1 << 5);
23055 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23056 }
23057frvbf_media_overflow (current_cpu, 4);
23058}
23059} else {
23060if (LTDI (tmp_tmp, INVDI (549755813887))) {
23061{
23062 {
23063 DI opval = INVDI (549755813887);
23064 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23065 written |= (1 << 5);
23066 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23067 }
23068frvbf_media_overflow (current_cpu, 4);
23069}
23070} else {
23071 {
23072 DI opval = tmp_tmp;
23073 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23074 written |= (1 << 5);
23075 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23076 }
23077}
23078}
23079}
23080}
23081}
23082}
23083
23084 abuf->written = written;
23085 return vpc;
23086#undef FLD
23087}
23088
23089/* mdasaccs: mdasaccs$pack $ACC40Si,$ACC40Sk */
23090
23091static SEM_PC
23092SEM_FN_NAME (frvbf,mdasaccs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23093{
23094#define FLD(f) abuf->fields.sfmt_mdasaccs.f
23095 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23096 int UNUSED written = 0;
23097 IADDR UNUSED pc = abuf->addr;
23098 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23099
23100if (ANDSI (FLD (f_ACC40Si), SUBSI (4, 1))) {
23101frvbf_media_acc_not_aligned (current_cpu);
23102} else {
23103if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23104frvbf_media_acc_not_aligned (current_cpu);
23105} else {
23106{
23107{
23108 DI tmp_tmp;
23109 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23110if (GTDI (tmp_tmp, 549755813887)) {
23111{
23112 {
23113 DI opval = 549755813887;
23114 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23115 written |= (1 << 6);
23116 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23117 }
23118frvbf_media_overflow (current_cpu, 8);
23119}
23120} else {
23121if (LTDI (tmp_tmp, INVDI (549755813887))) {
23122{
23123 {
23124 DI opval = INVDI (549755813887);
23125 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23126 written |= (1 << 6);
23127 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23128 }
23129frvbf_media_overflow (current_cpu, 8);
23130}
23131} else {
23132 {
23133 DI opval = tmp_tmp;
23134 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23135 written |= (1 << 6);
23136 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23137 }
23138}
23139}
23140}
23141{
23142 DI tmp_tmp;
23143 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Si)), GET_H_ACC40S (((FLD (f_ACC40Si)) + (1))));
23144if (GTDI (tmp_tmp, 549755813887)) {
23145{
23146 {
23147 DI opval = 549755813887;
23148 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23149 written |= (1 << 7);
23150 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23151 }
23152frvbf_media_overflow (current_cpu, 4);
23153}
23154} else {
23155if (LTDI (tmp_tmp, INVDI (549755813887))) {
23156{
23157 {
23158 DI opval = INVDI (549755813887);
23159 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23160 written |= (1 << 7);
23161 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23162 }
23163frvbf_media_overflow (current_cpu, 4);
23164}
23165} else {
23166 {
23167 DI opval = tmp_tmp;
23168 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23169 written |= (1 << 7);
23170 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23171 }
23172}
23173}
23174}
23175{
23176 DI tmp_tmp;
23177 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Si)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
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)) + (2)), opval);
23183 written |= (1 << 8);
23184 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23185 }
23186frvbf_media_overflow (current_cpu, 2);
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)) + (2)), opval);
23194 written |= (1 << 8);
23195 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23196 }
23197frvbf_media_overflow (current_cpu, 2);
23198}
23199} else {
23200 {
23201 DI opval = tmp_tmp;
23202 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23203 written |= (1 << 8);
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)) + (2))), GET_H_ACC40S (((FLD (f_ACC40Si)) + (3))));
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)) + (3)), opval);
23217 written |= (1 << 9);
23218 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23219 }
23220frvbf_media_overflow (current_cpu, 1);
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)) + (3)), opval);
23228 written |= (1 << 9);
23229 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23230 }
23231frvbf_media_overflow (current_cpu, 1);
23232}
23233} else {
23234 {
23235 DI opval = tmp_tmp;
23236 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23237 written |= (1 << 9);
23238 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23239 }
23240}
23241}
23242}
23243}
23244}
23245}
23246
23247 abuf->written = written;
23248 return vpc;
23249#undef FLD
23250}
23251
23252/* mmulhs: mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
23253
23254static SEM_PC
23255SEM_FN_NAME (frvbf,mmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23256{
23257#define FLD(f) abuf->fields.sfmt_cmmachs.f
23258 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23259 int UNUSED written = 0;
23260 IADDR UNUSED pc = abuf->addr;
23261 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23262
23263if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23264frvbf_media_acc_not_aligned (current_cpu);
23265} else {
23266{
23267 HI tmp_argihi;
23268 HI tmp_argilo;
23269 HI tmp_argjhi;
23270 HI tmp_argjlo;
23271{
23272 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23273 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23274 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23275 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23276}
23277 {
23278 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23279 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23280 written |= (1 << 9);
23281 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23282 }
23283 {
23284 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23285 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23286 written |= (1 << 10);
23287 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23288 }
23289}
23290}
23291
23292 abuf->written = written;
23293 return vpc;
23294#undef FLD
23295}
23296
23297/* mmulhu: mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
23298
23299static SEM_PC
23300SEM_FN_NAME (frvbf,mmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23301{
23302#define FLD(f) abuf->fields.sfmt_cmmachs.f
23303 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23304 int UNUSED written = 0;
23305 IADDR UNUSED pc = abuf->addr;
23306 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23307
23308if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23309frvbf_media_acc_not_aligned (current_cpu);
23310} else {
23311{
23312 UHI tmp_argihi;
23313 UHI tmp_argilo;
23314 UHI tmp_argjhi;
23315 UHI tmp_argjlo;
23316{
23317 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23318 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23319 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23320 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23321}
23322 {
23323 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23324 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23325 written |= (1 << 9);
23326 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23327 }
23328 {
23329 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23330 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23331 written |= (1 << 10);
23332 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23333 }
23334}
23335}
23336
23337 abuf->written = written;
23338 return vpc;
23339#undef FLD
23340}
23341
23342/* mmulxhs: mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
23343
23344static SEM_PC
23345SEM_FN_NAME (frvbf,mmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23346{
23347#define FLD(f) abuf->fields.sfmt_cmmachs.f
23348 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23349 int UNUSED written = 0;
23350 IADDR UNUSED pc = abuf->addr;
23351 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23352
23353if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23354frvbf_media_acc_not_aligned (current_cpu);
23355} else {
23356{
23357 HI tmp_argihi;
23358 HI tmp_argilo;
23359 HI tmp_argjhi;
23360 HI tmp_argjlo;
23361{
23362 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23363 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23364 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23365 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23366}
23367 {
23368 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23369 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23370 written |= (1 << 9);
23371 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23372 }
23373 {
23374 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23375 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23376 written |= (1 << 10);
23377 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23378 }
23379}
23380}
23381
23382 abuf->written = written;
23383 return vpc;
23384#undef FLD
23385}
23386
23387/* mmulxhu: mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
23388
23389static SEM_PC
23390SEM_FN_NAME (frvbf,mmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23391{
23392#define FLD(f) abuf->fields.sfmt_cmmachs.f
23393 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23394 int UNUSED written = 0;
23395 IADDR UNUSED pc = abuf->addr;
23396 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23397
23398if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23399frvbf_media_acc_not_aligned (current_cpu);
23400} else {
23401{
23402 UHI tmp_argihi;
23403 UHI tmp_argilo;
23404 UHI tmp_argjhi;
23405 UHI tmp_argjlo;
23406{
23407 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23408 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23409 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23410 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23411}
23412 {
23413 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23414 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23415 written |= (1 << 9);
23416 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23417 }
23418 {
23419 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23420 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23421 written |= (1 << 10);
23422 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23423 }
23424}
23425}
23426
23427 abuf->written = written;
23428 return vpc;
23429#undef FLD
23430}
23431
23432/* cmmulhs: cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23433
23434static SEM_PC
23435SEM_FN_NAME (frvbf,cmmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23436{
23437#define FLD(f) abuf->fields.sfmt_cmmachs.f
23438 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23439 int UNUSED written = 0;
23440 IADDR UNUSED pc = abuf->addr;
23441 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23442
23443if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23444frvbf_media_acc_not_aligned (current_cpu);
23445} else {
23446if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23447{
23448 HI tmp_argihi;
23449 HI tmp_argilo;
23450 HI tmp_argjhi;
23451 HI tmp_argjlo;
23452{
23453 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23454 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23455 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23456 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23457}
23458 {
23459 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23460 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23461 written |= (1 << 11);
23462 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23463 }
23464 {
23465 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23466 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23467 written |= (1 << 12);
23468 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23469 }
23470}
23471}
23472}
23473
23474 abuf->written = written;
23475 return vpc;
23476#undef FLD
23477}
23478
23479/* cmmulhu: cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
23480
23481static SEM_PC
23482SEM_FN_NAME (frvbf,cmmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23483{
23484#define FLD(f) abuf->fields.sfmt_cmmachs.f
23485 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23486 int UNUSED written = 0;
23487 IADDR UNUSED pc = abuf->addr;
23488 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23489
23490if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23491frvbf_media_acc_not_aligned (current_cpu);
23492} else {
23493if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23494{
23495 UHI tmp_argihi;
23496 UHI tmp_argilo;
23497 UHI tmp_argjhi;
23498 UHI tmp_argjlo;
23499{
23500 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23501 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23502 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23503 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23504}
23505 {
23506 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23507 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23508 written |= (1 << 11);
23509 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23510 }
23511 {
23512 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23513 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23514 written |= (1 << 12);
23515 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23516 }
23517}
23518}
23519}
23520
23521 abuf->written = written;
23522 return vpc;
23523#undef FLD
23524}
23525
23526/* mqmulhs: mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23527
23528static SEM_PC
23529SEM_FN_NAME (frvbf,mqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23530{
23531#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23532 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23533 int UNUSED written = 0;
23534 IADDR UNUSED pc = abuf->addr;
23535 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23536
23537if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23538frvbf_media_acc_not_aligned (current_cpu);
23539} else {
23540if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23541frvbf_media_register_not_aligned (current_cpu);
23542} else {
23543{
23544 HI tmp_argihi;
23545 HI tmp_argilo;
23546 HI tmp_argjhi;
23547 HI tmp_argjlo;
23548{
23549 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23550 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23551 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23552 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23553}
23554 {
23555 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23556 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23557 written |= (1 << 13);
23558 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23559 }
23560 {
23561 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23562 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23563 written |= (1 << 14);
23564 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23565 }
23566{
23567 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23568 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23569 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23570 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23571}
23572 {
23573 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23574 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23575 written |= (1 << 15);
23576 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23577 }
23578 {
23579 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23580 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23581 written |= (1 << 16);
23582 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23583 }
23584}
23585}
23586}
23587
23588 abuf->written = written;
23589 return vpc;
23590#undef FLD
23591}
23592
23593/* mqmulhu: mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23594
23595static SEM_PC
23596SEM_FN_NAME (frvbf,mqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23597{
23598#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23599 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23600 int UNUSED written = 0;
23601 IADDR UNUSED pc = abuf->addr;
23602 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23603
23604if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23605frvbf_media_acc_not_aligned (current_cpu);
23606} else {
23607if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23608frvbf_media_register_not_aligned (current_cpu);
23609} else {
23610{
23611 UHI tmp_argihi;
23612 UHI tmp_argilo;
23613 UHI tmp_argjhi;
23614 UHI tmp_argjlo;
23615{
23616 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23617 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23618 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23619 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23620}
23621 {
23622 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23623 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23624 written |= (1 << 13);
23625 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23626 }
23627 {
23628 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23629 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23630 written |= (1 << 14);
23631 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23632 }
23633{
23634 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23635 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23636 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23637 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23638}
23639 {
23640 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23641 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23642 written |= (1 << 15);
23643 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23644 }
23645 {
23646 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23647 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23648 written |= (1 << 16);
23649 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23650 }
23651}
23652}
23653}
23654
23655 abuf->written = written;
23656 return vpc;
23657#undef FLD
23658}
23659
23660/* mqmulxhs: mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
23661
23662static SEM_PC
23663SEM_FN_NAME (frvbf,mqmulxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23664{
23665#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23666 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23667 int UNUSED written = 0;
23668 IADDR UNUSED pc = abuf->addr;
23669 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23670
23671if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23672frvbf_media_acc_not_aligned (current_cpu);
23673} else {
23674if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23675frvbf_media_register_not_aligned (current_cpu);
23676} else {
23677{
23678 HI tmp_argihi;
23679 HI tmp_argilo;
23680 HI tmp_argjhi;
23681 HI tmp_argjlo;
23682{
23683 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23684 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23685 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23686 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23687}
23688 {
23689 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23690 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23691 written |= (1 << 13);
23692 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23693 }
23694 {
23695 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23696 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23697 written |= (1 << 14);
23698 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23699 }
23700{
23701 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23702 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23703 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23704 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23705}
23706 {
23707 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
23708 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23709 written |= (1 << 15);
23710 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23711 }
23712 {
23713 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
23714 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23715 written |= (1 << 16);
23716 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23717 }
23718}
23719}
23720}
23721
23722 abuf->written = written;
23723 return vpc;
23724#undef FLD
23725}
23726
23727/* mqmulxhu: mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
23728
23729static SEM_PC
23730SEM_FN_NAME (frvbf,mqmulxhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23731{
23732#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23733 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23734 int UNUSED written = 0;
23735 IADDR UNUSED pc = abuf->addr;
23736 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23737
23738if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23739frvbf_media_acc_not_aligned (current_cpu);
23740} else {
23741if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23742frvbf_media_register_not_aligned (current_cpu);
23743} else {
23744{
23745 UHI tmp_argihi;
23746 UHI tmp_argilo;
23747 UHI tmp_argjhi;
23748 UHI tmp_argjlo;
23749{
23750 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23751 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23752 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23753 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23754}
23755 {
23756 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23757 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23758 written |= (1 << 13);
23759 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23760 }
23761 {
23762 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23763 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23764 written |= (1 << 14);
23765 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23766 }
23767{
23768 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23769 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23770 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23771 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23772}
23773 {
23774 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
23775 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23776 written |= (1 << 15);
23777 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23778 }
23779 {
23780 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
23781 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23782 written |= (1 << 16);
23783 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23784 }
23785}
23786}
23787}
23788
23789 abuf->written = written;
23790 return vpc;
23791#undef FLD
23792}
23793
23794/* cmqmulhs: cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23795
23796static SEM_PC
23797SEM_FN_NAME (frvbf,cmqmulhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23798{
23799#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23800 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23801 int UNUSED written = 0;
23802 IADDR UNUSED pc = abuf->addr;
23803 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23804
23805if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23806frvbf_media_acc_not_aligned (current_cpu);
23807} else {
23808if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23809frvbf_media_register_not_aligned (current_cpu);
23810} else {
23811if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23812{
23813 HI tmp_argihi;
23814 HI tmp_argilo;
23815 HI tmp_argjhi;
23816 HI tmp_argjlo;
23817{
23818 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23819 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23820 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23821 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23822}
23823 {
23824 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23825 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23826 written |= (1 << 15);
23827 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23828 }
23829 {
23830 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23831 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23832 written |= (1 << 16);
23833 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23834 }
23835{
23836 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23837 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23838 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23839 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23840}
23841 {
23842 DI opval = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
23843 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23844 written |= (1 << 17);
23845 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23846 }
23847 {
23848 DI opval = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
23849 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23850 written |= (1 << 18);
23851 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23852 }
23853}
23854}
23855}
23856}
23857
23858 abuf->written = written;
23859 return vpc;
23860#undef FLD
23861}
23862
23863/* cmqmulhu: cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
23864
23865static SEM_PC
23866SEM_FN_NAME (frvbf,cmqmulhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23867{
23868#define FLD(f) abuf->fields.sfmt_cmqmachs.f
23869 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23870 int UNUSED written = 0;
23871 IADDR UNUSED pc = abuf->addr;
23872 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23873
23874if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
23875frvbf_media_acc_not_aligned (current_cpu);
23876} else {
23877if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
23878frvbf_media_register_not_aligned (current_cpu);
23879} else {
23880if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
23881{
23882 UHI tmp_argihi;
23883 UHI tmp_argilo;
23884 UHI tmp_argjhi;
23885 UHI tmp_argjlo;
23886{
23887 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23888 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23889 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23890 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23891}
23892 {
23893 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23894 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23895 written |= (1 << 15);
23896 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23897 }
23898 {
23899 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23900 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23901 written |= (1 << 16);
23902 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23903 }
23904{
23905 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23906 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23907 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23908 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23909}
23910 {
23911 DI opval = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
23912 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
23913 written |= (1 << 17);
23914 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23915 }
23916 {
23917 DI opval = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
23918 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
23919 written |= (1 << 18);
23920 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23921 }
23922}
23923}
23924}
23925}
23926
23927 abuf->written = written;
23928 return vpc;
23929#undef FLD
23930}
23931
23932/* mmachs: mmachs$pack $FRinti,$FRintj,$ACC40Sk */
23933
23934static SEM_PC
23935SEM_FN_NAME (frvbf,mmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
23936{
23937#define FLD(f) abuf->fields.sfmt_cmmachs.f
23938 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
23939 int UNUSED written = 0;
23940 IADDR UNUSED pc = abuf->addr;
23941 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
23942
23943if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
23944frvbf_media_acc_not_aligned (current_cpu);
23945} else {
23946{
23947 HI tmp_argihi;
23948 HI tmp_argilo;
23949 HI tmp_argjhi;
23950 HI tmp_argjlo;
23951{
23952 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23953 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
23954 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23955 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
23956}
23957{
23958 DI tmp_tmp;
23959 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
23960if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23961{
23962 {
23963 DI opval = MAKEDI (127, 0xffffffff);
23964 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23965 written |= (1 << 11);
23966 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23967 }
23968frvbf_media_overflow (current_cpu, 8);
23969}
23970} else {
23971if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
23972{
23973 {
23974 DI opval = MAKEDI (0xffffff80, 0);
23975 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23976 written |= (1 << 11);
23977 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23978 }
23979frvbf_media_overflow (current_cpu, 8);
23980}
23981} else {
23982 {
23983 DI opval = tmp_tmp;
23984 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
23985 written |= (1 << 11);
23986 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
23987 }
23988}
23989}
23990}
23991{
23992 DI tmp_tmp;
23993 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
23994if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
23995{
23996 {
23997 DI opval = MAKEDI (127, 0xffffffff);
23998 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
23999 written |= (1 << 12);
24000 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24001 }
24002frvbf_media_overflow (current_cpu, 4);
24003}
24004} else {
24005if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24006{
24007 {
24008 DI opval = MAKEDI (0xffffff80, 0);
24009 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24010 written |= (1 << 12);
24011 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24012 }
24013frvbf_media_overflow (current_cpu, 4);
24014}
24015} else {
24016 {
24017 DI opval = tmp_tmp;
24018 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24019 written |= (1 << 12);
24020 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24021 }
24022}
24023}
24024}
24025}
24026}
24027
24028 abuf->written = written;
24029 return vpc;
24030#undef FLD
24031}
24032
24033/* mmachu: mmachu$pack $FRinti,$FRintj,$ACC40Uk */
24034
24035static SEM_PC
24036SEM_FN_NAME (frvbf,mmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24037{
24038#define FLD(f) abuf->fields.sfmt_cmmachu.f
24039 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24040 int UNUSED written = 0;
24041 IADDR UNUSED pc = abuf->addr;
24042 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24043
24044if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24045frvbf_media_acc_not_aligned (current_cpu);
24046} else {
24047{
24048 UHI tmp_argihi;
24049 UHI tmp_argilo;
24050 UHI tmp_argjhi;
24051 UHI tmp_argjlo;
24052{
24053 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24054 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24055 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24056 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24057}
24058{
24059 DI tmp_tmp;
24060 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24061if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24062{
24063 {
24064 UDI opval = MAKEDI (255, 0xffffffff);
24065 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24066 written |= (1 << 11);
24067 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24068 }
24069frvbf_media_overflow (current_cpu, 8);
24070}
24071} else {
24072if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24073{
24074 {
24075 UDI opval = MAKEDI (0, 0);
24076 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24077 written |= (1 << 11);
24078 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24079 }
24080frvbf_media_overflow (current_cpu, 8);
24081}
24082} else {
24083 {
24084 UDI opval = tmp_tmp;
24085 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24086 written |= (1 << 11);
24087 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24088 }
24089}
24090}
24091}
24092{
24093 DI tmp_tmp;
24094 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24095if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24096{
24097 {
24098 UDI opval = MAKEDI (255, 0xffffffff);
24099 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24100 written |= (1 << 12);
24101 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24102 }
24103frvbf_media_overflow (current_cpu, 4);
24104}
24105} else {
24106if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24107{
24108 {
24109 UDI opval = MAKEDI (0, 0);
24110 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24111 written |= (1 << 12);
24112 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24113 }
24114frvbf_media_overflow (current_cpu, 4);
24115}
24116} else {
24117 {
24118 UDI opval = tmp_tmp;
24119 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24120 written |= (1 << 12);
24121 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24122 }
24123}
24124}
24125}
24126}
24127}
24128
24129 abuf->written = written;
24130 return vpc;
24131#undef FLD
24132}
24133
24134/* mmrdhs: mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
24135
24136static SEM_PC
24137SEM_FN_NAME (frvbf,mmrdhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24138{
24139#define FLD(f) abuf->fields.sfmt_cmmachs.f
24140 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24141 int UNUSED written = 0;
24142 IADDR UNUSED pc = abuf->addr;
24143 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24144
24145if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24146frvbf_media_acc_not_aligned (current_cpu);
24147} else {
24148{
24149 HI tmp_argihi;
24150 HI tmp_argilo;
24151 HI tmp_argjhi;
24152 HI tmp_argjlo;
24153{
24154 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24155 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24156 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24157 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24158}
24159{
24160 DI tmp_tmp;
24161 tmp_tmp = SUBDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24162if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24163{
24164 {
24165 DI opval = MAKEDI (127, 0xffffffff);
24166 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24167 written |= (1 << 11);
24168 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24169 }
24170frvbf_media_overflow (current_cpu, 8);
24171}
24172} else {
24173if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24174{
24175 {
24176 DI opval = MAKEDI (0xffffff80, 0);
24177 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24178 written |= (1 << 11);
24179 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24180 }
24181frvbf_media_overflow (current_cpu, 8);
24182}
24183} else {
24184 {
24185 DI opval = tmp_tmp;
24186 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24187 written |= (1 << 11);
24188 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24189 }
24190}
24191}
24192}
24193{
24194 DI tmp_tmp;
24195 tmp_tmp = SUBDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24196if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24197{
24198 {
24199 DI opval = MAKEDI (127, 0xffffffff);
24200 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24201 written |= (1 << 12);
24202 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24203 }
24204frvbf_media_overflow (current_cpu, 4);
24205}
24206} else {
24207if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24208{
24209 {
24210 DI opval = MAKEDI (0xffffff80, 0);
24211 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24212 written |= (1 << 12);
24213 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24214 }
24215frvbf_media_overflow (current_cpu, 4);
24216}
24217} else {
24218 {
24219 DI opval = tmp_tmp;
24220 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24221 written |= (1 << 12);
24222 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24223 }
24224}
24225}
24226}
24227}
24228}
24229
24230 abuf->written = written;
24231 return vpc;
24232#undef FLD
24233}
24234
24235/* mmrdhu: mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
24236
24237static SEM_PC
24238SEM_FN_NAME (frvbf,mmrdhu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24239{
24240#define FLD(f) abuf->fields.sfmt_cmmachu.f
24241 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24242 int UNUSED written = 0;
24243 IADDR UNUSED pc = abuf->addr;
24244 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24245
24246if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24247frvbf_media_acc_not_aligned (current_cpu);
24248} else {
24249{
24250 UHI tmp_argihi;
24251 UHI tmp_argilo;
24252 UHI tmp_argjhi;
24253 UHI tmp_argjlo;
24254{
24255 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24256 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24257 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24258 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24259}
24260{
24261 DI tmp_tmp;
24262 tmp_tmp = SUBDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24263if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24264{
24265 {
24266 UDI opval = MAKEDI (255, 0xffffffff);
24267 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24268 written |= (1 << 11);
24269 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24270 }
24271frvbf_media_overflow (current_cpu, 8);
24272}
24273} else {
24274if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24275{
24276 {
24277 UDI opval = MAKEDI (0, 0);
24278 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24279 written |= (1 << 11);
24280 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24281 }
24282frvbf_media_overflow (current_cpu, 8);
24283}
24284} else {
24285 {
24286 UDI opval = tmp_tmp;
24287 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24288 written |= (1 << 11);
24289 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24290 }
24291}
24292}
24293}
24294{
24295 DI tmp_tmp;
24296 tmp_tmp = SUBDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24297if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24298{
24299 {
24300 UDI opval = MAKEDI (255, 0xffffffff);
24301 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24302 written |= (1 << 12);
24303 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24304 }
24305frvbf_media_overflow (current_cpu, 4);
24306}
24307} else {
24308if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24309{
24310 {
24311 UDI opval = MAKEDI (0, 0);
24312 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24313 written |= (1 << 12);
24314 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24315 }
24316frvbf_media_overflow (current_cpu, 4);
24317}
24318} else {
24319 {
24320 UDI opval = tmp_tmp;
24321 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24322 written |= (1 << 12);
24323 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24324 }
24325}
24326}
24327}
24328}
24329}
24330
24331 abuf->written = written;
24332 return vpc;
24333#undef FLD
24334}
24335
24336/* cmmachs: cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
24337
24338static SEM_PC
24339SEM_FN_NAME (frvbf,cmmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24340{
24341#define FLD(f) abuf->fields.sfmt_cmmachs.f
24342 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24343 int UNUSED written = 0;
24344 IADDR UNUSED pc = abuf->addr;
24345 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24346
24347if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
24348frvbf_media_acc_not_aligned (current_cpu);
24349} else {
24350if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24351{
24352 HI tmp_argihi;
24353 HI tmp_argilo;
24354 HI tmp_argjhi;
24355 HI tmp_argjlo;
24356{
24357 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24358 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24359 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24360 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24361}
24362{
24363 DI tmp_tmp;
24364 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24365if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24366{
24367 {
24368 DI opval = MAKEDI (127, 0xffffffff);
24369 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24370 written |= (1 << 13);
24371 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24372 }
24373frvbf_media_overflow (current_cpu, 8);
24374}
24375} else {
24376if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24377{
24378 {
24379 DI opval = MAKEDI (0xffffff80, 0);
24380 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24381 written |= (1 << 13);
24382 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24383 }
24384frvbf_media_overflow (current_cpu, 8);
24385}
24386} else {
24387 {
24388 DI opval = tmp_tmp;
24389 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24390 written |= (1 << 13);
24391 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24392 }
24393}
24394}
24395}
24396{
24397 DI tmp_tmp;
24398 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24399if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24400{
24401 {
24402 DI opval = MAKEDI (127, 0xffffffff);
24403 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24404 written |= (1 << 14);
24405 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24406 }
24407frvbf_media_overflow (current_cpu, 4);
24408}
24409} else {
24410if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24411{
24412 {
24413 DI opval = MAKEDI (0xffffff80, 0);
24414 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24415 written |= (1 << 14);
24416 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24417 }
24418frvbf_media_overflow (current_cpu, 4);
24419}
24420} else {
24421 {
24422 DI opval = tmp_tmp;
24423 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24424 written |= (1 << 14);
24425 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24426 }
24427}
24428}
24429}
24430}
24431}
24432}
24433
24434 abuf->written = written;
24435 return vpc;
24436#undef FLD
24437}
24438
24439/* cmmachu: cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
24440
24441static SEM_PC
24442SEM_FN_NAME (frvbf,cmmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24443{
24444#define FLD(f) abuf->fields.sfmt_cmmachu.f
24445 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24446 int UNUSED written = 0;
24447 IADDR UNUSED pc = abuf->addr;
24448 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24449
24450if (ANDSI (FLD (f_ACC40Uk), SUBSI (2, 1))) {
24451frvbf_media_acc_not_aligned (current_cpu);
24452} else {
24453if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24454{
24455 UHI tmp_argihi;
24456 UHI tmp_argilo;
24457 UHI tmp_argjhi;
24458 UHI tmp_argjlo;
24459{
24460 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24461 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24462 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24463 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24464}
24465{
24466 DI tmp_tmp;
24467 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24468if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24469{
24470 {
24471 UDI opval = MAKEDI (255, 0xffffffff);
24472 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24473 written |= (1 << 13);
24474 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24475 }
24476frvbf_media_overflow (current_cpu, 8);
24477}
24478} else {
24479if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24480{
24481 {
24482 UDI opval = MAKEDI (0, 0);
24483 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24484 written |= (1 << 13);
24485 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24486 }
24487frvbf_media_overflow (current_cpu, 8);
24488}
24489} else {
24490 {
24491 UDI opval = tmp_tmp;
24492 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24493 written |= (1 << 13);
24494 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24495 }
24496}
24497}
24498}
24499{
24500 DI tmp_tmp;
24501 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24502if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24503{
24504 {
24505 UDI opval = MAKEDI (255, 0xffffffff);
24506 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24507 written |= (1 << 14);
24508 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24509 }
24510frvbf_media_overflow (current_cpu, 4);
24511}
24512} else {
24513if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24514{
24515 {
24516 UDI opval = MAKEDI (0, 0);
24517 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24518 written |= (1 << 14);
24519 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24520 }
24521frvbf_media_overflow (current_cpu, 4);
24522}
24523} else {
24524 {
24525 UDI opval = tmp_tmp;
24526 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24527 written |= (1 << 14);
24528 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24529 }
24530}
24531}
24532}
24533}
24534}
24535}
24536
24537 abuf->written = written;
24538 return vpc;
24539#undef FLD
24540}
24541
24542/* mqmachs: mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
24543
24544static SEM_PC
24545SEM_FN_NAME (frvbf,mqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24546{
24547#define FLD(f) abuf->fields.sfmt_cmqmachs.f
24548 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24549 int UNUSED written = 0;
24550 IADDR UNUSED pc = abuf->addr;
24551 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24552
24553if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24554frvbf_media_acc_not_aligned (current_cpu);
24555} else {
24556if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24557frvbf_media_register_not_aligned (current_cpu);
24558} else {
24559{
24560 HI tmp_argihi;
24561 HI tmp_argilo;
24562 HI tmp_argjhi;
24563 HI tmp_argjlo;
24564{
24565 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24566 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24567 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24568 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24569}
24570{
24571 DI tmp_tmp;
24572 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24573if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24574{
24575 {
24576 DI opval = MAKEDI (127, 0xffffffff);
24577 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24578 written |= (1 << 17);
24579 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24580 }
24581frvbf_media_overflow (current_cpu, 8);
24582}
24583} else {
24584if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24585{
24586 {
24587 DI opval = MAKEDI (0xffffff80, 0);
24588 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24589 written |= (1 << 17);
24590 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24591 }
24592frvbf_media_overflow (current_cpu, 8);
24593}
24594} else {
24595 {
24596 DI opval = tmp_tmp;
24597 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24598 written |= (1 << 17);
24599 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24600 }
24601}
24602}
24603}
24604{
24605 DI tmp_tmp;
24606 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24607if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24608{
24609 {
24610 DI opval = MAKEDI (127, 0xffffffff);
24611 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24612 written |= (1 << 18);
24613 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24614 }
24615frvbf_media_overflow (current_cpu, 4);
24616}
24617} else {
24618if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24619{
24620 {
24621 DI opval = MAKEDI (0xffffff80, 0);
24622 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24623 written |= (1 << 18);
24624 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24625 }
24626frvbf_media_overflow (current_cpu, 4);
24627}
24628} else {
24629 {
24630 DI opval = tmp_tmp;
24631 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24632 written |= (1 << 18);
24633 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24634 }
24635}
24636}
24637}
24638{
24639 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24640 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24641 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24642 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24643}
24644{
24645 DI tmp_tmp;
24646 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24647if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24648{
24649 {
24650 DI opval = MAKEDI (127, 0xffffffff);
24651 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24652 written |= (1 << 19);
24653 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24654 }
24655frvbf_media_overflow (current_cpu, 2);
24656}
24657} else {
24658if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24659{
24660 {
24661 DI opval = MAKEDI (0xffffff80, 0);
24662 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24663 written |= (1 << 19);
24664 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24665 }
24666frvbf_media_overflow (current_cpu, 2);
24667}
24668} else {
24669 {
24670 DI opval = tmp_tmp;
24671 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
24672 written |= (1 << 19);
24673 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24674 }
24675}
24676}
24677}
24678{
24679 DI tmp_tmp;
24680 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24681if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24682{
24683 {
24684 DI opval = MAKEDI (127, 0xffffffff);
24685 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24686 written |= (1 << 20);
24687 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24688 }
24689frvbf_media_overflow (current_cpu, 1);
24690}
24691} else {
24692if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24693{
24694 {
24695 DI opval = MAKEDI (0xffffff80, 0);
24696 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24697 written |= (1 << 20);
24698 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24699 }
24700frvbf_media_overflow (current_cpu, 1);
24701}
24702} else {
24703 {
24704 DI opval = tmp_tmp;
24705 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
24706 written |= (1 << 20);
24707 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24708 }
24709}
24710}
24711}
24712}
24713}
24714}
24715
24716 abuf->written = written;
24717 return vpc;
24718#undef FLD
24719}
24720
24721/* mqmachu: mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
24722
24723static SEM_PC
24724SEM_FN_NAME (frvbf,mqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24725{
24726#define FLD(f) abuf->fields.sfmt_cmqmachu.f
24727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24728 int UNUSED written = 0;
24729 IADDR UNUSED pc = abuf->addr;
24730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24731
24732if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
24733frvbf_media_acc_not_aligned (current_cpu);
24734} else {
24735if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24736frvbf_media_register_not_aligned (current_cpu);
24737} else {
24738{
24739 UHI tmp_argihi;
24740 UHI tmp_argilo;
24741 UHI tmp_argjhi;
24742 UHI tmp_argjlo;
24743{
24744 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24745 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24746 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24747 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24748}
24749{
24750 DI tmp_tmp;
24751 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24752if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24753{
24754 {
24755 UDI opval = MAKEDI (255, 0xffffffff);
24756 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24757 written |= (1 << 17);
24758 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24759 }
24760frvbf_media_overflow (current_cpu, 8);
24761}
24762} else {
24763if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24764{
24765 {
24766 UDI opval = MAKEDI (0, 0);
24767 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24768 written |= (1 << 17);
24769 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24770 }
24771frvbf_media_overflow (current_cpu, 8);
24772}
24773} else {
24774 {
24775 UDI opval = tmp_tmp;
24776 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
24777 written |= (1 << 17);
24778 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24779 }
24780}
24781}
24782}
24783{
24784 DI tmp_tmp;
24785 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24786if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24787{
24788 {
24789 UDI opval = MAKEDI (255, 0xffffffff);
24790 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24791 written |= (1 << 18);
24792 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24793 }
24794frvbf_media_overflow (current_cpu, 4);
24795}
24796} else {
24797if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24798{
24799 {
24800 UDI opval = MAKEDI (0, 0);
24801 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24802 written |= (1 << 18);
24803 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24804 }
24805frvbf_media_overflow (current_cpu, 4);
24806}
24807} else {
24808 {
24809 UDI opval = tmp_tmp;
24810 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
24811 written |= (1 << 18);
24812 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24813 }
24814}
24815}
24816}
24817{
24818 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24819 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24820 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24821 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24822}
24823{
24824 DI tmp_tmp;
24825 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
24826if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24827{
24828 {
24829 UDI opval = MAKEDI (255, 0xffffffff);
24830 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24831 written |= (1 << 19);
24832 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24833 }
24834frvbf_media_overflow (current_cpu, 2);
24835}
24836} else {
24837if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24838{
24839 {
24840 UDI opval = MAKEDI (0, 0);
24841 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24842 written |= (1 << 19);
24843 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24844 }
24845frvbf_media_overflow (current_cpu, 2);
24846}
24847} else {
24848 {
24849 UDI opval = tmp_tmp;
24850 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
24851 written |= (1 << 19);
24852 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24853 }
24854}
24855}
24856}
24857{
24858 DI tmp_tmp;
24859 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
24860if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
24861{
24862 {
24863 UDI opval = MAKEDI (255, 0xffffffff);
24864 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24865 written |= (1 << 20);
24866 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24867 }
24868frvbf_media_overflow (current_cpu, 1);
24869}
24870} else {
24871if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
24872{
24873 {
24874 UDI opval = MAKEDI (0, 0);
24875 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24876 written |= (1 << 20);
24877 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24878 }
24879frvbf_media_overflow (current_cpu, 1);
24880}
24881} else {
24882 {
24883 UDI opval = tmp_tmp;
24884 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
24885 written |= (1 << 20);
24886 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
24887 }
24888}
24889}
24890}
24891}
24892}
24893}
24894
24895 abuf->written = written;
24896 return vpc;
24897#undef FLD
24898}
24899
24900/* cmqmachs: cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
24901
24902static SEM_PC
24903SEM_FN_NAME (frvbf,cmqmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
24904{
24905#define FLD(f) abuf->fields.sfmt_cmqmachs.f
24906 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
24907 int UNUSED written = 0;
24908 IADDR UNUSED pc = abuf->addr;
24909 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
24910
24911if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
24912frvbf_media_acc_not_aligned (current_cpu);
24913} else {
24914if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
24915frvbf_media_register_not_aligned (current_cpu);
24916} else {
24917if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
24918{
24919 HI tmp_argihi;
24920 HI tmp_argilo;
24921 HI tmp_argjhi;
24922 HI tmp_argjlo;
24923{
24924 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24925 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24926 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24927 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
24928}
24929{
24930 DI tmp_tmp;
24931 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
24932if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24933{
24934 {
24935 DI opval = MAKEDI (127, 0xffffffff);
24936 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24937 written |= (1 << 19);
24938 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24939 }
24940frvbf_media_overflow (current_cpu, 8);
24941}
24942} else {
24943if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24944{
24945 {
24946 DI opval = MAKEDI (0xffffff80, 0);
24947 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24948 written |= (1 << 19);
24949 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24950 }
24951frvbf_media_overflow (current_cpu, 8);
24952}
24953} else {
24954 {
24955 DI opval = tmp_tmp;
24956 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
24957 written |= (1 << 19);
24958 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24959 }
24960}
24961}
24962}
24963{
24964 DI tmp_tmp;
24965 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
24966if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
24967{
24968 {
24969 DI opval = MAKEDI (127, 0xffffffff);
24970 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24971 written |= (1 << 20);
24972 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24973 }
24974frvbf_media_overflow (current_cpu, 4);
24975}
24976} else {
24977if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
24978{
24979 {
24980 DI opval = MAKEDI (0xffffff80, 0);
24981 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24982 written |= (1 << 20);
24983 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24984 }
24985frvbf_media_overflow (current_cpu, 4);
24986}
24987} else {
24988 {
24989 DI opval = tmp_tmp;
24990 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
24991 written |= (1 << 20);
24992 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
24993 }
24994}
24995}
24996}
24997{
24998 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
24999 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25000 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25001 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25002}
25003{
25004 DI tmp_tmp;
25005 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25006if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25007{
25008 {
25009 DI opval = MAKEDI (127, 0xffffffff);
25010 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25011 written |= (1 << 21);
25012 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25013 }
25014frvbf_media_overflow (current_cpu, 2);
25015}
25016} else {
25017if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25018{
25019 {
25020 DI opval = MAKEDI (0xffffff80, 0);
25021 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25022 written |= (1 << 21);
25023 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25024 }
25025frvbf_media_overflow (current_cpu, 2);
25026}
25027} else {
25028 {
25029 DI opval = tmp_tmp;
25030 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25031 written |= (1 << 21);
25032 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25033 }
25034}
25035}
25036}
25037{
25038 DI tmp_tmp;
25039 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25040if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25041{
25042 {
25043 DI opval = MAKEDI (127, 0xffffffff);
25044 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25045 written |= (1 << 22);
25046 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25047 }
25048frvbf_media_overflow (current_cpu, 1);
25049}
25050} else {
25051if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25052{
25053 {
25054 DI opval = MAKEDI (0xffffff80, 0);
25055 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25056 written |= (1 << 22);
25057 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25058 }
25059frvbf_media_overflow (current_cpu, 1);
25060}
25061} else {
25062 {
25063 DI opval = tmp_tmp;
25064 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25065 written |= (1 << 22);
25066 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25067 }
25068}
25069}
25070}
25071}
25072}
25073}
25074}
25075
25076 abuf->written = written;
25077 return vpc;
25078#undef FLD
25079}
25080
25081/* cmqmachu: cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
25082
25083static SEM_PC
25084SEM_FN_NAME (frvbf,cmqmachu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25085{
25086#define FLD(f) abuf->fields.sfmt_cmqmachu.f
25087 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25088 int UNUSED written = 0;
25089 IADDR UNUSED pc = abuf->addr;
25090 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25091
25092if (ANDSI (FLD (f_ACC40Uk), SUBSI (4, 1))) {
25093frvbf_media_acc_not_aligned (current_cpu);
25094} else {
25095if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25096frvbf_media_register_not_aligned (current_cpu);
25097} else {
25098if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
25099{
25100 UHI tmp_argihi;
25101 UHI tmp_argilo;
25102 UHI tmp_argjhi;
25103 UHI tmp_argjlo;
25104{
25105 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25106 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25107 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25108 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25109}
25110{
25111 DI tmp_tmp;
25112 tmp_tmp = ADDDI (GET_H_ACC40U (FLD (f_ACC40Uk)), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25113if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25114{
25115 {
25116 UDI opval = MAKEDI (255, 0xffffffff);
25117 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25118 written |= (1 << 19);
25119 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25120 }
25121frvbf_media_overflow (current_cpu, 8);
25122}
25123} else {
25124if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25125{
25126 {
25127 UDI opval = MAKEDI (0, 0);
25128 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25129 written |= (1 << 19);
25130 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25131 }
25132frvbf_media_overflow (current_cpu, 8);
25133}
25134} else {
25135 {
25136 UDI opval = tmp_tmp;
25137 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, FLD (f_ACC40Uk), opval);
25138 written |= (1 << 19);
25139 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25140 }
25141}
25142}
25143}
25144{
25145 DI tmp_tmp;
25146 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (1))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25147if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25148{
25149 {
25150 UDI opval = MAKEDI (255, 0xffffffff);
25151 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25152 written |= (1 << 20);
25153 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25154 }
25155frvbf_media_overflow (current_cpu, 4);
25156}
25157} else {
25158if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25159{
25160 {
25161 UDI opval = MAKEDI (0, 0);
25162 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25163 written |= (1 << 20);
25164 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25165 }
25166frvbf_media_overflow (current_cpu, 4);
25167}
25168} else {
25169 {
25170 UDI opval = tmp_tmp;
25171 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (1)), opval);
25172 written |= (1 << 20);
25173 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25174 }
25175}
25176}
25177}
25178{
25179 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25180 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25181 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25182 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25183}
25184{
25185 DI tmp_tmp;
25186 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (2))), MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi)));
25187if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25188{
25189 {
25190 UDI opval = MAKEDI (255, 0xffffffff);
25191 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25192 written |= (1 << 21);
25193 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25194 }
25195frvbf_media_overflow (current_cpu, 2);
25196}
25197} else {
25198if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25199{
25200 {
25201 UDI opval = MAKEDI (0, 0);
25202 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25203 written |= (1 << 21);
25204 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25205 }
25206frvbf_media_overflow (current_cpu, 2);
25207}
25208} else {
25209 {
25210 UDI opval = tmp_tmp;
25211 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (2)), opval);
25212 written |= (1 << 21);
25213 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25214 }
25215}
25216}
25217}
25218{
25219 DI tmp_tmp;
25220 tmp_tmp = ADDDI (GET_H_ACC40U (((FLD (f_ACC40Uk)) + (3))), MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo)));
25221if (GTDI (tmp_tmp, MAKEDI (255, 0xffffffff))) {
25222{
25223 {
25224 UDI opval = MAKEDI (255, 0xffffffff);
25225 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25226 written |= (1 << 22);
25227 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25228 }
25229frvbf_media_overflow (current_cpu, 1);
25230}
25231} else {
25232if (LTDI (tmp_tmp, MAKEDI (0, 0))) {
25233{
25234 {
25235 UDI opval = MAKEDI (0, 0);
25236 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25237 written |= (1 << 22);
25238 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25239 }
25240frvbf_media_overflow (current_cpu, 1);
25241}
25242} else {
25243 {
25244 UDI opval = tmp_tmp;
25245 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40U_set, ((FLD (f_ACC40Uk)) + (3)), opval);
25246 written |= (1 << 22);
25247 TRACE_RESULT (current_cpu, abuf, "acc40U", 'D', opval);
25248 }
25249}
25250}
25251}
25252}
25253}
25254}
25255}
25256
25257 abuf->written = written;
25258 return vpc;
25259#undef FLD
25260}
25261
25262/* mqxmachs: mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25263
25264static SEM_PC
25265SEM_FN_NAME (frvbf,mqxmachs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25266{
25267#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25268 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25269 int UNUSED written = 0;
25270 IADDR UNUSED pc = abuf->addr;
25271 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25272
25273if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25274frvbf_media_acc_not_aligned (current_cpu);
25275} else {
25276if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25277frvbf_media_register_not_aligned (current_cpu);
25278} else {
25279{
25280 HI tmp_argihi;
25281 HI tmp_argilo;
25282 HI tmp_argjhi;
25283 HI tmp_argjlo;
25284{
25285 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25286 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25287 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25288 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25289}
25290{
25291 DI tmp_tmp;
25292 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25293if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25294{
25295 {
25296 DI opval = MAKEDI (127, 0xffffffff);
25297 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25298 written |= (1 << 19);
25299 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25300 }
25301frvbf_media_overflow (current_cpu, 2);
25302}
25303} else {
25304if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25305{
25306 {
25307 DI opval = MAKEDI (0xffffff80, 0);
25308 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25309 written |= (1 << 19);
25310 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25311 }
25312frvbf_media_overflow (current_cpu, 2);
25313}
25314} else {
25315 {
25316 DI opval = tmp_tmp;
25317 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25318 written |= (1 << 19);
25319 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25320 }
25321}
25322}
25323}
25324{
25325 DI tmp_tmp;
25326 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25327if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25328{
25329 {
25330 DI opval = MAKEDI (127, 0xffffffff);
25331 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25332 written |= (1 << 20);
25333 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25334 }
25335frvbf_media_overflow (current_cpu, 1);
25336}
25337} else {
25338if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25339{
25340 {
25341 DI opval = MAKEDI (0xffffff80, 0);
25342 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25343 written |= (1 << 20);
25344 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25345 }
25346frvbf_media_overflow (current_cpu, 1);
25347}
25348} else {
25349 {
25350 DI opval = tmp_tmp;
25351 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25352 written |= (1 << 20);
25353 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25354 }
25355}
25356}
25357}
25358{
25359 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25360 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25361 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25362 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25363}
25364{
25365 DI tmp_tmp;
25366 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi)));
25367if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25368{
25369 {
25370 DI opval = MAKEDI (127, 0xffffffff);
25371 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25372 written |= (1 << 17);
25373 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25374 }
25375frvbf_media_overflow (current_cpu, 8);
25376}
25377} else {
25378if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25379{
25380 {
25381 DI opval = MAKEDI (0xffffff80, 0);
25382 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25383 written |= (1 << 17);
25384 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25385 }
25386frvbf_media_overflow (current_cpu, 8);
25387}
25388} else {
25389 {
25390 DI opval = tmp_tmp;
25391 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25392 written |= (1 << 17);
25393 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25394 }
25395}
25396}
25397}
25398{
25399 DI tmp_tmp;
25400 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo)));
25401if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25402{
25403 {
25404 DI opval = MAKEDI (127, 0xffffffff);
25405 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25406 written |= (1 << 18);
25407 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25408 }
25409frvbf_media_overflow (current_cpu, 4);
25410}
25411} else {
25412if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25413{
25414 {
25415 DI opval = MAKEDI (0xffffff80, 0);
25416 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25417 written |= (1 << 18);
25418 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25419 }
25420frvbf_media_overflow (current_cpu, 4);
25421}
25422} else {
25423 {
25424 DI opval = tmp_tmp;
25425 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25426 written |= (1 << 18);
25427 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25428 }
25429}
25430}
25431}
25432}
25433}
25434}
25435
25436 abuf->written = written;
25437 return vpc;
25438#undef FLD
25439}
25440
25441/* mqxmacxhs: mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25442
25443static SEM_PC
25444SEM_FN_NAME (frvbf,mqxmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25445{
25446#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25447 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25448 int UNUSED written = 0;
25449 IADDR UNUSED pc = abuf->addr;
25450 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25451
25452if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25453frvbf_media_acc_not_aligned (current_cpu);
25454} else {
25455if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25456frvbf_media_register_not_aligned (current_cpu);
25457} else {
25458{
25459 HI tmp_argihi;
25460 HI tmp_argilo;
25461 HI tmp_argjhi;
25462 HI tmp_argjlo;
25463{
25464 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25465 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25466 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25467 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25468}
25469{
25470 DI tmp_tmp;
25471 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25472if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25473{
25474 {
25475 DI opval = MAKEDI (127, 0xffffffff);
25476 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25477 written |= (1 << 19);
25478 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25479 }
25480frvbf_media_overflow (current_cpu, 2);
25481}
25482} else {
25483if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25484{
25485 {
25486 DI opval = MAKEDI (0xffffff80, 0);
25487 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25488 written |= (1 << 19);
25489 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25490 }
25491frvbf_media_overflow (current_cpu, 2);
25492}
25493} else {
25494 {
25495 DI opval = tmp_tmp;
25496 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25497 written |= (1 << 19);
25498 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25499 }
25500}
25501}
25502}
25503{
25504 DI tmp_tmp;
25505 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25506if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25507{
25508 {
25509 DI opval = MAKEDI (127, 0xffffffff);
25510 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25511 written |= (1 << 20);
25512 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25513 }
25514frvbf_media_overflow (current_cpu, 1);
25515}
25516} else {
25517if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25518{
25519 {
25520 DI opval = MAKEDI (0xffffff80, 0);
25521 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25522 written |= (1 << 20);
25523 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25524 }
25525frvbf_media_overflow (current_cpu, 1);
25526}
25527} else {
25528 {
25529 DI opval = tmp_tmp;
25530 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25531 written |= (1 << 20);
25532 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25533 }
25534}
25535}
25536}
25537{
25538 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25539 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25540 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25541 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25542}
25543{
25544 DI tmp_tmp;
25545 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25546if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25547{
25548 {
25549 DI opval = MAKEDI (127, 0xffffffff);
25550 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25551 written |= (1 << 17);
25552 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25553 }
25554frvbf_media_overflow (current_cpu, 8);
25555}
25556} else {
25557if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25558{
25559 {
25560 DI opval = MAKEDI (0xffffff80, 0);
25561 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25562 written |= (1 << 17);
25563 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25564 }
25565frvbf_media_overflow (current_cpu, 8);
25566}
25567} else {
25568 {
25569 DI opval = tmp_tmp;
25570 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25571 written |= (1 << 17);
25572 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25573 }
25574}
25575}
25576}
25577{
25578 DI tmp_tmp;
25579 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25580if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25581{
25582 {
25583 DI opval = MAKEDI (127, 0xffffffff);
25584 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25585 written |= (1 << 18);
25586 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25587 }
25588frvbf_media_overflow (current_cpu, 4);
25589}
25590} else {
25591if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25592{
25593 {
25594 DI opval = MAKEDI (0xffffff80, 0);
25595 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25596 written |= (1 << 18);
25597 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25598 }
25599frvbf_media_overflow (current_cpu, 4);
25600}
25601} else {
25602 {
25603 DI opval = tmp_tmp;
25604 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25605 written |= (1 << 18);
25606 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25607 }
25608}
25609}
25610}
25611}
25612}
25613}
25614
25615 abuf->written = written;
25616 return vpc;
25617#undef FLD
25618}
25619
25620/* mqmacxhs: mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
25621
25622static SEM_PC
25623SEM_FN_NAME (frvbf,mqmacxhs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25624{
25625#define FLD(f) abuf->fields.sfmt_cmqmachs.f
25626 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25627 int UNUSED written = 0;
25628 IADDR UNUSED pc = abuf->addr;
25629 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25630
25631if (ANDSI (FLD (f_ACC40Sk), SUBSI (4, 1))) {
25632frvbf_media_acc_not_aligned (current_cpu);
25633} else {
25634if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
25635frvbf_media_register_not_aligned (current_cpu);
25636} else {
25637{
25638 HI tmp_argihi;
25639 HI tmp_argilo;
25640 HI tmp_argjhi;
25641 HI tmp_argjlo;
25642{
25643 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25644 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25645 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25646 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25647}
25648{
25649 DI tmp_tmp;
25650 tmp_tmp = ADDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25651if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25652{
25653 {
25654 DI opval = MAKEDI (127, 0xffffffff);
25655 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25656 written |= (1 << 17);
25657 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25658 }
25659frvbf_media_overflow (current_cpu, 8);
25660}
25661} else {
25662if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25663{
25664 {
25665 DI opval = MAKEDI (0xffffff80, 0);
25666 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25667 written |= (1 << 17);
25668 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25669 }
25670frvbf_media_overflow (current_cpu, 8);
25671}
25672} else {
25673 {
25674 DI opval = tmp_tmp;
25675 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25676 written |= (1 << 17);
25677 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25678 }
25679}
25680}
25681}
25682{
25683 DI tmp_tmp;
25684 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (1))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25685if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25686{
25687 {
25688 DI opval = MAKEDI (127, 0xffffffff);
25689 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25690 written |= (1 << 18);
25691 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25692 }
25693frvbf_media_overflow (current_cpu, 4);
25694}
25695} else {
25696if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25697{
25698 {
25699 DI opval = MAKEDI (0xffffff80, 0);
25700 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25701 written |= (1 << 18);
25702 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25703 }
25704frvbf_media_overflow (current_cpu, 4);
25705}
25706} else {
25707 {
25708 DI opval = tmp_tmp;
25709 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
25710 written |= (1 << 18);
25711 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25712 }
25713}
25714}
25715}
25716{
25717 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25718 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25719 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25720 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25721}
25722{
25723 DI tmp_tmp;
25724 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (2))), MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo)));
25725if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25726{
25727 {
25728 DI opval = MAKEDI (127, 0xffffffff);
25729 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25730 written |= (1 << 19);
25731 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25732 }
25733frvbf_media_overflow (current_cpu, 2);
25734}
25735} else {
25736if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25737{
25738 {
25739 DI opval = MAKEDI (0xffffff80, 0);
25740 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25741 written |= (1 << 19);
25742 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25743 }
25744frvbf_media_overflow (current_cpu, 2);
25745}
25746} else {
25747 {
25748 DI opval = tmp_tmp;
25749 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (2)), opval);
25750 written |= (1 << 19);
25751 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25752 }
25753}
25754}
25755}
25756{
25757 DI tmp_tmp;
25758 tmp_tmp = ADDDI (GET_H_ACC40S (((FLD (f_ACC40Sk)) + (3))), MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi)));
25759if (GTDI (tmp_tmp, MAKEDI (127, 0xffffffff))) {
25760{
25761 {
25762 DI opval = MAKEDI (127, 0xffffffff);
25763 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25764 written |= (1 << 20);
25765 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25766 }
25767frvbf_media_overflow (current_cpu, 1);
25768}
25769} else {
25770if (LTDI (tmp_tmp, MAKEDI (0xffffff80, 0))) {
25771{
25772 {
25773 DI opval = MAKEDI (0xffffff80, 0);
25774 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25775 written |= (1 << 20);
25776 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25777 }
25778frvbf_media_overflow (current_cpu, 1);
25779}
25780} else {
25781 {
25782 DI opval = tmp_tmp;
25783 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (3)), opval);
25784 written |= (1 << 20);
25785 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25786 }
25787}
25788}
25789}
25790}
25791}
25792}
25793
25794 abuf->written = written;
25795 return vpc;
25796#undef FLD
25797}
25798
25799/* mcpxrs: mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
25800
25801static SEM_PC
25802SEM_FN_NAME (frvbf,mcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25803{
25804#define FLD(f) abuf->fields.sfmt_cmmachs.f
25805 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25806 int UNUSED written = 0;
25807 IADDR UNUSED pc = abuf->addr;
25808 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25809
25810{
25811 HI tmp_argihi;
25812 HI tmp_argilo;
25813 HI tmp_argjhi;
25814 HI tmp_argjlo;
25815{
25816 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25817 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25818 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25819 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25820}
25821{
25822 DI tmp_tmp1;
25823 DI tmp_tmp2;
25824 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
25825 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
25826 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25827if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25828{
25829 {
25830 DI opval = MAKEDI (127, 0xffffffff);
25831 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25832 written |= (1 << 8);
25833 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25834 }
25835frvbf_media_overflow (current_cpu, 8);
25836}
25837} else {
25838if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25839{
25840 {
25841 DI opval = MAKEDI (0xffffff80, 0);
25842 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25843 written |= (1 << 8);
25844 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25845 }
25846frvbf_media_overflow (current_cpu, 8);
25847}
25848} else {
25849 {
25850 DI opval = tmp_tmp1;
25851 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25852 written |= (1 << 8);
25853 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25854 }
25855}
25856}
25857}
25858}
25859
25860 abuf->written = written;
25861 return vpc;
25862#undef FLD
25863}
25864
25865/* mcpxru: mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
25866
25867static SEM_PC
25868SEM_FN_NAME (frvbf,mcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25869{
25870#define FLD(f) abuf->fields.sfmt_cmmachs.f
25871 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25872 int UNUSED written = 0;
25873 IADDR UNUSED pc = abuf->addr;
25874 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25875
25876{
25877 UHI tmp_argihi;
25878 UHI tmp_argilo;
25879 UHI tmp_argjhi;
25880 UHI tmp_argjlo;
25881{
25882 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25883 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25884 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25885 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25886}
25887{
25888 DI tmp_tmp1;
25889 DI tmp_tmp2;
25890 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
25891 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
25892 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
25893if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
25894{
25895 {
25896 DI opval = MAKEDI (255, 0xffffffff);
25897 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25898 written |= (1 << 8);
25899 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25900 }
25901frvbf_media_overflow (current_cpu, 8);
25902}
25903} else {
25904if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
25905{
25906 {
25907 DI opval = MAKEDI (0, 0);
25908 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25909 written |= (1 << 8);
25910 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25911 }
25912frvbf_media_overflow (current_cpu, 8);
25913}
25914} else {
25915 {
25916 DI opval = tmp_tmp1;
25917 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25918 written |= (1 << 8);
25919 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25920 }
25921}
25922}
25923}
25924}
25925
25926 abuf->written = written;
25927 return vpc;
25928#undef FLD
25929}
25930
25931/* mcpxis: mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
25932
25933static SEM_PC
25934SEM_FN_NAME (frvbf,mcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
25935{
25936#define FLD(f) abuf->fields.sfmt_cmmachs.f
25937 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
25938 int UNUSED written = 0;
25939 IADDR UNUSED pc = abuf->addr;
25940 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
25941
25942{
25943 HI tmp_argihi;
25944 HI tmp_argilo;
25945 HI tmp_argjhi;
25946 HI tmp_argjlo;
25947{
25948 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25949 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
25950 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25951 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
25952}
25953{
25954 DI tmp_tmp1;
25955 DI tmp_tmp2;
25956 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
25957 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
25958 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
25959if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
25960{
25961 {
25962 DI opval = MAKEDI (127, 0xffffffff);
25963 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25964 written |= (1 << 8);
25965 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25966 }
25967frvbf_media_overflow (current_cpu, 8);
25968}
25969} else {
25970if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
25971{
25972 {
25973 DI opval = MAKEDI (0xffffff80, 0);
25974 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25975 written |= (1 << 8);
25976 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25977 }
25978frvbf_media_overflow (current_cpu, 8);
25979}
25980} else {
25981 {
25982 DI opval = tmp_tmp1;
25983 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
25984 written |= (1 << 8);
25985 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
25986 }
25987}
25988}
25989}
25990}
25991
25992 abuf->written = written;
25993 return vpc;
25994#undef FLD
25995}
25996
25997/* mcpxiu: mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
25998
25999static SEM_PC
26000SEM_FN_NAME (frvbf,mcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26001{
26002#define FLD(f) abuf->fields.sfmt_cmmachs.f
26003 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26004 int UNUSED written = 0;
26005 IADDR UNUSED pc = abuf->addr;
26006 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26007
26008{
26009 UHI tmp_argihi;
26010 UHI tmp_argilo;
26011 UHI tmp_argjhi;
26012 UHI tmp_argjlo;
26013{
26014 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26015 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26016 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26017 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26018}
26019{
26020 DI tmp_tmp1;
26021 DI tmp_tmp2;
26022 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26023 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26024 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26025if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26026{
26027 {
26028 DI opval = MAKEDI (255, 0xffffffff);
26029 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26030 written |= (1 << 8);
26031 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26032 }
26033frvbf_media_overflow (current_cpu, 8);
26034}
26035} else {
26036if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26037{
26038 {
26039 DI opval = MAKEDI (0, 0);
26040 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26041 written |= (1 << 8);
26042 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26043 }
26044frvbf_media_overflow (current_cpu, 8);
26045}
26046} else {
26047 {
26048 DI opval = tmp_tmp1;
26049 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26050 written |= (1 << 8);
26051 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26052 }
26053}
26054}
26055}
26056}
26057
26058 abuf->written = written;
26059 return vpc;
26060#undef FLD
26061}
26062
26063/* cmcpxrs: cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26064
26065static SEM_PC
26066SEM_FN_NAME (frvbf,cmcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26067{
26068#define FLD(f) abuf->fields.sfmt_cmmachs.f
26069 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26070 int UNUSED written = 0;
26071 IADDR UNUSED pc = abuf->addr;
26072 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26073
26074if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26075{
26076 HI tmp_argihi;
26077 HI tmp_argilo;
26078 HI tmp_argjhi;
26079 HI tmp_argjlo;
26080{
26081 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26082 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26083 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26084 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26085}
26086{
26087 DI tmp_tmp1;
26088 DI tmp_tmp2;
26089 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26090 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26091 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26092if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26093{
26094 {
26095 DI opval = MAKEDI (127, 0xffffffff);
26096 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26097 written |= (1 << 10);
26098 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26099 }
26100frvbf_media_overflow (current_cpu, 8);
26101}
26102} else {
26103if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26104{
26105 {
26106 DI opval = MAKEDI (0xffffff80, 0);
26107 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26108 written |= (1 << 10);
26109 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26110 }
26111frvbf_media_overflow (current_cpu, 8);
26112}
26113} else {
26114 {
26115 DI opval = tmp_tmp1;
26116 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26117 written |= (1 << 10);
26118 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26119 }
26120}
26121}
26122}
26123}
26124}
26125
26126 abuf->written = written;
26127 return vpc;
26128#undef FLD
26129}
26130
26131/* cmcpxru: cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26132
26133static SEM_PC
26134SEM_FN_NAME (frvbf,cmcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26135{
26136#define FLD(f) abuf->fields.sfmt_cmmachs.f
26137 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26138 int UNUSED written = 0;
26139 IADDR UNUSED pc = abuf->addr;
26140 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26141
26142if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26143{
26144 UHI tmp_argihi;
26145 UHI tmp_argilo;
26146 UHI tmp_argjhi;
26147 UHI tmp_argjlo;
26148{
26149 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26150 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26151 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26152 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26153}
26154{
26155 DI tmp_tmp1;
26156 DI tmp_tmp2;
26157 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26158 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26159 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26160if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26161{
26162 {
26163 DI opval = MAKEDI (255, 0xffffffff);
26164 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26165 written |= (1 << 10);
26166 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26167 }
26168frvbf_media_overflow (current_cpu, 8);
26169}
26170} else {
26171if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26172{
26173 {
26174 DI opval = MAKEDI (0, 0);
26175 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26176 written |= (1 << 10);
26177 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26178 }
26179frvbf_media_overflow (current_cpu, 8);
26180}
26181} else {
26182 {
26183 DI opval = tmp_tmp1;
26184 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26185 written |= (1 << 10);
26186 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26187 }
26188}
26189}
26190}
26191}
26192}
26193
26194 abuf->written = written;
26195 return vpc;
26196#undef FLD
26197}
26198
26199/* cmcpxis: cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26200
26201static SEM_PC
26202SEM_FN_NAME (frvbf,cmcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26203{
26204#define FLD(f) abuf->fields.sfmt_cmmachs.f
26205 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26206 int UNUSED written = 0;
26207 IADDR UNUSED pc = abuf->addr;
26208 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26209
26210if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26211{
26212 HI tmp_argihi;
26213 HI tmp_argilo;
26214 HI tmp_argjhi;
26215 HI tmp_argjlo;
26216{
26217 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26218 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26219 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26220 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26221}
26222{
26223 DI tmp_tmp1;
26224 DI tmp_tmp2;
26225 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26226 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26227 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26228if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26229{
26230 {
26231 DI opval = MAKEDI (127, 0xffffffff);
26232 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26233 written |= (1 << 10);
26234 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26235 }
26236frvbf_media_overflow (current_cpu, 8);
26237}
26238} else {
26239if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26240{
26241 {
26242 DI opval = MAKEDI (0xffffff80, 0);
26243 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26244 written |= (1 << 10);
26245 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26246 }
26247frvbf_media_overflow (current_cpu, 8);
26248}
26249} else {
26250 {
26251 DI opval = tmp_tmp1;
26252 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26253 written |= (1 << 10);
26254 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26255 }
26256}
26257}
26258}
26259}
26260}
26261
26262 abuf->written = written;
26263 return vpc;
26264#undef FLD
26265}
26266
26267/* cmcpxiu: cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
26268
26269static SEM_PC
26270SEM_FN_NAME (frvbf,cmcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26271{
26272#define FLD(f) abuf->fields.sfmt_cmmachs.f
26273 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26274 int UNUSED written = 0;
26275 IADDR UNUSED pc = abuf->addr;
26276 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26277
26278if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26279{
26280 UHI tmp_argihi;
26281 UHI tmp_argilo;
26282 UHI tmp_argjhi;
26283 UHI tmp_argjlo;
26284{
26285 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26286 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26287 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26288 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26289}
26290{
26291 DI tmp_tmp1;
26292 DI tmp_tmp2;
26293 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26294 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26295 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26296if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26297{
26298 {
26299 DI opval = MAKEDI (255, 0xffffffff);
26300 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26301 written |= (1 << 10);
26302 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26303 }
26304frvbf_media_overflow (current_cpu, 8);
26305}
26306} else {
26307if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26308{
26309 {
26310 DI opval = MAKEDI (0, 0);
26311 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26312 written |= (1 << 10);
26313 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26314 }
26315frvbf_media_overflow (current_cpu, 8);
26316}
26317} else {
26318 {
26319 DI opval = tmp_tmp1;
26320 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26321 written |= (1 << 10);
26322 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26323 }
26324}
26325}
26326}
26327}
26328}
26329
26330 abuf->written = written;
26331 return vpc;
26332#undef FLD
26333}
26334
26335/* mqcpxrs: mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
26336
26337static SEM_PC
26338SEM_FN_NAME (frvbf,mqcpxrs) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26339{
26340#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26341 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26342 int UNUSED written = 0;
26343 IADDR UNUSED pc = abuf->addr;
26344 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26345
26346if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26347frvbf_media_acc_not_aligned (current_cpu);
26348} else {
26349if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26350frvbf_media_register_not_aligned (current_cpu);
26351} else {
26352{
26353 HI tmp_argihi;
26354 HI tmp_argilo;
26355 HI tmp_argjhi;
26356 HI tmp_argjlo;
26357{
26358 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26359 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26360 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26361 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26362}
26363{
26364 DI tmp_tmp1;
26365 DI tmp_tmp2;
26366 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26367 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26368 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26369if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26370{
26371 {
26372 DI opval = MAKEDI (127, 0xffffffff);
26373 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26374 written |= (1 << 13);
26375 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26376 }
26377frvbf_media_overflow (current_cpu, 8);
26378}
26379} else {
26380if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26381{
26382 {
26383 DI opval = MAKEDI (0xffffff80, 0);
26384 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26385 written |= (1 << 13);
26386 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26387 }
26388frvbf_media_overflow (current_cpu, 8);
26389}
26390} else {
26391 {
26392 DI opval = tmp_tmp1;
26393 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26394 written |= (1 << 13);
26395 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26396 }
26397}
26398}
26399}
26400{
26401 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26402 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26403 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26404 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26405}
26406{
26407 DI tmp_tmp1;
26408 DI tmp_tmp2;
26409 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjhi));
26410 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjlo));
26411 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26412if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26413{
26414 {
26415 DI opval = MAKEDI (127, 0xffffffff);
26416 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26417 written |= (1 << 14);
26418 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26419 }
26420frvbf_media_overflow (current_cpu, 4);
26421}
26422} else {
26423if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26424{
26425 {
26426 DI opval = MAKEDI (0xffffff80, 0);
26427 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26428 written |= (1 << 14);
26429 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26430 }
26431frvbf_media_overflow (current_cpu, 4);
26432}
26433} else {
26434 {
26435 DI opval = tmp_tmp1;
26436 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26437 written |= (1 << 14);
26438 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26439 }
26440}
26441}
26442}
26443}
26444}
26445}
26446
26447 abuf->written = written;
26448 return vpc;
26449#undef FLD
26450}
26451
26452/* mqcpxru: mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
26453
26454static SEM_PC
26455SEM_FN_NAME (frvbf,mqcpxru) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26456{
26457#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26458 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26459 int UNUSED written = 0;
26460 IADDR UNUSED pc = abuf->addr;
26461 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26462
26463if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26464frvbf_media_acc_not_aligned (current_cpu);
26465} else {
26466if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26467frvbf_media_register_not_aligned (current_cpu);
26468} else {
26469{
26470 UHI tmp_argihi;
26471 UHI tmp_argilo;
26472 UHI tmp_argjhi;
26473 UHI tmp_argjlo;
26474{
26475 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26476 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26477 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26478 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26479}
26480{
26481 DI tmp_tmp1;
26482 DI tmp_tmp2;
26483 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26484 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26485 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26486if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26487{
26488 {
26489 DI opval = MAKEDI (255, 0xffffffff);
26490 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26491 written |= (1 << 13);
26492 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26493 }
26494frvbf_media_overflow (current_cpu, 8);
26495}
26496} else {
26497if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26498{
26499 {
26500 DI opval = MAKEDI (0, 0);
26501 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26502 written |= (1 << 13);
26503 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26504 }
26505frvbf_media_overflow (current_cpu, 8);
26506}
26507} else {
26508 {
26509 DI opval = tmp_tmp1;
26510 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26511 written |= (1 << 13);
26512 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26513 }
26514}
26515}
26516}
26517{
26518 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26519 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26520 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26521 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26522}
26523{
26524 DI tmp_tmp1;
26525 DI tmp_tmp2;
26526 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjhi));
26527 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjlo));
26528 tmp_tmp1 = SUBDI (tmp_tmp1, tmp_tmp2);
26529if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26530{
26531 {
26532 DI opval = MAKEDI (255, 0xffffffff);
26533 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26534 written |= (1 << 14);
26535 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26536 }
26537frvbf_media_overflow (current_cpu, 4);
26538}
26539} else {
26540if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26541{
26542 {
26543 DI opval = MAKEDI (0, 0);
26544 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26545 written |= (1 << 14);
26546 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26547 }
26548frvbf_media_overflow (current_cpu, 4);
26549}
26550} else {
26551 {
26552 DI opval = tmp_tmp1;
26553 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26554 written |= (1 << 14);
26555 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26556 }
26557}
26558}
26559}
26560}
26561}
26562}
26563
26564 abuf->written = written;
26565 return vpc;
26566#undef FLD
26567}
26568
26569/* mqcpxis: mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
26570
26571static SEM_PC
26572SEM_FN_NAME (frvbf,mqcpxis) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26573{
26574#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26575 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26576 int UNUSED written = 0;
26577 IADDR UNUSED pc = abuf->addr;
26578 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26579
26580if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26581frvbf_media_acc_not_aligned (current_cpu);
26582} else {
26583if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26584frvbf_media_register_not_aligned (current_cpu);
26585} else {
26586{
26587 HI tmp_argihi;
26588 HI tmp_argilo;
26589 HI tmp_argjhi;
26590 HI tmp_argjlo;
26591{
26592 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26593 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26594 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26595 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26596}
26597{
26598 DI tmp_tmp1;
26599 DI tmp_tmp2;
26600 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26601 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26602 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26603if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26604{
26605 {
26606 DI opval = MAKEDI (127, 0xffffffff);
26607 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26608 written |= (1 << 13);
26609 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26610 }
26611frvbf_media_overflow (current_cpu, 8);
26612}
26613} else {
26614if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26615{
26616 {
26617 DI opval = MAKEDI (0xffffff80, 0);
26618 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26619 written |= (1 << 13);
26620 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26621 }
26622frvbf_media_overflow (current_cpu, 8);
26623}
26624} else {
26625 {
26626 DI opval = tmp_tmp1;
26627 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26628 written |= (1 << 13);
26629 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26630 }
26631}
26632}
26633}
26634{
26635 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26636 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26637 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26638 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26639}
26640{
26641 DI tmp_tmp1;
26642 DI tmp_tmp2;
26643 tmp_tmp1 = MULDI (EXTHIDI (tmp_argihi), EXTHIDI (tmp_argjlo));
26644 tmp_tmp2 = MULDI (EXTHIDI (tmp_argilo), EXTHIDI (tmp_argjhi));
26645 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26646if (GTDI (tmp_tmp1, MAKEDI (127, 0xffffffff))) {
26647{
26648 {
26649 DI opval = MAKEDI (127, 0xffffffff);
26650 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26651 written |= (1 << 14);
26652 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26653 }
26654frvbf_media_overflow (current_cpu, 4);
26655}
26656} else {
26657if (LTDI (tmp_tmp1, MAKEDI (0xffffff80, 0))) {
26658{
26659 {
26660 DI opval = MAKEDI (0xffffff80, 0);
26661 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26662 written |= (1 << 14);
26663 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26664 }
26665frvbf_media_overflow (current_cpu, 4);
26666}
26667} else {
26668 {
26669 DI opval = tmp_tmp1;
26670 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26671 written |= (1 << 14);
26672 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26673 }
26674}
26675}
26676}
26677}
26678}
26679}
26680
26681 abuf->written = written;
26682 return vpc;
26683#undef FLD
26684}
26685
26686/* mqcpxiu: mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
26687
26688static SEM_PC
26689SEM_FN_NAME (frvbf,mqcpxiu) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26690{
26691#define FLD(f) abuf->fields.sfmt_cmqmachs.f
26692 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26693 int UNUSED written = 0;
26694 IADDR UNUSED pc = abuf->addr;
26695 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26696
26697if (ANDSI (FLD (f_ACC40Sk), SUBSI (2, 1))) {
26698frvbf_media_acc_not_aligned (current_cpu);
26699} else {
26700if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRj), SUBSI (2, 1)))) {
26701frvbf_media_register_not_aligned (current_cpu);
26702} else {
26703{
26704 UHI tmp_argihi;
26705 UHI tmp_argilo;
26706 UHI tmp_argjhi;
26707 UHI tmp_argjlo;
26708{
26709 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26710 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26711 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26712 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (0))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26713}
26714{
26715 DI tmp_tmp1;
26716 DI tmp_tmp2;
26717 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26718 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26719 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26720if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26721{
26722 {
26723 DI opval = MAKEDI (255, 0xffffffff);
26724 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26725 written |= (1 << 13);
26726 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26727 }
26728frvbf_media_overflow (current_cpu, 8);
26729}
26730} else {
26731if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26732{
26733 {
26734 DI opval = MAKEDI (0, 0);
26735 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26736 written |= (1 << 13);
26737 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26738 }
26739frvbf_media_overflow (current_cpu, 8);
26740}
26741} else {
26742 {
26743 DI opval = tmp_tmp1;
26744 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
26745 written |= (1 << 13);
26746 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26747 }
26748}
26749}
26750}
26751{
26752 tmp_argihi = ADDHI (GET_H_FR_HI (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26753 tmp_argilo = ADDHI (GET_H_FR_LO (((FLD (f_FRi)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRi)), 0));
26754 tmp_argjhi = ADDHI (GET_H_FR_HI (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26755 tmp_argjlo = ADDHI (GET_H_FR_LO (((FLD (f_FRj)) + (1))), MULSI (GET_H_FR_INT (FLD (f_FRj)), 0));
26756}
26757{
26758 DI tmp_tmp1;
26759 DI tmp_tmp2;
26760 tmp_tmp1 = MULDI (ZEXTHIDI (tmp_argihi), ZEXTHIDI (tmp_argjlo));
26761 tmp_tmp2 = MULDI (ZEXTHIDI (tmp_argilo), ZEXTHIDI (tmp_argjhi));
26762 tmp_tmp1 = ADDDI (tmp_tmp1, tmp_tmp2);
26763if (GTDI (tmp_tmp1, MAKEDI (255, 0xffffffff))) {
26764{
26765 {
26766 DI opval = MAKEDI (255, 0xffffffff);
26767 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26768 written |= (1 << 14);
26769 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26770 }
26771frvbf_media_overflow (current_cpu, 4);
26772}
26773} else {
26774if (LTDI (tmp_tmp1, MAKEDI (0, 0))) {
26775{
26776 {
26777 DI opval = MAKEDI (0, 0);
26778 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26779 written |= (1 << 14);
26780 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26781 }
26782frvbf_media_overflow (current_cpu, 4);
26783}
26784} else {
26785 {
26786 DI opval = tmp_tmp1;
26787 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, ((FLD (f_ACC40Sk)) + (1)), opval);
26788 written |= (1 << 14);
26789 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
26790 }
26791}
26792}
26793}
26794}
26795}
26796}
26797
26798 abuf->written = written;
26799 return vpc;
26800#undef FLD
26801}
26802
26803/* mexpdhw: mexpdhw$pack $FRinti,$u6,$FRintk */
26804
26805static SEM_PC
26806SEM_FN_NAME (frvbf,mexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26807{
26808#define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26809 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26810 int UNUSED written = 0;
26811 IADDR UNUSED pc = abuf->addr;
26812 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26813
26814{
26815 UHI tmp_tmp;
26816if (ANDSI (FLD (f_u6), 1)) {
26817 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26818} else {
26819 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26820}
26821 {
26822 UHI opval = tmp_tmp;
26823 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26824 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26825 }
26826 {
26827 UHI opval = tmp_tmp;
26828 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26829 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26830 }
26831}
26832
26833 return vpc;
26834#undef FLD
26835}
26836
26837/* cmexpdhw: cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
26838
26839static SEM_PC
26840SEM_FN_NAME (frvbf,cmexpdhw) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26841{
26842#define FLD(f) abuf->fields.sfmt_cmexpdhw.f
26843 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26844 int UNUSED written = 0;
26845 IADDR UNUSED pc = abuf->addr;
26846 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26847
26848if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26849{
26850 UHI tmp_tmp;
26851if (ANDSI (FLD (f_u6), 1)) {
26852 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26853} else {
26854 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26855}
26856 {
26857 UHI opval = tmp_tmp;
26858 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26859 written |= (1 << 7);
26860 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26861 }
26862 {
26863 UHI opval = tmp_tmp;
26864 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26865 written |= (1 << 8);
26866 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26867 }
26868}
26869}
26870
26871 abuf->written = written;
26872 return vpc;
26873#undef FLD
26874}
26875
26876/* mexpdhd: mexpdhd$pack $FRinti,$u6,$FRintkeven */
26877
26878static SEM_PC
26879SEM_FN_NAME (frvbf,mexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26880{
26881#define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26882 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26883 int UNUSED written = 0;
26884 IADDR UNUSED pc = abuf->addr;
26885 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26886
26887if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26888frvbf_media_register_not_aligned (current_cpu);
26889} else {
26890{
26891 UHI tmp_tmp;
26892 {
26893 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26894 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26895 written |= (1 << 6);
26896 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26897 }
26898if (ANDSI (FLD (f_u6), 1)) {
26899 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26900} else {
26901 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26902}
26903 {
26904 UHI opval = tmp_tmp;
26905 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26906 written |= (1 << 7);
26907 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26908 }
26909 {
26910 UHI opval = tmp_tmp;
26911 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26912 written |= (1 << 9);
26913 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26914 }
26915 {
26916 UHI opval = tmp_tmp;
26917 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26918 written |= (1 << 8);
26919 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26920 }
26921 {
26922 UHI opval = tmp_tmp;
26923 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26924 written |= (1 << 10);
26925 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26926 }
26927}
26928}
26929
26930 abuf->written = written;
26931 return vpc;
26932#undef FLD
26933}
26934
26935/* cmexpdhd: cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
26936
26937static SEM_PC
26938SEM_FN_NAME (frvbf,cmexpdhd) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
26939{
26940#define FLD(f) abuf->fields.sfmt_cmexpdhd.f
26941 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
26942 int UNUSED written = 0;
26943 IADDR UNUSED pc = abuf->addr;
26944 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
26945
26946if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
26947frvbf_media_register_not_aligned (current_cpu);
26948} else {
26949if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
26950{
26951 UHI tmp_tmp;
26952 {
26953 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
26954 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
26955 written |= (1 << 8);
26956 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
26957 }
26958if (ANDSI (FLD (f_u6), 1)) {
26959 tmp_tmp = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
26960} else {
26961 tmp_tmp = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
26962}
26963 {
26964 UHI opval = tmp_tmp;
26965 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
26966 written |= (1 << 9);
26967 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26968 }
26969 {
26970 UHI opval = tmp_tmp;
26971 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
26972 written |= (1 << 11);
26973 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26974 }
26975 {
26976 UHI opval = tmp_tmp;
26977 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
26978 written |= (1 << 10);
26979 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
26980 }
26981 {
26982 UHI opval = tmp_tmp;
26983 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
26984 written |= (1 << 12);
26985 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
26986 }
26987}
26988}
26989}
26990
26991 abuf->written = written;
26992 return vpc;
26993#undef FLD
26994}
26995
26996/* mpackh: mpackh$pack $FRinti,$FRintj,$FRintk */
26997
26998static SEM_PC
26999SEM_FN_NAME (frvbf,mpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27000{
27001#define FLD(f) abuf->fields.sfmt_cmaddhss.f
27002 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27003 int UNUSED written = 0;
27004 IADDR UNUSED pc = abuf->addr;
27005 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27006
27007{
27008 {
27009 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27010 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27011 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27012 }
27013 {
27014 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27015 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27016 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27017 }
27018}
27019
27020 return vpc;
27021#undef FLD
27022}
27023
27024/* mdpackh: mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
27025
27026static SEM_PC
27027SEM_FN_NAME (frvbf,mdpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27028{
27029#define FLD(f) abuf->fields.sfmt_mdpackh.f
27030 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27031 int UNUSED written = 0;
27032 IADDR UNUSED pc = abuf->addr;
27033 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27034
27035if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ORIF (ANDSI (FLD (f_FRj), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (2, 1))))) {
27036frvbf_media_register_not_aligned (current_cpu);
27037} else {
27038{
27039 {
27040 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27041 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27042 written |= (1 << 10);
27043 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27044 }
27045 {
27046 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27047 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27048 written |= (1 << 11);
27049 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27050 }
27051 {
27052 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27053 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27054 written |= (1 << 12);
27055 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27056 }
27057{
27058 {
27059 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27060 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27061 written |= (1 << 13);
27062 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27063 }
27064 {
27065 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27066 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27067 written |= (1 << 15);
27068 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27069 }
27070}
27071{
27072 {
27073 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27074 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27075 written |= (1 << 14);
27076 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27077 }
27078 {
27079 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27080 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27081 written |= (1 << 16);
27082 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27083 }
27084}
27085}
27086}
27087
27088 abuf->written = written;
27089 return vpc;
27090#undef FLD
27091}
27092
27093/* munpackh: munpackh$pack $FRinti,$FRintkeven */
27094
27095static SEM_PC
27096SEM_FN_NAME (frvbf,munpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27097{
27098#define FLD(f) abuf->fields.sfmt_munpackh.f
27099 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27100 int UNUSED written = 0;
27101 IADDR UNUSED pc = abuf->addr;
27102 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27103
27104if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27105frvbf_media_register_not_aligned (current_cpu);
27106} else {
27107{
27108 {
27109 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27110 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27111 written |= (1 << 6);
27112 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27113 }
27114 {
27115 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27116 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27117 written |= (1 << 7);
27118 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27119 }
27120{
27121 {
27122 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27123 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27124 written |= (1 << 8);
27125 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27126 }
27127 {
27128 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27129 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27130 written |= (1 << 10);
27131 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27132 }
27133 {
27134 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27135 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27136 written |= (1 << 9);
27137 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27138 }
27139 {
27140 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27141 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27142 written |= (1 << 11);
27143 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27144 }
27145}
27146}
27147}
27148
27149 abuf->written = written;
27150 return vpc;
27151#undef FLD
27152}
27153
27154/* mdunpackh: mdunpackh$pack $FRintieven,$FRintk */
27155
27156static SEM_PC
27157SEM_FN_NAME (frvbf,mdunpackh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27158{
27159#define FLD(f) abuf->fields.sfmt_mdunpackh.f
27160 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27161 int UNUSED written = 0;
27162 IADDR UNUSED pc = abuf->addr;
27163 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27164
27165if (ORIF (ANDSI (FLD (f_FRi), SUBSI (2, 1)), ANDSI (FLD (f_FRk), SUBSI (4, 1)))) {
27166frvbf_media_register_not_aligned (current_cpu);
27167} else {
27168{
27169 {
27170 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRi)));
27171 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRi), opval);
27172 written |= (1 << 8);
27173 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27174 }
27175 {
27176 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27177 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27178 written |= (1 << 9);
27179 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27180 }
27181{
27182 {
27183 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27184 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27185 written |= (1 << 10);
27186 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27187 }
27188 {
27189 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (0)));
27190 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27191 written |= (1 << 14);
27192 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27193 }
27194 {
27195 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27196 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27197 written |= (1 << 12);
27198 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27199 }
27200 {
27201 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (0)));
27202 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (0, 1))), opval);
27203 written |= (1 << 16);
27204 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27205 }
27206}
27207{
27208 {
27209 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27210 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27211 written |= (1 << 11);
27212 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27213 }
27214 {
27215 UHI opval = GET_H_FR_HI (((FLD (f_FRi)) + (1)));
27216 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27217 written |= (1 << 15);
27218 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27219 }
27220 {
27221 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27222 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27223 written |= (1 << 13);
27224 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27225 }
27226 {
27227 UHI opval = GET_H_FR_LO (((FLD (f_FRi)) + (1)));
27228 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (ADDSI (2, 1))), opval);
27229 written |= (1 << 17);
27230 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27231 }
27232}
27233}
27234}
27235
27236 abuf->written = written;
27237 return vpc;
27238#undef FLD
27239}
27240
27241/* mbtoh: mbtoh$pack $FRintj,$FRintkeven */
27242
27243static SEM_PC
27244SEM_FN_NAME (frvbf,mbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27245{
27246#define FLD(f) abuf->fields.sfmt_cmbtoh.f
27247 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27248 int UNUSED written = 0;
27249 IADDR UNUSED pc = abuf->addr;
27250 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27251
27252{
27253 {
27254 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27255 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27256 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27257 }
27258 {
27259 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27260 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27261 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27262 }
27263if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27264frvbf_media_register_not_aligned (current_cpu);
27265} else {
27266{
27267 {
27268 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27269 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27270 written |= (1 << 10);
27271 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27272 }
27273 {
27274 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27275 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27276 written |= (1 << 12);
27277 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27278 }
27279 {
27280 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27281 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27282 written |= (1 << 11);
27283 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27284 }
27285 {
27286 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27287 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27288 written |= (1 << 13);
27289 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27290 }
27291}
27292}
27293}
27294
27295 abuf->written = written;
27296 return vpc;
27297#undef FLD
27298}
27299
27300/* cmbtoh: cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
27301
27302static SEM_PC
27303SEM_FN_NAME (frvbf,cmbtoh) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27304{
27305#define FLD(f) abuf->fields.sfmt_cmbtoh.f
27306 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27307 int UNUSED written = 0;
27308 IADDR UNUSED pc = abuf->addr;
27309 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27310
27311{
27312 {
27313 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27314 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27315 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27316 }
27317 {
27318 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27319 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27320 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27321 }
27322if (ANDSI (FLD (f_FRk), SUBSI (2, 1))) {
27323frvbf_media_register_not_aligned (current_cpu);
27324} else {
27325if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27326{
27327 {
27328 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27329 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27330 written |= (1 << 12);
27331 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27332 }
27333 {
27334 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27335 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27336 written |= (1 << 14);
27337 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27338 }
27339 {
27340 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27341 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27342 written |= (1 << 13);
27343 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27344 }
27345 {
27346 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27347 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27348 written |= (1 << 15);
27349 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27350 }
27351}
27352}
27353}
27354}
27355
27356 abuf->written = written;
27357 return vpc;
27358#undef FLD
27359}
27360
27361/* mhtob: mhtob$pack $FRintjeven,$FRintk */
27362
27363static SEM_PC
27364SEM_FN_NAME (frvbf,mhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27365{
27366#define FLD(f) abuf->fields.sfmt_cmhtob.f
27367 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27368 int UNUSED written = 0;
27369 IADDR UNUSED pc = abuf->addr;
27370 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27371
27372{
27373 {
27374 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27375 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27376 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27377 }
27378 {
27379 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27380 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27381 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27382 }
27383if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27384frvbf_media_register_not_aligned (current_cpu);
27385} else {
27386{
27387 {
27388 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27389 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27390 written |= (1 << 13);
27391 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27392 }
27393 {
27394 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27395 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27396 written |= (1 << 12);
27397 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27398 }
27399 {
27400 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27401 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27402 written |= (1 << 11);
27403 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27404 }
27405 {
27406 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27407 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27408 written |= (1 << 10);
27409 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27410 }
27411}
27412}
27413}
27414
27415 abuf->written = written;
27416 return vpc;
27417#undef FLD
27418}
27419
27420/* cmhtob: cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
27421
27422static SEM_PC
27423SEM_FN_NAME (frvbf,cmhtob) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27424{
27425#define FLD(f) abuf->fields.sfmt_cmhtob.f
27426 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27427 int UNUSED written = 0;
27428 IADDR UNUSED pc = abuf->addr;
27429 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27430
27431{
27432 {
27433 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27434 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27435 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27436 }
27437 {
27438 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27439 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27440 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27441 }
27442if (ANDSI (FLD (f_FRj), SUBSI (2, 1))) {
27443frvbf_media_register_not_aligned (current_cpu);
27444} else {
27445if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27446{
27447 {
27448 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (0)));
27449 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_3_set, ((FLD (f_FRk)) + (0)), opval);
27450 written |= (1 << 15);
27451 TRACE_RESULT (current_cpu, abuf, "fr_3", 'x', opval);
27452 }
27453 {
27454 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (0)));
27455 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_2_set, ((FLD (f_FRk)) + (0)), opval);
27456 written |= (1 << 14);
27457 TRACE_RESULT (current_cpu, abuf, "fr_2", 'x', opval);
27458 }
27459 {
27460 UHI opval = GET_H_FR_HI (((FLD (f_FRj)) + (1)));
27461 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_1_set, ((FLD (f_FRk)) + (0)), opval);
27462 written |= (1 << 13);
27463 TRACE_RESULT (current_cpu, abuf, "fr_1", 'x', opval);
27464 }
27465 {
27466 UHI opval = GET_H_FR_LO (((FLD (f_FRj)) + (1)));
27467 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_0_set, ((FLD (f_FRk)) + (0)), opval);
27468 written |= (1 << 12);
27469 TRACE_RESULT (current_cpu, abuf, "fr_0", 'x', opval);
27470 }
27471}
27472}
27473}
27474}
27475
27476 abuf->written = written;
27477 return vpc;
27478#undef FLD
27479}
27480
27481/* mbtohe: mbtohe$pack $FRintj,$FRintk */
27482
27483static SEM_PC
27484SEM_FN_NAME (frvbf,mbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27485{
27486#define FLD(f) abuf->fields.sfmt_cmbtohe.f
27487 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27488 int UNUSED written = 0;
27489 IADDR UNUSED pc = abuf->addr;
27490 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27491
27492{
27493 {
27494 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27495 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27496 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27497 }
27498 {
27499 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27500 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27501 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27502 }
27503if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27504frvbf_media_register_not_aligned (current_cpu);
27505} else {
27506{
27507 {
27508 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27509 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27510 written |= (1 << 10);
27511 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27512 }
27513 {
27514 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27515 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27516 written |= (1 << 14);
27517 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27518 }
27519 {
27520 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27521 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27522 written |= (1 << 11);
27523 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27524 }
27525 {
27526 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27527 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27528 written |= (1 << 15);
27529 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27530 }
27531 {
27532 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27533 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27534 written |= (1 << 12);
27535 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27536 }
27537 {
27538 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27539 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27540 written |= (1 << 16);
27541 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27542 }
27543 {
27544 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27545 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27546 written |= (1 << 13);
27547 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27548 }
27549 {
27550 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27551 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27552 written |= (1 << 17);
27553 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27554 }
27555}
27556}
27557}
27558
27559 abuf->written = written;
27560 return vpc;
27561#undef FLD
27562}
27563
27564/* cmbtohe: cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
27565
27566static SEM_PC
27567SEM_FN_NAME (frvbf,cmbtohe) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27568{
27569#define FLD(f) abuf->fields.sfmt_cmbtohe.f
27570 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27571 int UNUSED written = 0;
27572 IADDR UNUSED pc = abuf->addr;
27573 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27574
27575{
27576 {
27577 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRj)));
27578 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRj), opval);
27579 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27580 }
27581 {
27582 SI opval = frv_ref_SI (GET_H_FR_INT (FLD (f_FRk)));
27583 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27584 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27585 }
27586if (ANDSI (FLD (f_FRk), SUBSI (4, 1))) {
27587frvbf_media_register_not_aligned (current_cpu);
27588} else {
27589if (EQQI (CPU (h_cccr[FLD (f_CCi)]), ORSI (FLD (f_cond), 2))) {
27590{
27591 {
27592 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27593 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (0)), opval);
27594 written |= (1 << 12);
27595 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27596 }
27597 {
27598 UHI opval = GET_H_FR_3 (((FLD (f_FRj)) + (0)));
27599 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (0)), opval);
27600 written |= (1 << 16);
27601 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27602 }
27603 {
27604 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27605 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (1)), opval);
27606 written |= (1 << 13);
27607 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27608 }
27609 {
27610 UHI opval = GET_H_FR_2 (((FLD (f_FRj)) + (0)));
27611 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (1)), opval);
27612 written |= (1 << 17);
27613 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27614 }
27615 {
27616 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27617 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (2)), opval);
27618 written |= (1 << 14);
27619 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27620 }
27621 {
27622 UHI opval = GET_H_FR_1 (((FLD (f_FRj)) + (0)));
27623 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (2)), opval);
27624 written |= (1 << 18);
27625 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27626 }
27627 {
27628 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27629 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_hi_set, ((FLD (f_FRk)) + (3)), opval);
27630 written |= (1 << 15);
27631 TRACE_RESULT (current_cpu, abuf, "fr_hi", 'x', opval);
27632 }
27633 {
27634 UHI opval = GET_H_FR_0 (((FLD (f_FRj)) + (0)));
27635 sim_queue_fn_hi_write (current_cpu, frvbf_h_fr_lo_set, ((FLD (f_FRk)) + (3)), opval);
27636 written |= (1 << 19);
27637 TRACE_RESULT (current_cpu, abuf, "fr_lo", 'x', opval);
27638 }
27639}
27640}
27641}
27642}
27643
27644 abuf->written = written;
27645 return vpc;
27646#undef FLD
27647}
27648
d03ea14f 27649/* mnop: mnop$pack */
b34f6357
DB
27650
27651static SEM_PC
d03ea14f 27652SEM_FN_NAME (frvbf,mnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
b34f6357 27653{
d03ea14f
DB
27654#define FLD(f) abuf->fields.fmt_empty.f
27655 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27656 int UNUSED written = 0;
27657 IADDR UNUSED pc = abuf->addr;
27658 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27659
27660((void) 0); /*nop*/
27661
27662 return vpc;
27663#undef FLD
27664}
27665
27666/* mclracc-0: mclracc$pack $ACC40Sk,$A0 */
27667
27668static SEM_PC
27669SEM_FN_NAME (frvbf,mclracc_0) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27670{
27671#define FLD(f) abuf->fields.sfmt_mdasaccs.f
27672 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27673 int UNUSED written = 0;
27674 IADDR UNUSED pc = abuf->addr;
27675 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27676
27677frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 0);
27678
27679 return vpc;
27680#undef FLD
27681}
27682
27683/* mclracc-1: mclracc$pack $ACC40Sk,$A1 */
27684
27685static SEM_PC
27686SEM_FN_NAME (frvbf,mclracc_1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27687{
27688#define FLD(f) abuf->fields.sfmt_mdasaccs.f
b34f6357
DB
27689 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27690 int UNUSED written = 0;
27691 IADDR UNUSED pc = abuf->addr;
27692 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27693
d03ea14f 27694frvbf_clear_accumulators (current_cpu, FLD (f_ACC40Sk), 1);
b34f6357
DB
27695
27696 return vpc;
27697#undef FLD
27698}
27699
27700/* mrdacc: mrdacc$pack $ACC40Si,$FRintk */
27701
27702static SEM_PC
27703SEM_FN_NAME (frvbf,mrdacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27704{
27705#define FLD(f) abuf->fields.sfmt_mcuti.f
27706 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27707 int UNUSED written = 0;
27708 IADDR UNUSED pc = abuf->addr;
27709 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27710
27711 {
27712 SI opval = GET_H_ACC40S (FLD (f_ACC40Si));
27713 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27714 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27715 }
27716
27717 return vpc;
27718#undef FLD
27719}
27720
27721/* mrdaccg: mrdaccg$pack $ACCGi,$FRintk */
27722
27723static SEM_PC
27724SEM_FN_NAME (frvbf,mrdaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27725{
27726#define FLD(f) abuf->fields.sfmt_mrdaccg.f
27727 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27728 int UNUSED written = 0;
27729 IADDR UNUSED pc = abuf->addr;
27730 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27731
27732 {
27733 SI opval = GET_H_ACCG (FLD (f_ACCGi));
27734 sim_queue_fn_si_write (current_cpu, frvbf_h_fr_int_set, FLD (f_FRk), opval);
27735 TRACE_RESULT (current_cpu, abuf, "fr_int", 'x', opval);
27736 }
27737
27738 return vpc;
27739#undef FLD
27740}
27741
27742/* mwtacc: mwtacc$pack $FRinti,$ACC40Sk */
27743
27744static SEM_PC
27745SEM_FN_NAME (frvbf,mwtacc) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27746{
27747#define FLD(f) abuf->fields.sfmt_cmmachs.f
27748 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27749 int UNUSED written = 0;
27750 IADDR UNUSED pc = abuf->addr;
27751 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27752
27753 {
27754 DI opval = ORDI (ANDDI (GET_H_ACC40S (FLD (f_ACC40Sk)), MAKEDI (0xffffffff, 0)), GET_H_FR_INT (FLD (f_FRi)));
27755 sim_queue_fn_di_write (current_cpu, frvbf_h_acc40S_set, FLD (f_ACC40Sk), opval);
27756 TRACE_RESULT (current_cpu, abuf, "acc40S", 'D', opval);
27757 }
27758
27759 return vpc;
27760#undef FLD
27761}
27762
27763/* mwtaccg: mwtaccg$pack $FRinti,$ACCGk */
27764
27765static SEM_PC
27766SEM_FN_NAME (frvbf,mwtaccg) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27767{
27768#define FLD(f) abuf->fields.sfmt_mwtaccg.f
27769 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27770 int UNUSED written = 0;
27771 IADDR UNUSED pc = abuf->addr;
27772 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27773
27774 {
27775 USI opval = GET_H_FR_INT (FLD (f_FRi));
27776 sim_queue_fn_si_write (current_cpu, frvbf_h_accg_set, FLD (f_ACCGk), opval);
27777 TRACE_RESULT (current_cpu, abuf, "accg", 'x', opval);
27778 }
27779
27780 return vpc;
27781#undef FLD
27782}
27783
27784/* mcop1: mcop1$pack $FRi,$FRj,$FRk */
27785
27786static SEM_PC
27787SEM_FN_NAME (frvbf,mcop1) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27788{
27789#define FLD(f) abuf->fields.fmt_empty.f
27790 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27791 int UNUSED written = 0;
27792 IADDR UNUSED pc = abuf->addr;
27793 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27794
27795frvbf_media_cop (current_cpu, 1);
27796
27797 return vpc;
27798#undef FLD
27799}
27800
27801/* mcop2: mcop2$pack $FRi,$FRj,$FRk */
27802
27803static SEM_PC
27804SEM_FN_NAME (frvbf,mcop2) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27805{
27806#define FLD(f) abuf->fields.fmt_empty.f
27807 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27808 int UNUSED written = 0;
27809 IADDR UNUSED pc = abuf->addr;
27810 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27811
27812frvbf_media_cop (current_cpu, 2);
27813
27814 return vpc;
27815#undef FLD
27816}
27817
27818/* fnop: fnop$pack */
27819
27820static SEM_PC
27821SEM_FN_NAME (frvbf,fnop) (SIM_CPU *current_cpu, SEM_ARG sem_arg)
27822{
27823#define FLD(f) abuf->fields.fmt_empty.f
27824 ARGBUF *abuf = SEM_ARGBUF (sem_arg);
27825 int UNUSED written = 0;
27826 IADDR UNUSED pc = abuf->addr;
27827 SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4);
27828
27829((void) 0); /*nop*/
27830
27831 return vpc;
27832#undef FLD
27833}
27834
27835/* Table of all semantic fns. */
27836
27837static const struct sem_fn_desc sem_fns[] = {
27838 { FRVBF_INSN_X_INVALID, SEM_FN_NAME (frvbf,x_invalid) },
27839 { FRVBF_INSN_X_AFTER, SEM_FN_NAME (frvbf,x_after) },
27840 { FRVBF_INSN_X_BEFORE, SEM_FN_NAME (frvbf,x_before) },
27841 { FRVBF_INSN_X_CTI_CHAIN, SEM_FN_NAME (frvbf,x_cti_chain) },
27842 { FRVBF_INSN_X_CHAIN, SEM_FN_NAME (frvbf,x_chain) },
27843 { FRVBF_INSN_X_BEGIN, SEM_FN_NAME (frvbf,x_begin) },
27844 { FRVBF_INSN_ADD, SEM_FN_NAME (frvbf,add) },
27845 { FRVBF_INSN_SUB, SEM_FN_NAME (frvbf,sub) },
27846 { FRVBF_INSN_AND, SEM_FN_NAME (frvbf,and) },
27847 { FRVBF_INSN_OR, SEM_FN_NAME (frvbf,or) },
27848 { FRVBF_INSN_XOR, SEM_FN_NAME (frvbf,xor) },
27849 { FRVBF_INSN_NOT, SEM_FN_NAME (frvbf,not) },
27850 { FRVBF_INSN_SDIV, SEM_FN_NAME (frvbf,sdiv) },
27851 { FRVBF_INSN_NSDIV, SEM_FN_NAME (frvbf,nsdiv) },
27852 { FRVBF_INSN_UDIV, SEM_FN_NAME (frvbf,udiv) },
27853 { FRVBF_INSN_NUDIV, SEM_FN_NAME (frvbf,nudiv) },
27854 { FRVBF_INSN_SMUL, SEM_FN_NAME (frvbf,smul) },
27855 { FRVBF_INSN_UMUL, SEM_FN_NAME (frvbf,umul) },
27856 { FRVBF_INSN_SLL, SEM_FN_NAME (frvbf,sll) },
27857 { FRVBF_INSN_SRL, SEM_FN_NAME (frvbf,srl) },
27858 { FRVBF_INSN_SRA, SEM_FN_NAME (frvbf,sra) },
27859 { FRVBF_INSN_SCAN, SEM_FN_NAME (frvbf,scan) },
27860 { FRVBF_INSN_CADD, SEM_FN_NAME (frvbf,cadd) },
27861 { FRVBF_INSN_CSUB, SEM_FN_NAME (frvbf,csub) },
27862 { FRVBF_INSN_CAND, SEM_FN_NAME (frvbf,cand) },
27863 { FRVBF_INSN_COR, SEM_FN_NAME (frvbf,cor) },
27864 { FRVBF_INSN_CXOR, SEM_FN_NAME (frvbf,cxor) },
27865 { FRVBF_INSN_CNOT, SEM_FN_NAME (frvbf,cnot) },
27866 { FRVBF_INSN_CSMUL, SEM_FN_NAME (frvbf,csmul) },
27867 { FRVBF_INSN_CSDIV, SEM_FN_NAME (frvbf,csdiv) },
27868 { FRVBF_INSN_CUDIV, SEM_FN_NAME (frvbf,cudiv) },
27869 { FRVBF_INSN_CSLL, SEM_FN_NAME (frvbf,csll) },
27870 { FRVBF_INSN_CSRL, SEM_FN_NAME (frvbf,csrl) },
27871 { FRVBF_INSN_CSRA, SEM_FN_NAME (frvbf,csra) },
27872 { FRVBF_INSN_CSCAN, SEM_FN_NAME (frvbf,cscan) },
27873 { FRVBF_INSN_ADDCC, SEM_FN_NAME (frvbf,addcc) },
27874 { FRVBF_INSN_SUBCC, SEM_FN_NAME (frvbf,subcc) },
27875 { FRVBF_INSN_ANDCC, SEM_FN_NAME (frvbf,andcc) },
27876 { FRVBF_INSN_ORCC, SEM_FN_NAME (frvbf,orcc) },
27877 { FRVBF_INSN_XORCC, SEM_FN_NAME (frvbf,xorcc) },
27878 { FRVBF_INSN_SLLCC, SEM_FN_NAME (frvbf,sllcc) },
27879 { FRVBF_INSN_SRLCC, SEM_FN_NAME (frvbf,srlcc) },
27880 { FRVBF_INSN_SRACC, SEM_FN_NAME (frvbf,sracc) },
27881 { FRVBF_INSN_SMULCC, SEM_FN_NAME (frvbf,smulcc) },
27882 { FRVBF_INSN_UMULCC, SEM_FN_NAME (frvbf,umulcc) },
27883 { FRVBF_INSN_CADDCC, SEM_FN_NAME (frvbf,caddcc) },
27884 { FRVBF_INSN_CSUBCC, SEM_FN_NAME (frvbf,csubcc) },
27885 { FRVBF_INSN_CSMULCC, SEM_FN_NAME (frvbf,csmulcc) },
27886 { FRVBF_INSN_CANDCC, SEM_FN_NAME (frvbf,candcc) },
27887 { FRVBF_INSN_CORCC, SEM_FN_NAME (frvbf,corcc) },
27888 { FRVBF_INSN_CXORCC, SEM_FN_NAME (frvbf,cxorcc) },
27889 { FRVBF_INSN_CSLLCC, SEM_FN_NAME (frvbf,csllcc) },
27890 { FRVBF_INSN_CSRLCC, SEM_FN_NAME (frvbf,csrlcc) },
27891 { FRVBF_INSN_CSRACC, SEM_FN_NAME (frvbf,csracc) },
27892 { FRVBF_INSN_ADDX, SEM_FN_NAME (frvbf,addx) },
27893 { FRVBF_INSN_SUBX, SEM_FN_NAME (frvbf,subx) },
27894 { FRVBF_INSN_ADDXCC, SEM_FN_NAME (frvbf,addxcc) },
27895 { FRVBF_INSN_SUBXCC, SEM_FN_NAME (frvbf,subxcc) },
27896 { FRVBF_INSN_ADDI, SEM_FN_NAME (frvbf,addi) },
27897 { FRVBF_INSN_SUBI, SEM_FN_NAME (frvbf,subi) },
27898 { FRVBF_INSN_ANDI, SEM_FN_NAME (frvbf,andi) },
27899 { FRVBF_INSN_ORI, SEM_FN_NAME (frvbf,ori) },
27900 { FRVBF_INSN_XORI, SEM_FN_NAME (frvbf,xori) },
27901 { FRVBF_INSN_SDIVI, SEM_FN_NAME (frvbf,sdivi) },
27902 { FRVBF_INSN_NSDIVI, SEM_FN_NAME (frvbf,nsdivi) },
27903 { FRVBF_INSN_UDIVI, SEM_FN_NAME (frvbf,udivi) },
27904 { FRVBF_INSN_NUDIVI, SEM_FN_NAME (frvbf,nudivi) },
27905 { FRVBF_INSN_SMULI, SEM_FN_NAME (frvbf,smuli) },
27906 { FRVBF_INSN_UMULI, SEM_FN_NAME (frvbf,umuli) },
27907 { FRVBF_INSN_SLLI, SEM_FN_NAME (frvbf,slli) },
27908 { FRVBF_INSN_SRLI, SEM_FN_NAME (frvbf,srli) },
27909 { FRVBF_INSN_SRAI, SEM_FN_NAME (frvbf,srai) },
27910 { FRVBF_INSN_SCANI, SEM_FN_NAME (frvbf,scani) },
27911 { FRVBF_INSN_ADDICC, SEM_FN_NAME (frvbf,addicc) },
27912 { FRVBF_INSN_SUBICC, SEM_FN_NAME (frvbf,subicc) },
27913 { FRVBF_INSN_ANDICC, SEM_FN_NAME (frvbf,andicc) },
27914 { FRVBF_INSN_ORICC, SEM_FN_NAME (frvbf,oricc) },
27915 { FRVBF_INSN_XORICC, SEM_FN_NAME (frvbf,xoricc) },
27916 { FRVBF_INSN_SMULICC, SEM_FN_NAME (frvbf,smulicc) },
27917 { FRVBF_INSN_UMULICC, SEM_FN_NAME (frvbf,umulicc) },
27918 { FRVBF_INSN_SLLICC, SEM_FN_NAME (frvbf,sllicc) },
27919 { FRVBF_INSN_SRLICC, SEM_FN_NAME (frvbf,srlicc) },
27920 { FRVBF_INSN_SRAICC, SEM_FN_NAME (frvbf,sraicc) },
27921 { FRVBF_INSN_ADDXI, SEM_FN_NAME (frvbf,addxi) },
27922 { FRVBF_INSN_SUBXI, SEM_FN_NAME (frvbf,subxi) },
27923 { FRVBF_INSN_ADDXICC, SEM_FN_NAME (frvbf,addxicc) },
27924 { FRVBF_INSN_SUBXICC, SEM_FN_NAME (frvbf,subxicc) },
27925 { FRVBF_INSN_CMPB, SEM_FN_NAME (frvbf,cmpb) },
27926 { FRVBF_INSN_CMPBA, SEM_FN_NAME (frvbf,cmpba) },
27927 { FRVBF_INSN_SETLO, SEM_FN_NAME (frvbf,setlo) },
27928 { FRVBF_INSN_SETHI, SEM_FN_NAME (frvbf,sethi) },
27929 { FRVBF_INSN_SETLOS, SEM_FN_NAME (frvbf,setlos) },
27930 { FRVBF_INSN_LDSB, SEM_FN_NAME (frvbf,ldsb) },
27931 { FRVBF_INSN_LDUB, SEM_FN_NAME (frvbf,ldub) },
27932 { FRVBF_INSN_LDSH, SEM_FN_NAME (frvbf,ldsh) },
27933 { FRVBF_INSN_LDUH, SEM_FN_NAME (frvbf,lduh) },
27934 { FRVBF_INSN_LD, SEM_FN_NAME (frvbf,ld) },
27935 { FRVBF_INSN_LDBF, SEM_FN_NAME (frvbf,ldbf) },
27936 { FRVBF_INSN_LDHF, SEM_FN_NAME (frvbf,ldhf) },
27937 { FRVBF_INSN_LDF, SEM_FN_NAME (frvbf,ldf) },
27938 { FRVBF_INSN_LDC, SEM_FN_NAME (frvbf,ldc) },
27939 { FRVBF_INSN_NLDSB, SEM_FN_NAME (frvbf,nldsb) },
27940 { FRVBF_INSN_NLDUB, SEM_FN_NAME (frvbf,nldub) },
27941 { FRVBF_INSN_NLDSH, SEM_FN_NAME (frvbf,nldsh) },
27942 { FRVBF_INSN_NLDUH, SEM_FN_NAME (frvbf,nlduh) },
27943 { FRVBF_INSN_NLD, SEM_FN_NAME (frvbf,nld) },
27944 { FRVBF_INSN_NLDBF, SEM_FN_NAME (frvbf,nldbf) },
27945 { FRVBF_INSN_NLDHF, SEM_FN_NAME (frvbf,nldhf) },
27946 { FRVBF_INSN_NLDF, SEM_FN_NAME (frvbf,nldf) },
27947 { FRVBF_INSN_LDD, SEM_FN_NAME (frvbf,ldd) },
27948 { FRVBF_INSN_LDDF, SEM_FN_NAME (frvbf,lddf) },
27949 { FRVBF_INSN_LDDC, SEM_FN_NAME (frvbf,lddc) },
27950 { FRVBF_INSN_NLDD, SEM_FN_NAME (frvbf,nldd) },
27951 { FRVBF_INSN_NLDDF, SEM_FN_NAME (frvbf,nlddf) },
27952 { FRVBF_INSN_LDQ, SEM_FN_NAME (frvbf,ldq) },
27953 { FRVBF_INSN_LDQF, SEM_FN_NAME (frvbf,ldqf) },
27954 { FRVBF_INSN_LDQC, SEM_FN_NAME (frvbf,ldqc) },
27955 { FRVBF_INSN_NLDQ, SEM_FN_NAME (frvbf,nldq) },
27956 { FRVBF_INSN_NLDQF, SEM_FN_NAME (frvbf,nldqf) },
27957 { FRVBF_INSN_LDSBU, SEM_FN_NAME (frvbf,ldsbu) },
27958 { FRVBF_INSN_LDUBU, SEM_FN_NAME (frvbf,ldubu) },
27959 { FRVBF_INSN_LDSHU, SEM_FN_NAME (frvbf,ldshu) },
27960 { FRVBF_INSN_LDUHU, SEM_FN_NAME (frvbf,lduhu) },
27961 { FRVBF_INSN_LDU, SEM_FN_NAME (frvbf,ldu) },
27962 { FRVBF_INSN_NLDSBU, SEM_FN_NAME (frvbf,nldsbu) },
27963 { FRVBF_INSN_NLDUBU, SEM_FN_NAME (frvbf,nldubu) },
27964 { FRVBF_INSN_NLDSHU, SEM_FN_NAME (frvbf,nldshu) },
27965 { FRVBF_INSN_NLDUHU, SEM_FN_NAME (frvbf,nlduhu) },
27966 { FRVBF_INSN_NLDU, SEM_FN_NAME (frvbf,nldu) },
27967 { FRVBF_INSN_LDBFU, SEM_FN_NAME (frvbf,ldbfu) },
27968 { FRVBF_INSN_LDHFU, SEM_FN_NAME (frvbf,ldhfu) },
27969 { FRVBF_INSN_LDFU, SEM_FN_NAME (frvbf,ldfu) },
27970 { FRVBF_INSN_LDCU, SEM_FN_NAME (frvbf,ldcu) },
27971 { FRVBF_INSN_NLDBFU, SEM_FN_NAME (frvbf,nldbfu) },
27972 { FRVBF_INSN_NLDHFU, SEM_FN_NAME (frvbf,nldhfu) },
27973 { FRVBF_INSN_NLDFU, SEM_FN_NAME (frvbf,nldfu) },
27974 { FRVBF_INSN_LDDU, SEM_FN_NAME (frvbf,lddu) },
27975 { FRVBF_INSN_NLDDU, SEM_FN_NAME (frvbf,nlddu) },
27976 { FRVBF_INSN_LDDFU, SEM_FN_NAME (frvbf,lddfu) },
27977 { FRVBF_INSN_LDDCU, SEM_FN_NAME (frvbf,lddcu) },
27978 { FRVBF_INSN_NLDDFU, SEM_FN_NAME (frvbf,nlddfu) },
27979 { FRVBF_INSN_LDQU, SEM_FN_NAME (frvbf,ldqu) },
27980 { FRVBF_INSN_NLDQU, SEM_FN_NAME (frvbf,nldqu) },
27981 { FRVBF_INSN_LDQFU, SEM_FN_NAME (frvbf,ldqfu) },
27982 { FRVBF_INSN_LDQCU, SEM_FN_NAME (frvbf,ldqcu) },
27983 { FRVBF_INSN_NLDQFU, SEM_FN_NAME (frvbf,nldqfu) },
27984 { FRVBF_INSN_LDSBI, SEM_FN_NAME (frvbf,ldsbi) },
27985 { FRVBF_INSN_LDSHI, SEM_FN_NAME (frvbf,ldshi) },
27986 { FRVBF_INSN_LDI, SEM_FN_NAME (frvbf,ldi) },
27987 { FRVBF_INSN_LDUBI, SEM_FN_NAME (frvbf,ldubi) },
27988 { FRVBF_INSN_LDUHI, SEM_FN_NAME (frvbf,lduhi) },
27989 { FRVBF_INSN_LDBFI, SEM_FN_NAME (frvbf,ldbfi) },
27990 { FRVBF_INSN_LDHFI, SEM_FN_NAME (frvbf,ldhfi) },
27991 { FRVBF_INSN_LDFI, SEM_FN_NAME (frvbf,ldfi) },
27992 { FRVBF_INSN_NLDSBI, SEM_FN_NAME (frvbf,nldsbi) },
27993 { FRVBF_INSN_NLDUBI, SEM_FN_NAME (frvbf,nldubi) },
27994 { FRVBF_INSN_NLDSHI, SEM_FN_NAME (frvbf,nldshi) },
27995 { FRVBF_INSN_NLDUHI, SEM_FN_NAME (frvbf,nlduhi) },
27996 { FRVBF_INSN_NLDI, SEM_FN_NAME (frvbf,nldi) },
27997 { FRVBF_INSN_NLDBFI, SEM_FN_NAME (frvbf,nldbfi) },
27998 { FRVBF_INSN_NLDHFI, SEM_FN_NAME (frvbf,nldhfi) },
27999 { FRVBF_INSN_NLDFI, SEM_FN_NAME (frvbf,nldfi) },
28000 { FRVBF_INSN_LDDI, SEM_FN_NAME (frvbf,lddi) },
28001 { FRVBF_INSN_LDDFI, SEM_FN_NAME (frvbf,lddfi) },
28002 { FRVBF_INSN_NLDDI, SEM_FN_NAME (frvbf,nlddi) },
28003 { FRVBF_INSN_NLDDFI, SEM_FN_NAME (frvbf,nlddfi) },
28004 { FRVBF_INSN_LDQI, SEM_FN_NAME (frvbf,ldqi) },
28005 { FRVBF_INSN_LDQFI, SEM_FN_NAME (frvbf,ldqfi) },
28006 { FRVBF_INSN_NLDQI, SEM_FN_NAME (frvbf,nldqi) },
28007 { FRVBF_INSN_NLDQFI, SEM_FN_NAME (frvbf,nldqfi) },
28008 { FRVBF_INSN_STB, SEM_FN_NAME (frvbf,stb) },
28009 { FRVBF_INSN_STH, SEM_FN_NAME (frvbf,sth) },
28010 { FRVBF_INSN_ST, SEM_FN_NAME (frvbf,st) },
28011 { FRVBF_INSN_STBF, SEM_FN_NAME (frvbf,stbf) },
28012 { FRVBF_INSN_STHF, SEM_FN_NAME (frvbf,sthf) },
28013 { FRVBF_INSN_STF, SEM_FN_NAME (frvbf,stf) },
28014 { FRVBF_INSN_STC, SEM_FN_NAME (frvbf,stc) },
28015 { FRVBF_INSN_RSTB, SEM_FN_NAME (frvbf,rstb) },
28016 { FRVBF_INSN_RSTH, SEM_FN_NAME (frvbf,rsth) },
28017 { FRVBF_INSN_RST, SEM_FN_NAME (frvbf,rst) },
28018 { FRVBF_INSN_RSTBF, SEM_FN_NAME (frvbf,rstbf) },
28019 { FRVBF_INSN_RSTHF, SEM_FN_NAME (frvbf,rsthf) },
28020 { FRVBF_INSN_RSTF, SEM_FN_NAME (frvbf,rstf) },
28021 { FRVBF_INSN_STD, SEM_FN_NAME (frvbf,std) },
28022 { FRVBF_INSN_STDF, SEM_FN_NAME (frvbf,stdf) },
28023 { FRVBF_INSN_STDC, SEM_FN_NAME (frvbf,stdc) },
28024 { FRVBF_INSN_RSTD, SEM_FN_NAME (frvbf,rstd) },
28025 { FRVBF_INSN_RSTDF, SEM_FN_NAME (frvbf,rstdf) },
28026 { FRVBF_INSN_STQ, SEM_FN_NAME (frvbf,stq) },
28027 { FRVBF_INSN_STQF, SEM_FN_NAME (frvbf,stqf) },
28028 { FRVBF_INSN_STQC, SEM_FN_NAME (frvbf,stqc) },
28029 { FRVBF_INSN_RSTQ, SEM_FN_NAME (frvbf,rstq) },
28030 { FRVBF_INSN_RSTQF, SEM_FN_NAME (frvbf,rstqf) },
28031 { FRVBF_INSN_STBU, SEM_FN_NAME (frvbf,stbu) },
28032 { FRVBF_INSN_STHU, SEM_FN_NAME (frvbf,sthu) },
28033 { FRVBF_INSN_STU, SEM_FN_NAME (frvbf,stu) },
28034 { FRVBF_INSN_STBFU, SEM_FN_NAME (frvbf,stbfu) },
28035 { FRVBF_INSN_STHFU, SEM_FN_NAME (frvbf,sthfu) },
28036 { FRVBF_INSN_STFU, SEM_FN_NAME (frvbf,stfu) },
28037 { FRVBF_INSN_STCU, SEM_FN_NAME (frvbf,stcu) },
28038 { FRVBF_INSN_STDU, SEM_FN_NAME (frvbf,stdu) },
28039 { FRVBF_INSN_STDFU, SEM_FN_NAME (frvbf,stdfu) },
28040 { FRVBF_INSN_STDCU, SEM_FN_NAME (frvbf,stdcu) },
28041 { FRVBF_INSN_STQU, SEM_FN_NAME (frvbf,stqu) },
28042 { FRVBF_INSN_STQFU, SEM_FN_NAME (frvbf,stqfu) },
28043 { FRVBF_INSN_STQCU, SEM_FN_NAME (frvbf,stqcu) },
28044 { FRVBF_INSN_CLDSB, SEM_FN_NAME (frvbf,cldsb) },
28045 { FRVBF_INSN_CLDUB, SEM_FN_NAME (frvbf,cldub) },
28046 { FRVBF_INSN_CLDSH, SEM_FN_NAME (frvbf,cldsh) },
28047 { FRVBF_INSN_CLDUH, SEM_FN_NAME (frvbf,clduh) },
28048 { FRVBF_INSN_CLD, SEM_FN_NAME (frvbf,cld) },
28049 { FRVBF_INSN_CLDBF, SEM_FN_NAME (frvbf,cldbf) },
28050 { FRVBF_INSN_CLDHF, SEM_FN_NAME (frvbf,cldhf) },
28051 { FRVBF_INSN_CLDF, SEM_FN_NAME (frvbf,cldf) },
28052 { FRVBF_INSN_CLDD, SEM_FN_NAME (frvbf,cldd) },
28053 { FRVBF_INSN_CLDDF, SEM_FN_NAME (frvbf,clddf) },
28054 { FRVBF_INSN_CLDQ, SEM_FN_NAME (frvbf,cldq) },
28055 { FRVBF_INSN_CLDSBU, SEM_FN_NAME (frvbf,cldsbu) },
28056 { FRVBF_INSN_CLDUBU, SEM_FN_NAME (frvbf,cldubu) },
28057 { FRVBF_INSN_CLDSHU, SEM_FN_NAME (frvbf,cldshu) },
28058 { FRVBF_INSN_CLDUHU, SEM_FN_NAME (frvbf,clduhu) },
28059 { FRVBF_INSN_CLDU, SEM_FN_NAME (frvbf,cldu) },
28060 { FRVBF_INSN_CLDBFU, SEM_FN_NAME (frvbf,cldbfu) },
28061 { FRVBF_INSN_CLDHFU, SEM_FN_NAME (frvbf,cldhfu) },
28062 { FRVBF_INSN_CLDFU, SEM_FN_NAME (frvbf,cldfu) },
28063 { FRVBF_INSN_CLDDU, SEM_FN_NAME (frvbf,clddu) },
28064 { FRVBF_INSN_CLDDFU, SEM_FN_NAME (frvbf,clddfu) },
28065 { FRVBF_INSN_CLDQU, SEM_FN_NAME (frvbf,cldqu) },
28066 { FRVBF_INSN_CSTB, SEM_FN_NAME (frvbf,cstb) },
28067 { FRVBF_INSN_CSTH, SEM_FN_NAME (frvbf,csth) },
28068 { FRVBF_INSN_CST, SEM_FN_NAME (frvbf,cst) },
28069 { FRVBF_INSN_CSTBF, SEM_FN_NAME (frvbf,cstbf) },
28070 { FRVBF_INSN_CSTHF, SEM_FN_NAME (frvbf,csthf) },
28071 { FRVBF_INSN_CSTF, SEM_FN_NAME (frvbf,cstf) },
28072 { FRVBF_INSN_CSTD, SEM_FN_NAME (frvbf,cstd) },
28073 { FRVBF_INSN_CSTDF, SEM_FN_NAME (frvbf,cstdf) },
28074 { FRVBF_INSN_CSTQ, SEM_FN_NAME (frvbf,cstq) },
28075 { FRVBF_INSN_CSTBU, SEM_FN_NAME (frvbf,cstbu) },
28076 { FRVBF_INSN_CSTHU, SEM_FN_NAME (frvbf,csthu) },
28077 { FRVBF_INSN_CSTU, SEM_FN_NAME (frvbf,cstu) },
28078 { FRVBF_INSN_CSTBFU, SEM_FN_NAME (frvbf,cstbfu) },
28079 { FRVBF_INSN_CSTHFU, SEM_FN_NAME (frvbf,csthfu) },
28080 { FRVBF_INSN_CSTFU, SEM_FN_NAME (frvbf,cstfu) },
28081 { FRVBF_INSN_CSTDU, SEM_FN_NAME (frvbf,cstdu) },
28082 { FRVBF_INSN_CSTDFU, SEM_FN_NAME (frvbf,cstdfu) },
28083 { FRVBF_INSN_STBI, SEM_FN_NAME (frvbf,stbi) },
28084 { FRVBF_INSN_STHI, SEM_FN_NAME (frvbf,sthi) },
28085 { FRVBF_INSN_STI, SEM_FN_NAME (frvbf,sti) },
28086 { FRVBF_INSN_STBFI, SEM_FN_NAME (frvbf,stbfi) },
28087 { FRVBF_INSN_STHFI, SEM_FN_NAME (frvbf,sthfi) },
28088 { FRVBF_INSN_STFI, SEM_FN_NAME (frvbf,stfi) },
28089 { FRVBF_INSN_STDI, SEM_FN_NAME (frvbf,stdi) },
28090 { FRVBF_INSN_STDFI, SEM_FN_NAME (frvbf,stdfi) },
28091 { FRVBF_INSN_STQI, SEM_FN_NAME (frvbf,stqi) },
28092 { FRVBF_INSN_STQFI, SEM_FN_NAME (frvbf,stqfi) },
28093 { FRVBF_INSN_SWAP, SEM_FN_NAME (frvbf,swap) },
28094 { FRVBF_INSN_SWAPI, SEM_FN_NAME (frvbf,swapi) },
28095 { FRVBF_INSN_CSWAP, SEM_FN_NAME (frvbf,cswap) },
28096 { FRVBF_INSN_MOVGF, SEM_FN_NAME (frvbf,movgf) },
28097 { FRVBF_INSN_MOVFG, SEM_FN_NAME (frvbf,movfg) },
28098 { FRVBF_INSN_MOVGFD, SEM_FN_NAME (frvbf,movgfd) },
28099 { FRVBF_INSN_MOVFGD, SEM_FN_NAME (frvbf,movfgd) },
28100 { FRVBF_INSN_MOVGFQ, SEM_FN_NAME (frvbf,movgfq) },
28101 { FRVBF_INSN_MOVFGQ, SEM_FN_NAME (frvbf,movfgq) },
28102 { FRVBF_INSN_CMOVGF, SEM_FN_NAME (frvbf,cmovgf) },
28103 { FRVBF_INSN_CMOVFG, SEM_FN_NAME (frvbf,cmovfg) },
28104 { FRVBF_INSN_CMOVGFD, SEM_FN_NAME (frvbf,cmovgfd) },
28105 { FRVBF_INSN_CMOVFGD, SEM_FN_NAME (frvbf,cmovfgd) },
28106 { FRVBF_INSN_MOVGS, SEM_FN_NAME (frvbf,movgs) },
28107 { FRVBF_INSN_MOVSG, SEM_FN_NAME (frvbf,movsg) },
28108 { FRVBF_INSN_BRA, SEM_FN_NAME (frvbf,bra) },
28109 { FRVBF_INSN_BNO, SEM_FN_NAME (frvbf,bno) },
28110 { FRVBF_INSN_BEQ, SEM_FN_NAME (frvbf,beq) },
28111 { FRVBF_INSN_BNE, SEM_FN_NAME (frvbf,bne) },
28112 { FRVBF_INSN_BLE, SEM_FN_NAME (frvbf,ble) },
28113 { FRVBF_INSN_BGT, SEM_FN_NAME (frvbf,bgt) },
28114 { FRVBF_INSN_BLT, SEM_FN_NAME (frvbf,blt) },
28115 { FRVBF_INSN_BGE, SEM_FN_NAME (frvbf,bge) },
28116 { FRVBF_INSN_BLS, SEM_FN_NAME (frvbf,bls) },
28117 { FRVBF_INSN_BHI, SEM_FN_NAME (frvbf,bhi) },
28118 { FRVBF_INSN_BC, SEM_FN_NAME (frvbf,bc) },
28119 { FRVBF_INSN_BNC, SEM_FN_NAME (frvbf,bnc) },
28120 { FRVBF_INSN_BN, SEM_FN_NAME (frvbf,bn) },
28121 { FRVBF_INSN_BP, SEM_FN_NAME (frvbf,bp) },
28122 { FRVBF_INSN_BV, SEM_FN_NAME (frvbf,bv) },
28123 { FRVBF_INSN_BNV, SEM_FN_NAME (frvbf,bnv) },
28124 { FRVBF_INSN_FBRA, SEM_FN_NAME (frvbf,fbra) },
28125 { FRVBF_INSN_FBNO, SEM_FN_NAME (frvbf,fbno) },
28126 { FRVBF_INSN_FBNE, SEM_FN_NAME (frvbf,fbne) },
28127 { FRVBF_INSN_FBEQ, SEM_FN_NAME (frvbf,fbeq) },
28128 { FRVBF_INSN_FBLG, SEM_FN_NAME (frvbf,fblg) },
28129 { FRVBF_INSN_FBUE, SEM_FN_NAME (frvbf,fbue) },
28130 { FRVBF_INSN_FBUL, SEM_FN_NAME (frvbf,fbul) },
28131 { FRVBF_INSN_FBGE, SEM_FN_NAME (frvbf,fbge) },
28132 { FRVBF_INSN_FBLT, SEM_FN_NAME (frvbf,fblt) },
28133 { FRVBF_INSN_FBUGE, SEM_FN_NAME (frvbf,fbuge) },
28134 { FRVBF_INSN_FBUG, SEM_FN_NAME (frvbf,fbug) },
28135 { FRVBF_INSN_FBLE, SEM_FN_NAME (frvbf,fble) },
28136 { FRVBF_INSN_FBGT, SEM_FN_NAME (frvbf,fbgt) },
28137 { FRVBF_INSN_FBULE, SEM_FN_NAME (frvbf,fbule) },
28138 { FRVBF_INSN_FBU, SEM_FN_NAME (frvbf,fbu) },
28139 { FRVBF_INSN_FBO, SEM_FN_NAME (frvbf,fbo) },
28140 { FRVBF_INSN_BCTRLR, SEM_FN_NAME (frvbf,bctrlr) },
28141 { FRVBF_INSN_BRALR, SEM_FN_NAME (frvbf,bralr) },
28142 { FRVBF_INSN_BNOLR, SEM_FN_NAME (frvbf,bnolr) },
28143 { FRVBF_INSN_BEQLR, SEM_FN_NAME (frvbf,beqlr) },
28144 { FRVBF_INSN_BNELR, SEM_FN_NAME (frvbf,bnelr) },
28145 { FRVBF_INSN_BLELR, SEM_FN_NAME (frvbf,blelr) },
28146 { FRVBF_INSN_BGTLR, SEM_FN_NAME (frvbf,bgtlr) },
28147 { FRVBF_INSN_BLTLR, SEM_FN_NAME (frvbf,bltlr) },
28148 { FRVBF_INSN_BGELR, SEM_FN_NAME (frvbf,bgelr) },
28149 { FRVBF_INSN_BLSLR, SEM_FN_NAME (frvbf,blslr) },
28150 { FRVBF_INSN_BHILR, SEM_FN_NAME (frvbf,bhilr) },
28151 { FRVBF_INSN_BCLR, SEM_FN_NAME (frvbf,bclr) },
28152 { FRVBF_INSN_BNCLR, SEM_FN_NAME (frvbf,bnclr) },
28153 { FRVBF_INSN_BNLR, SEM_FN_NAME (frvbf,bnlr) },
28154 { FRVBF_INSN_BPLR, SEM_FN_NAME (frvbf,bplr) },
28155 { FRVBF_INSN_BVLR, SEM_FN_NAME (frvbf,bvlr) },
28156 { FRVBF_INSN_BNVLR, SEM_FN_NAME (frvbf,bnvlr) },
28157 { FRVBF_INSN_FBRALR, SEM_FN_NAME (frvbf,fbralr) },
28158 { FRVBF_INSN_FBNOLR, SEM_FN_NAME (frvbf,fbnolr) },
28159 { FRVBF_INSN_FBEQLR, SEM_FN_NAME (frvbf,fbeqlr) },
28160 { FRVBF_INSN_FBNELR, SEM_FN_NAME (frvbf,fbnelr) },
28161 { FRVBF_INSN_FBLGLR, SEM_FN_NAME (frvbf,fblglr) },
28162 { FRVBF_INSN_FBUELR, SEM_FN_NAME (frvbf,fbuelr) },
28163 { FRVBF_INSN_FBULLR, SEM_FN_NAME (frvbf,fbullr) },
28164 { FRVBF_INSN_FBGELR, SEM_FN_NAME (frvbf,fbgelr) },
28165 { FRVBF_INSN_FBLTLR, SEM_FN_NAME (frvbf,fbltlr) },
28166 { FRVBF_INSN_FBUGELR, SEM_FN_NAME (frvbf,fbugelr) },
28167 { FRVBF_INSN_FBUGLR, SEM_FN_NAME (frvbf,fbuglr) },
28168 { FRVBF_INSN_FBLELR, SEM_FN_NAME (frvbf,fblelr) },
28169 { FRVBF_INSN_FBGTLR, SEM_FN_NAME (frvbf,fbgtlr) },
28170 { FRVBF_INSN_FBULELR, SEM_FN_NAME (frvbf,fbulelr) },
28171 { FRVBF_INSN_FBULR, SEM_FN_NAME (frvbf,fbulr) },
28172 { FRVBF_INSN_FBOLR, SEM_FN_NAME (frvbf,fbolr) },
28173 { FRVBF_INSN_BCRALR, SEM_FN_NAME (frvbf,bcralr) },
28174 { FRVBF_INSN_BCNOLR, SEM_FN_NAME (frvbf,bcnolr) },
28175 { FRVBF_INSN_BCEQLR, SEM_FN_NAME (frvbf,bceqlr) },
28176 { FRVBF_INSN_BCNELR, SEM_FN_NAME (frvbf,bcnelr) },
28177 { FRVBF_INSN_BCLELR, SEM_FN_NAME (frvbf,bclelr) },
28178 { FRVBF_INSN_BCGTLR, SEM_FN_NAME (frvbf,bcgtlr) },
28179 { FRVBF_INSN_BCLTLR, SEM_FN_NAME (frvbf,bcltlr) },
28180 { FRVBF_INSN_BCGELR, SEM_FN_NAME (frvbf,bcgelr) },
28181 { FRVBF_INSN_BCLSLR, SEM_FN_NAME (frvbf,bclslr) },
28182 { FRVBF_INSN_BCHILR, SEM_FN_NAME (frvbf,bchilr) },
28183 { FRVBF_INSN_BCCLR, SEM_FN_NAME (frvbf,bcclr) },
28184 { FRVBF_INSN_BCNCLR, SEM_FN_NAME (frvbf,bcnclr) },
28185 { FRVBF_INSN_BCNLR, SEM_FN_NAME (frvbf,bcnlr) },
28186 { FRVBF_INSN_BCPLR, SEM_FN_NAME (frvbf,bcplr) },
28187 { FRVBF_INSN_BCVLR, SEM_FN_NAME (frvbf,bcvlr) },
28188 { FRVBF_INSN_BCNVLR, SEM_FN_NAME (frvbf,bcnvlr) },
28189 { FRVBF_INSN_FCBRALR, SEM_FN_NAME (frvbf,fcbralr) },
28190 { FRVBF_INSN_FCBNOLR, SEM_FN_NAME (frvbf,fcbnolr) },
28191 { FRVBF_INSN_FCBEQLR, SEM_FN_NAME (frvbf,fcbeqlr) },
28192 { FRVBF_INSN_FCBNELR, SEM_FN_NAME (frvbf,fcbnelr) },
28193 { FRVBF_INSN_FCBLGLR, SEM_FN_NAME (frvbf,fcblglr) },
28194 { FRVBF_INSN_FCBUELR, SEM_FN_NAME (frvbf,fcbuelr) },
28195 { FRVBF_INSN_FCBULLR, SEM_FN_NAME (frvbf,fcbullr) },
28196 { FRVBF_INSN_FCBGELR, SEM_FN_NAME (frvbf,fcbgelr) },
28197 { FRVBF_INSN_FCBLTLR, SEM_FN_NAME (frvbf,fcbltlr) },
28198 { FRVBF_INSN_FCBUGELR, SEM_FN_NAME (frvbf,fcbugelr) },
28199 { FRVBF_INSN_FCBUGLR, SEM_FN_NAME (frvbf,fcbuglr) },
28200 { FRVBF_INSN_FCBLELR, SEM_FN_NAME (frvbf,fcblelr) },
28201 { FRVBF_INSN_FCBGTLR, SEM_FN_NAME (frvbf,fcbgtlr) },
28202 { FRVBF_INSN_FCBULELR, SEM_FN_NAME (frvbf,fcbulelr) },
28203 { FRVBF_INSN_FCBULR, SEM_FN_NAME (frvbf,fcbulr) },
28204 { FRVBF_INSN_FCBOLR, SEM_FN_NAME (frvbf,fcbolr) },
28205 { FRVBF_INSN_JMPL, SEM_FN_NAME (frvbf,jmpl) },
28206 { FRVBF_INSN_CALLL, SEM_FN_NAME (frvbf,calll) },
28207 { FRVBF_INSN_JMPIL, SEM_FN_NAME (frvbf,jmpil) },
28208 { FRVBF_INSN_CALLIL, SEM_FN_NAME (frvbf,callil) },
28209 { FRVBF_INSN_CALL, SEM_FN_NAME (frvbf,call) },
28210 { FRVBF_INSN_RETT, SEM_FN_NAME (frvbf,rett) },
28211 { FRVBF_INSN_REI, SEM_FN_NAME (frvbf,rei) },
28212 { FRVBF_INSN_TRA, SEM_FN_NAME (frvbf,tra) },
28213 { FRVBF_INSN_TNO, SEM_FN_NAME (frvbf,tno) },
28214 { FRVBF_INSN_TEQ, SEM_FN_NAME (frvbf,teq) },
28215 { FRVBF_INSN_TNE, SEM_FN_NAME (frvbf,tne) },
28216 { FRVBF_INSN_TLE, SEM_FN_NAME (frvbf,tle) },
28217 { FRVBF_INSN_TGT, SEM_FN_NAME (frvbf,tgt) },
28218 { FRVBF_INSN_TLT, SEM_FN_NAME (frvbf,tlt) },
28219 { FRVBF_INSN_TGE, SEM_FN_NAME (frvbf,tge) },
28220 { FRVBF_INSN_TLS, SEM_FN_NAME (frvbf,tls) },
28221 { FRVBF_INSN_THI, SEM_FN_NAME (frvbf,thi) },
28222 { FRVBF_INSN_TC, SEM_FN_NAME (frvbf,tc) },
28223 { FRVBF_INSN_TNC, SEM_FN_NAME (frvbf,tnc) },
28224 { FRVBF_INSN_TN, SEM_FN_NAME (frvbf,tn) },
28225 { FRVBF_INSN_TP, SEM_FN_NAME (frvbf,tp) },
28226 { FRVBF_INSN_TV, SEM_FN_NAME (frvbf,tv) },
28227 { FRVBF_INSN_TNV, SEM_FN_NAME (frvbf,tnv) },
28228 { FRVBF_INSN_FTRA, SEM_FN_NAME (frvbf,ftra) },
28229 { FRVBF_INSN_FTNO, SEM_FN_NAME (frvbf,ftno) },
28230 { FRVBF_INSN_FTNE, SEM_FN_NAME (frvbf,ftne) },
28231 { FRVBF_INSN_FTEQ, SEM_FN_NAME (frvbf,fteq) },
28232 { FRVBF_INSN_FTLG, SEM_FN_NAME (frvbf,ftlg) },
28233 { FRVBF_INSN_FTUE, SEM_FN_NAME (frvbf,ftue) },
28234 { FRVBF_INSN_FTUL, SEM_FN_NAME (frvbf,ftul) },
28235 { FRVBF_INSN_FTGE, SEM_FN_NAME (frvbf,ftge) },
28236 { FRVBF_INSN_FTLT, SEM_FN_NAME (frvbf,ftlt) },
28237 { FRVBF_INSN_FTUGE, SEM_FN_NAME (frvbf,ftuge) },
28238 { FRVBF_INSN_FTUG, SEM_FN_NAME (frvbf,ftug) },
28239 { FRVBF_INSN_FTLE, SEM_FN_NAME (frvbf,ftle) },
28240 { FRVBF_INSN_FTGT, SEM_FN_NAME (frvbf,ftgt) },
28241 { FRVBF_INSN_FTULE, SEM_FN_NAME (frvbf,ftule) },
28242 { FRVBF_INSN_FTU, SEM_FN_NAME (frvbf,ftu) },
28243 { FRVBF_INSN_FTO, SEM_FN_NAME (frvbf,fto) },
28244 { FRVBF_INSN_TIRA, SEM_FN_NAME (frvbf,tira) },
28245 { FRVBF_INSN_TINO, SEM_FN_NAME (frvbf,tino) },
28246 { FRVBF_INSN_TIEQ, SEM_FN_NAME (frvbf,tieq) },
28247 { FRVBF_INSN_TINE, SEM_FN_NAME (frvbf,tine) },
28248 { FRVBF_INSN_TILE, SEM_FN_NAME (frvbf,tile) },
28249 { FRVBF_INSN_TIGT, SEM_FN_NAME (frvbf,tigt) },
28250 { FRVBF_INSN_TILT, SEM_FN_NAME (frvbf,tilt) },
28251 { FRVBF_INSN_TIGE, SEM_FN_NAME (frvbf,tige) },
28252 { FRVBF_INSN_TILS, SEM_FN_NAME (frvbf,tils) },
28253 { FRVBF_INSN_TIHI, SEM_FN_NAME (frvbf,tihi) },
28254 { FRVBF_INSN_TIC, SEM_FN_NAME (frvbf,tic) },
28255 { FRVBF_INSN_TINC, SEM_FN_NAME (frvbf,tinc) },
28256 { FRVBF_INSN_TIN, SEM_FN_NAME (frvbf,tin) },
28257 { FRVBF_INSN_TIP, SEM_FN_NAME (frvbf,tip) },
28258 { FRVBF_INSN_TIV, SEM_FN_NAME (frvbf,tiv) },
28259 { FRVBF_INSN_TINV, SEM_FN_NAME (frvbf,tinv) },
28260 { FRVBF_INSN_FTIRA, SEM_FN_NAME (frvbf,ftira) },
28261 { FRVBF_INSN_FTINO, SEM_FN_NAME (frvbf,ftino) },
28262 { FRVBF_INSN_FTINE, SEM_FN_NAME (frvbf,ftine) },
28263 { FRVBF_INSN_FTIEQ, SEM_FN_NAME (frvbf,ftieq) },
28264 { FRVBF_INSN_FTILG, SEM_FN_NAME (frvbf,ftilg) },
28265 { FRVBF_INSN_FTIUE, SEM_FN_NAME (frvbf,ftiue) },
28266 { FRVBF_INSN_FTIUL, SEM_FN_NAME (frvbf,ftiul) },
28267 { FRVBF_INSN_FTIGE, SEM_FN_NAME (frvbf,ftige) },
28268 { FRVBF_INSN_FTILT, SEM_FN_NAME (frvbf,ftilt) },
28269 { FRVBF_INSN_FTIUGE, SEM_FN_NAME (frvbf,ftiuge) },
28270 { FRVBF_INSN_FTIUG, SEM_FN_NAME (frvbf,ftiug) },
28271 { FRVBF_INSN_FTILE, SEM_FN_NAME (frvbf,ftile) },
28272 { FRVBF_INSN_FTIGT, SEM_FN_NAME (frvbf,ftigt) },
28273 { FRVBF_INSN_FTIULE, SEM_FN_NAME (frvbf,ftiule) },
28274 { FRVBF_INSN_FTIU, SEM_FN_NAME (frvbf,ftiu) },
28275 { FRVBF_INSN_FTIO, SEM_FN_NAME (frvbf,ftio) },
28276 { FRVBF_INSN_BREAK, SEM_FN_NAME (frvbf,break) },
28277 { FRVBF_INSN_MTRAP, SEM_FN_NAME (frvbf,mtrap) },
28278 { FRVBF_INSN_ANDCR, SEM_FN_NAME (frvbf,andcr) },
28279 { FRVBF_INSN_ORCR, SEM_FN_NAME (frvbf,orcr) },
28280 { FRVBF_INSN_XORCR, SEM_FN_NAME (frvbf,xorcr) },
28281 { FRVBF_INSN_NANDCR, SEM_FN_NAME (frvbf,nandcr) },
28282 { FRVBF_INSN_NORCR, SEM_FN_NAME (frvbf,norcr) },
28283 { FRVBF_INSN_ANDNCR, SEM_FN_NAME (frvbf,andncr) },
28284 { FRVBF_INSN_ORNCR, SEM_FN_NAME (frvbf,orncr) },
28285 { FRVBF_INSN_NANDNCR, SEM_FN_NAME (frvbf,nandncr) },
28286 { FRVBF_INSN_NORNCR, SEM_FN_NAME (frvbf,norncr) },
28287 { FRVBF_INSN_NOTCR, SEM_FN_NAME (frvbf,notcr) },
28288 { FRVBF_INSN_CKRA, SEM_FN_NAME (frvbf,ckra) },
28289 { FRVBF_INSN_CKNO, SEM_FN_NAME (frvbf,ckno) },
28290 { FRVBF_INSN_CKEQ, SEM_FN_NAME (frvbf,ckeq) },
28291 { FRVBF_INSN_CKNE, SEM_FN_NAME (frvbf,ckne) },
28292 { FRVBF_INSN_CKLE, SEM_FN_NAME (frvbf,ckle) },
28293 { FRVBF_INSN_CKGT, SEM_FN_NAME (frvbf,ckgt) },
28294 { FRVBF_INSN_CKLT, SEM_FN_NAME (frvbf,cklt) },
28295 { FRVBF_INSN_CKGE, SEM_FN_NAME (frvbf,ckge) },
28296 { FRVBF_INSN_CKLS, SEM_FN_NAME (frvbf,ckls) },
28297 { FRVBF_INSN_CKHI, SEM_FN_NAME (frvbf,ckhi) },
28298 { FRVBF_INSN_CKC, SEM_FN_NAME (frvbf,ckc) },
28299 { FRVBF_INSN_CKNC, SEM_FN_NAME (frvbf,cknc) },
28300 { FRVBF_INSN_CKN, SEM_FN_NAME (frvbf,ckn) },
28301 { FRVBF_INSN_CKP, SEM_FN_NAME (frvbf,ckp) },
28302 { FRVBF_INSN_CKV, SEM_FN_NAME (frvbf,ckv) },
28303 { FRVBF_INSN_CKNV, SEM_FN_NAME (frvbf,cknv) },
28304 { FRVBF_INSN_FCKRA, SEM_FN_NAME (frvbf,fckra) },
28305 { FRVBF_INSN_FCKNO, SEM_FN_NAME (frvbf,fckno) },
28306 { FRVBF_INSN_FCKNE, SEM_FN_NAME (frvbf,fckne) },
28307 { FRVBF_INSN_FCKEQ, SEM_FN_NAME (frvbf,fckeq) },
28308 { FRVBF_INSN_FCKLG, SEM_FN_NAME (frvbf,fcklg) },
28309 { FRVBF_INSN_FCKUE, SEM_FN_NAME (frvbf,fckue) },
28310 { FRVBF_INSN_FCKUL, SEM_FN_NAME (frvbf,fckul) },
28311 { FRVBF_INSN_FCKGE, SEM_FN_NAME (frvbf,fckge) },
28312 { FRVBF_INSN_FCKLT, SEM_FN_NAME (frvbf,fcklt) },
28313 { FRVBF_INSN_FCKUGE, SEM_FN_NAME (frvbf,fckuge) },
28314 { FRVBF_INSN_FCKUG, SEM_FN_NAME (frvbf,fckug) },
28315 { FRVBF_INSN_FCKLE, SEM_FN_NAME (frvbf,fckle) },
28316 { FRVBF_INSN_FCKGT, SEM_FN_NAME (frvbf,fckgt) },
28317 { FRVBF_INSN_FCKULE, SEM_FN_NAME (frvbf,fckule) },
28318 { FRVBF_INSN_FCKU, SEM_FN_NAME (frvbf,fcku) },
28319 { FRVBF_INSN_FCKO, SEM_FN_NAME (frvbf,fcko) },
28320 { FRVBF_INSN_CCKRA, SEM_FN_NAME (frvbf,cckra) },
28321 { FRVBF_INSN_CCKNO, SEM_FN_NAME (frvbf,cckno) },
28322 { FRVBF_INSN_CCKEQ, SEM_FN_NAME (frvbf,cckeq) },
28323 { FRVBF_INSN_CCKNE, SEM_FN_NAME (frvbf,cckne) },
28324 { FRVBF_INSN_CCKLE, SEM_FN_NAME (frvbf,cckle) },
28325 { FRVBF_INSN_CCKGT, SEM_FN_NAME (frvbf,cckgt) },
28326 { FRVBF_INSN_CCKLT, SEM_FN_NAME (frvbf,ccklt) },
28327 { FRVBF_INSN_CCKGE, SEM_FN_NAME (frvbf,cckge) },
28328 { FRVBF_INSN_CCKLS, SEM_FN_NAME (frvbf,cckls) },
28329 { FRVBF_INSN_CCKHI, SEM_FN_NAME (frvbf,cckhi) },
28330 { FRVBF_INSN_CCKC, SEM_FN_NAME (frvbf,cckc) },
28331 { FRVBF_INSN_CCKNC, SEM_FN_NAME (frvbf,ccknc) },
28332 { FRVBF_INSN_CCKN, SEM_FN_NAME (frvbf,cckn) },
28333 { FRVBF_INSN_CCKP, SEM_FN_NAME (frvbf,cckp) },
28334 { FRVBF_INSN_CCKV, SEM_FN_NAME (frvbf,cckv) },
28335 { FRVBF_INSN_CCKNV, SEM_FN_NAME (frvbf,ccknv) },
28336 { FRVBF_INSN_CFCKRA, SEM_FN_NAME (frvbf,cfckra) },
28337 { FRVBF_INSN_CFCKNO, SEM_FN_NAME (frvbf,cfckno) },
28338 { FRVBF_INSN_CFCKNE, SEM_FN_NAME (frvbf,cfckne) },
28339 { FRVBF_INSN_CFCKEQ, SEM_FN_NAME (frvbf,cfckeq) },
28340 { FRVBF_INSN_CFCKLG, SEM_FN_NAME (frvbf,cfcklg) },
28341 { FRVBF_INSN_CFCKUE, SEM_FN_NAME (frvbf,cfckue) },
28342 { FRVBF_INSN_CFCKUL, SEM_FN_NAME (frvbf,cfckul) },
28343 { FRVBF_INSN_CFCKGE, SEM_FN_NAME (frvbf,cfckge) },
28344 { FRVBF_INSN_CFCKLT, SEM_FN_NAME (frvbf,cfcklt) },
28345 { FRVBF_INSN_CFCKUGE, SEM_FN_NAME (frvbf,cfckuge) },
28346 { FRVBF_INSN_CFCKUG, SEM_FN_NAME (frvbf,cfckug) },
28347 { FRVBF_INSN_CFCKLE, SEM_FN_NAME (frvbf,cfckle) },
28348 { FRVBF_INSN_CFCKGT, SEM_FN_NAME (frvbf,cfckgt) },
28349 { FRVBF_INSN_CFCKULE, SEM_FN_NAME (frvbf,cfckule) },
28350 { FRVBF_INSN_CFCKU, SEM_FN_NAME (frvbf,cfcku) },
28351 { FRVBF_INSN_CFCKO, SEM_FN_NAME (frvbf,cfcko) },
28352 { FRVBF_INSN_CJMPL, SEM_FN_NAME (frvbf,cjmpl) },
28353 { FRVBF_INSN_CCALLL, SEM_FN_NAME (frvbf,ccalll) },
28354 { FRVBF_INSN_ICI, SEM_FN_NAME (frvbf,ici) },
28355 { FRVBF_INSN_DCI, SEM_FN_NAME (frvbf,dci) },
28356 { FRVBF_INSN_ICEI, SEM_FN_NAME (frvbf,icei) },
28357 { FRVBF_INSN_DCEI, SEM_FN_NAME (frvbf,dcei) },
28358 { FRVBF_INSN_DCF, SEM_FN_NAME (frvbf,dcf) },
28359 { FRVBF_INSN_DCEF, SEM_FN_NAME (frvbf,dcef) },
28360 { FRVBF_INSN_WITLB, SEM_FN_NAME (frvbf,witlb) },
28361 { FRVBF_INSN_WDTLB, SEM_FN_NAME (frvbf,wdtlb) },
28362 { FRVBF_INSN_ITLBI, SEM_FN_NAME (frvbf,itlbi) },
28363 { FRVBF_INSN_DTLBI, SEM_FN_NAME (frvbf,dtlbi) },
28364 { FRVBF_INSN_ICPL, SEM_FN_NAME (frvbf,icpl) },
28365 { FRVBF_INSN_DCPL, SEM_FN_NAME (frvbf,dcpl) },
28366 { FRVBF_INSN_ICUL, SEM_FN_NAME (frvbf,icul) },
28367 { FRVBF_INSN_DCUL, SEM_FN_NAME (frvbf,dcul) },
28368 { FRVBF_INSN_BAR, SEM_FN_NAME (frvbf,bar) },
28369 { FRVBF_INSN_MEMBAR, SEM_FN_NAME (frvbf,membar) },
28370 { FRVBF_INSN_COP1, SEM_FN_NAME (frvbf,cop1) },
28371 { FRVBF_INSN_COP2, SEM_FN_NAME (frvbf,cop2) },
28372 { FRVBF_INSN_CLRGR, SEM_FN_NAME (frvbf,clrgr) },
28373 { FRVBF_INSN_CLRFR, SEM_FN_NAME (frvbf,clrfr) },
28374 { FRVBF_INSN_CLRGA, SEM_FN_NAME (frvbf,clrga) },
28375 { FRVBF_INSN_CLRFA, SEM_FN_NAME (frvbf,clrfa) },
28376 { FRVBF_INSN_COMMITGR, SEM_FN_NAME (frvbf,commitgr) },
28377 { FRVBF_INSN_COMMITFR, SEM_FN_NAME (frvbf,commitfr) },
28378 { FRVBF_INSN_COMMITGA, SEM_FN_NAME (frvbf,commitga) },
28379 { FRVBF_INSN_COMMITFA, SEM_FN_NAME (frvbf,commitfa) },
28380 { FRVBF_INSN_FITOS, SEM_FN_NAME (frvbf,fitos) },
28381 { FRVBF_INSN_FSTOI, SEM_FN_NAME (frvbf,fstoi) },
28382 { FRVBF_INSN_FITOD, SEM_FN_NAME (frvbf,fitod) },
28383 { FRVBF_INSN_FDTOI, SEM_FN_NAME (frvbf,fdtoi) },
28384 { FRVBF_INSN_FDITOS, SEM_FN_NAME (frvbf,fditos) },
28385 { FRVBF_INSN_FDSTOI, SEM_FN_NAME (frvbf,fdstoi) },
28386 { FRVBF_INSN_NFDITOS, SEM_FN_NAME (frvbf,nfditos) },
28387 { FRVBF_INSN_NFDSTOI, SEM_FN_NAME (frvbf,nfdstoi) },
28388 { FRVBF_INSN_CFITOS, SEM_FN_NAME (frvbf,cfitos) },
28389 { FRVBF_INSN_CFSTOI, SEM_FN_NAME (frvbf,cfstoi) },
28390 { FRVBF_INSN_NFITOS, SEM_FN_NAME (frvbf,nfitos) },
28391 { FRVBF_INSN_NFSTOI, SEM_FN_NAME (frvbf,nfstoi) },
28392 { FRVBF_INSN_FMOVS, SEM_FN_NAME (frvbf,fmovs) },
28393 { FRVBF_INSN_FMOVD, SEM_FN_NAME (frvbf,fmovd) },
28394 { FRVBF_INSN_FDMOVS, SEM_FN_NAME (frvbf,fdmovs) },
28395 { FRVBF_INSN_CFMOVS, SEM_FN_NAME (frvbf,cfmovs) },
28396 { FRVBF_INSN_FNEGS, SEM_FN_NAME (frvbf,fnegs) },
28397 { FRVBF_INSN_FNEGD, SEM_FN_NAME (frvbf,fnegd) },
28398 { FRVBF_INSN_FDNEGS, SEM_FN_NAME (frvbf,fdnegs) },
28399 { FRVBF_INSN_CFNEGS, SEM_FN_NAME (frvbf,cfnegs) },
28400 { FRVBF_INSN_FABSS, SEM_FN_NAME (frvbf,fabss) },
28401 { FRVBF_INSN_FABSD, SEM_FN_NAME (frvbf,fabsd) },
28402 { FRVBF_INSN_FDABSS, SEM_FN_NAME (frvbf,fdabss) },
28403 { FRVBF_INSN_CFABSS, SEM_FN_NAME (frvbf,cfabss) },
28404 { FRVBF_INSN_FSQRTS, SEM_FN_NAME (frvbf,fsqrts) },
28405 { FRVBF_INSN_FDSQRTS, SEM_FN_NAME (frvbf,fdsqrts) },
28406 { FRVBF_INSN_NFDSQRTS, SEM_FN_NAME (frvbf,nfdsqrts) },
28407 { FRVBF_INSN_FSQRTD, SEM_FN_NAME (frvbf,fsqrtd) },
28408 { FRVBF_INSN_CFSQRTS, SEM_FN_NAME (frvbf,cfsqrts) },
28409 { FRVBF_INSN_NFSQRTS, SEM_FN_NAME (frvbf,nfsqrts) },
28410 { FRVBF_INSN_FADDS, SEM_FN_NAME (frvbf,fadds) },
28411 { FRVBF_INSN_FSUBS, SEM_FN_NAME (frvbf,fsubs) },
28412 { FRVBF_INSN_FMULS, SEM_FN_NAME (frvbf,fmuls) },
28413 { FRVBF_INSN_FDIVS, SEM_FN_NAME (frvbf,fdivs) },
28414 { FRVBF_INSN_FADDD, SEM_FN_NAME (frvbf,faddd) },
28415 { FRVBF_INSN_FSUBD, SEM_FN_NAME (frvbf,fsubd) },
28416 { FRVBF_INSN_FMULD, SEM_FN_NAME (frvbf,fmuld) },
28417 { FRVBF_INSN_FDIVD, SEM_FN_NAME (frvbf,fdivd) },
28418 { FRVBF_INSN_CFADDS, SEM_FN_NAME (frvbf,cfadds) },
28419 { FRVBF_INSN_CFSUBS, SEM_FN_NAME (frvbf,cfsubs) },
28420 { FRVBF_INSN_CFMULS, SEM_FN_NAME (frvbf,cfmuls) },
28421 { FRVBF_INSN_CFDIVS, SEM_FN_NAME (frvbf,cfdivs) },
28422 { FRVBF_INSN_NFADDS, SEM_FN_NAME (frvbf,nfadds) },
28423 { FRVBF_INSN_NFSUBS, SEM_FN_NAME (frvbf,nfsubs) },
28424 { FRVBF_INSN_NFMULS, SEM_FN_NAME (frvbf,nfmuls) },
28425 { FRVBF_INSN_NFDIVS, SEM_FN_NAME (frvbf,nfdivs) },
28426 { FRVBF_INSN_FCMPS, SEM_FN_NAME (frvbf,fcmps) },
28427 { FRVBF_INSN_FCMPD, SEM_FN_NAME (frvbf,fcmpd) },
28428 { FRVBF_INSN_CFCMPS, SEM_FN_NAME (frvbf,cfcmps) },
28429 { FRVBF_INSN_FDCMPS, SEM_FN_NAME (frvbf,fdcmps) },
28430 { FRVBF_INSN_FMADDS, SEM_FN_NAME (frvbf,fmadds) },
28431 { FRVBF_INSN_FMSUBS, SEM_FN_NAME (frvbf,fmsubs) },
28432 { FRVBF_INSN_FMADDD, SEM_FN_NAME (frvbf,fmaddd) },
28433 { FRVBF_INSN_FMSUBD, SEM_FN_NAME (frvbf,fmsubd) },
28434 { FRVBF_INSN_FDMADDS, SEM_FN_NAME (frvbf,fdmadds) },
28435 { FRVBF_INSN_NFDMADDS, SEM_FN_NAME (frvbf,nfdmadds) },
28436 { FRVBF_INSN_CFMADDS, SEM_FN_NAME (frvbf,cfmadds) },
28437 { FRVBF_INSN_CFMSUBS, SEM_FN_NAME (frvbf,cfmsubs) },
28438 { FRVBF_INSN_NFMADDS, SEM_FN_NAME (frvbf,nfmadds) },
28439 { FRVBF_INSN_NFMSUBS, SEM_FN_NAME (frvbf,nfmsubs) },
28440 { FRVBF_INSN_FMAS, SEM_FN_NAME (frvbf,fmas) },
28441 { FRVBF_INSN_FMSS, SEM_FN_NAME (frvbf,fmss) },
28442 { FRVBF_INSN_FDMAS, SEM_FN_NAME (frvbf,fdmas) },
28443 { FRVBF_INSN_FDMSS, SEM_FN_NAME (frvbf,fdmss) },
28444 { FRVBF_INSN_NFDMAS, SEM_FN_NAME (frvbf,nfdmas) },
28445 { FRVBF_INSN_NFDMSS, SEM_FN_NAME (frvbf,nfdmss) },
28446 { FRVBF_INSN_CFMAS, SEM_FN_NAME (frvbf,cfmas) },
28447 { FRVBF_INSN_CFMSS, SEM_FN_NAME (frvbf,cfmss) },
28448 { FRVBF_INSN_FMAD, SEM_FN_NAME (frvbf,fmad) },
28449 { FRVBF_INSN_FMSD, SEM_FN_NAME (frvbf,fmsd) },
28450 { FRVBF_INSN_NFMAS, SEM_FN_NAME (frvbf,nfmas) },
28451 { FRVBF_INSN_NFMSS, SEM_FN_NAME (frvbf,nfmss) },
28452 { FRVBF_INSN_FDADDS, SEM_FN_NAME (frvbf,fdadds) },
28453 { FRVBF_INSN_FDSUBS, SEM_FN_NAME (frvbf,fdsubs) },
28454 { FRVBF_INSN_FDMULS, SEM_FN_NAME (frvbf,fdmuls) },
28455 { FRVBF_INSN_FDDIVS, SEM_FN_NAME (frvbf,fddivs) },
28456 { FRVBF_INSN_FDSADS, SEM_FN_NAME (frvbf,fdsads) },
28457 { FRVBF_INSN_FDMULCS, SEM_FN_NAME (frvbf,fdmulcs) },
28458 { FRVBF_INSN_NFDMULCS, SEM_FN_NAME (frvbf,nfdmulcs) },
28459 { FRVBF_INSN_NFDADDS, SEM_FN_NAME (frvbf,nfdadds) },
28460 { FRVBF_INSN_NFDSUBS, SEM_FN_NAME (frvbf,nfdsubs) },
28461 { FRVBF_INSN_NFDMULS, SEM_FN_NAME (frvbf,nfdmuls) },
28462 { FRVBF_INSN_NFDDIVS, SEM_FN_NAME (frvbf,nfddivs) },
28463 { FRVBF_INSN_NFDSADS, SEM_FN_NAME (frvbf,nfdsads) },
28464 { FRVBF_INSN_NFDCMPS, SEM_FN_NAME (frvbf,nfdcmps) },
28465 { FRVBF_INSN_MHSETLOS, SEM_FN_NAME (frvbf,mhsetlos) },
28466 { FRVBF_INSN_MHSETHIS, SEM_FN_NAME (frvbf,mhsethis) },
28467 { FRVBF_INSN_MHDSETS, SEM_FN_NAME (frvbf,mhdsets) },
28468 { FRVBF_INSN_MHSETLOH, SEM_FN_NAME (frvbf,mhsetloh) },
28469 { FRVBF_INSN_MHSETHIH, SEM_FN_NAME (frvbf,mhsethih) },
28470 { FRVBF_INSN_MHDSETH, SEM_FN_NAME (frvbf,mhdseth) },
28471 { FRVBF_INSN_MAND, SEM_FN_NAME (frvbf,mand) },
28472 { FRVBF_INSN_MOR, SEM_FN_NAME (frvbf,mor) },
28473 { FRVBF_INSN_MXOR, SEM_FN_NAME (frvbf,mxor) },
28474 { FRVBF_INSN_CMAND, SEM_FN_NAME (frvbf,cmand) },
28475 { FRVBF_INSN_CMOR, SEM_FN_NAME (frvbf,cmor) },
28476 { FRVBF_INSN_CMXOR, SEM_FN_NAME (frvbf,cmxor) },
28477 { FRVBF_INSN_MNOT, SEM_FN_NAME (frvbf,mnot) },
28478 { FRVBF_INSN_CMNOT, SEM_FN_NAME (frvbf,cmnot) },
28479 { FRVBF_INSN_MROTLI, SEM_FN_NAME (frvbf,mrotli) },
28480 { FRVBF_INSN_MROTRI, SEM_FN_NAME (frvbf,mrotri) },
28481 { FRVBF_INSN_MWCUT, SEM_FN_NAME (frvbf,mwcut) },
28482 { FRVBF_INSN_MWCUTI, SEM_FN_NAME (frvbf,mwcuti) },
28483 { FRVBF_INSN_MCUT, SEM_FN_NAME (frvbf,mcut) },
28484 { FRVBF_INSN_MCUTI, SEM_FN_NAME (frvbf,mcuti) },
28485 { FRVBF_INSN_MCUTSS, SEM_FN_NAME (frvbf,mcutss) },
28486 { FRVBF_INSN_MCUTSSI, SEM_FN_NAME (frvbf,mcutssi) },
28487 { FRVBF_INSN_MDCUTSSI, SEM_FN_NAME (frvbf,mdcutssi) },
28488 { FRVBF_INSN_MAVEH, SEM_FN_NAME (frvbf,maveh) },
28489 { FRVBF_INSN_MSLLHI, SEM_FN_NAME (frvbf,msllhi) },
28490 { FRVBF_INSN_MSRLHI, SEM_FN_NAME (frvbf,msrlhi) },
28491 { FRVBF_INSN_MSRAHI, SEM_FN_NAME (frvbf,msrahi) },
28492 { FRVBF_INSN_MDROTLI, SEM_FN_NAME (frvbf,mdrotli) },
28493 { FRVBF_INSN_MCPLHI, SEM_FN_NAME (frvbf,mcplhi) },
28494 { FRVBF_INSN_MCPLI, SEM_FN_NAME (frvbf,mcpli) },
28495 { FRVBF_INSN_MSATHS, SEM_FN_NAME (frvbf,msaths) },
28496 { FRVBF_INSN_MQSATHS, SEM_FN_NAME (frvbf,mqsaths) },
28497 { FRVBF_INSN_MSATHU, SEM_FN_NAME (frvbf,msathu) },
28498 { FRVBF_INSN_MCMPSH, SEM_FN_NAME (frvbf,mcmpsh) },
28499 { FRVBF_INSN_MCMPUH, SEM_FN_NAME (frvbf,mcmpuh) },
28500 { FRVBF_INSN_MABSHS, SEM_FN_NAME (frvbf,mabshs) },
28501 { FRVBF_INSN_MADDHSS, SEM_FN_NAME (frvbf,maddhss) },
28502 { FRVBF_INSN_MADDHUS, SEM_FN_NAME (frvbf,maddhus) },
28503 { FRVBF_INSN_MSUBHSS, SEM_FN_NAME (frvbf,msubhss) },
28504 { FRVBF_INSN_MSUBHUS, SEM_FN_NAME (frvbf,msubhus) },
28505 { FRVBF_INSN_CMADDHSS, SEM_FN_NAME (frvbf,cmaddhss) },
28506 { FRVBF_INSN_CMADDHUS, SEM_FN_NAME (frvbf,cmaddhus) },
28507 { FRVBF_INSN_CMSUBHSS, SEM_FN_NAME (frvbf,cmsubhss) },
28508 { FRVBF_INSN_CMSUBHUS, SEM_FN_NAME (frvbf,cmsubhus) },
28509 { FRVBF_INSN_MQADDHSS, SEM_FN_NAME (frvbf,mqaddhss) },
28510 { FRVBF_INSN_MQADDHUS, SEM_FN_NAME (frvbf,mqaddhus) },
28511 { FRVBF_INSN_MQSUBHSS, SEM_FN_NAME (frvbf,mqsubhss) },
28512 { FRVBF_INSN_MQSUBHUS, SEM_FN_NAME (frvbf,mqsubhus) },
28513 { FRVBF_INSN_CMQADDHSS, SEM_FN_NAME (frvbf,cmqaddhss) },
28514 { FRVBF_INSN_CMQADDHUS, SEM_FN_NAME (frvbf,cmqaddhus) },
28515 { FRVBF_INSN_CMQSUBHSS, SEM_FN_NAME (frvbf,cmqsubhss) },
28516 { FRVBF_INSN_CMQSUBHUS, SEM_FN_NAME (frvbf,cmqsubhus) },
28517 { FRVBF_INSN_MADDACCS, SEM_FN_NAME (frvbf,maddaccs) },
28518 { FRVBF_INSN_MSUBACCS, SEM_FN_NAME (frvbf,msubaccs) },
28519 { FRVBF_INSN_MDADDACCS, SEM_FN_NAME (frvbf,mdaddaccs) },
28520 { FRVBF_INSN_MDSUBACCS, SEM_FN_NAME (frvbf,mdsubaccs) },
28521 { FRVBF_INSN_MASACCS, SEM_FN_NAME (frvbf,masaccs) },
28522 { FRVBF_INSN_MDASACCS, SEM_FN_NAME (frvbf,mdasaccs) },
28523 { FRVBF_INSN_MMULHS, SEM_FN_NAME (frvbf,mmulhs) },
28524 { FRVBF_INSN_MMULHU, SEM_FN_NAME (frvbf,mmulhu) },
28525 { FRVBF_INSN_MMULXHS, SEM_FN_NAME (frvbf,mmulxhs) },
28526 { FRVBF_INSN_MMULXHU, SEM_FN_NAME (frvbf,mmulxhu) },
28527 { FRVBF_INSN_CMMULHS, SEM_FN_NAME (frvbf,cmmulhs) },
28528 { FRVBF_INSN_CMMULHU, SEM_FN_NAME (frvbf,cmmulhu) },
28529 { FRVBF_INSN_MQMULHS, SEM_FN_NAME (frvbf,mqmulhs) },
28530 { FRVBF_INSN_MQMULHU, SEM_FN_NAME (frvbf,mqmulhu) },
28531 { FRVBF_INSN_MQMULXHS, SEM_FN_NAME (frvbf,mqmulxhs) },
28532 { FRVBF_INSN_MQMULXHU, SEM_FN_NAME (frvbf,mqmulxhu) },
28533 { FRVBF_INSN_CMQMULHS, SEM_FN_NAME (frvbf,cmqmulhs) },
28534 { FRVBF_INSN_CMQMULHU, SEM_FN_NAME (frvbf,cmqmulhu) },
28535 { FRVBF_INSN_MMACHS, SEM_FN_NAME (frvbf,mmachs) },
28536 { FRVBF_INSN_MMACHU, SEM_FN_NAME (frvbf,mmachu) },
28537 { FRVBF_INSN_MMRDHS, SEM_FN_NAME (frvbf,mmrdhs) },
28538 { FRVBF_INSN_MMRDHU, SEM_FN_NAME (frvbf,mmrdhu) },
28539 { FRVBF_INSN_CMMACHS, SEM_FN_NAME (frvbf,cmmachs) },
28540 { FRVBF_INSN_CMMACHU, SEM_FN_NAME (frvbf,cmmachu) },
28541 { FRVBF_INSN_MQMACHS, SEM_FN_NAME (frvbf,mqmachs) },
28542 { FRVBF_INSN_MQMACHU, SEM_FN_NAME (frvbf,mqmachu) },
28543 { FRVBF_INSN_CMQMACHS, SEM_FN_NAME (frvbf,cmqmachs) },
28544 { FRVBF_INSN_CMQMACHU, SEM_FN_NAME (frvbf,cmqmachu) },
28545 { FRVBF_INSN_MQXMACHS, SEM_FN_NAME (frvbf,mqxmachs) },
28546 { FRVBF_INSN_MQXMACXHS, SEM_FN_NAME (frvbf,mqxmacxhs) },
28547 { FRVBF_INSN_MQMACXHS, SEM_FN_NAME (frvbf,mqmacxhs) },
28548 { FRVBF_INSN_MCPXRS, SEM_FN_NAME (frvbf,mcpxrs) },
28549 { FRVBF_INSN_MCPXRU, SEM_FN_NAME (frvbf,mcpxru) },
28550 { FRVBF_INSN_MCPXIS, SEM_FN_NAME (frvbf,mcpxis) },
28551 { FRVBF_INSN_MCPXIU, SEM_FN_NAME (frvbf,mcpxiu) },
28552 { FRVBF_INSN_CMCPXRS, SEM_FN_NAME (frvbf,cmcpxrs) },
28553 { FRVBF_INSN_CMCPXRU, SEM_FN_NAME (frvbf,cmcpxru) },
28554 { FRVBF_INSN_CMCPXIS, SEM_FN_NAME (frvbf,cmcpxis) },
28555 { FRVBF_INSN_CMCPXIU, SEM_FN_NAME (frvbf,cmcpxiu) },
28556 { FRVBF_INSN_MQCPXRS, SEM_FN_NAME (frvbf,mqcpxrs) },
28557 { FRVBF_INSN_MQCPXRU, SEM_FN_NAME (frvbf,mqcpxru) },
28558 { FRVBF_INSN_MQCPXIS, SEM_FN_NAME (frvbf,mqcpxis) },
28559 { FRVBF_INSN_MQCPXIU, SEM_FN_NAME (frvbf,mqcpxiu) },
28560 { FRVBF_INSN_MEXPDHW, SEM_FN_NAME (frvbf,mexpdhw) },
28561 { FRVBF_INSN_CMEXPDHW, SEM_FN_NAME (frvbf,cmexpdhw) },
28562 { FRVBF_INSN_MEXPDHD, SEM_FN_NAME (frvbf,mexpdhd) },
28563 { FRVBF_INSN_CMEXPDHD, SEM_FN_NAME (frvbf,cmexpdhd) },
28564 { FRVBF_INSN_MPACKH, SEM_FN_NAME (frvbf,mpackh) },
28565 { FRVBF_INSN_MDPACKH, SEM_FN_NAME (frvbf,mdpackh) },
28566 { FRVBF_INSN_MUNPACKH, SEM_FN_NAME (frvbf,munpackh) },
28567 { FRVBF_INSN_MDUNPACKH, SEM_FN_NAME (frvbf,mdunpackh) },
28568 { FRVBF_INSN_MBTOH, SEM_FN_NAME (frvbf,mbtoh) },
28569 { FRVBF_INSN_CMBTOH, SEM_FN_NAME (frvbf,cmbtoh) },
28570 { FRVBF_INSN_MHTOB, SEM_FN_NAME (frvbf,mhtob) },
28571 { FRVBF_INSN_CMHTOB, SEM_FN_NAME (frvbf,cmhtob) },
28572 { FRVBF_INSN_MBTOHE, SEM_FN_NAME (frvbf,mbtohe) },
28573 { FRVBF_INSN_CMBTOHE, SEM_FN_NAME (frvbf,cmbtohe) },
d03ea14f
DB
28574 { FRVBF_INSN_MNOP, SEM_FN_NAME (frvbf,mnop) },
28575 { FRVBF_INSN_MCLRACC_0, SEM_FN_NAME (frvbf,mclracc_0) },
28576 { FRVBF_INSN_MCLRACC_1, SEM_FN_NAME (frvbf,mclracc_1) },
b34f6357
DB
28577 { FRVBF_INSN_MRDACC, SEM_FN_NAME (frvbf,mrdacc) },
28578 { FRVBF_INSN_MRDACCG, SEM_FN_NAME (frvbf,mrdaccg) },
28579 { FRVBF_INSN_MWTACC, SEM_FN_NAME (frvbf,mwtacc) },
28580 { FRVBF_INSN_MWTACCG, SEM_FN_NAME (frvbf,mwtaccg) },
28581 { FRVBF_INSN_MCOP1, SEM_FN_NAME (frvbf,mcop1) },
28582 { FRVBF_INSN_MCOP2, SEM_FN_NAME (frvbf,mcop2) },
28583 { FRVBF_INSN_FNOP, SEM_FN_NAME (frvbf,fnop) },
28584 { 0, 0 }
28585};
28586
28587/* Add the semantic fns to IDESC_TABLE. */
28588
28589void
28590SEM_FN_NAME (frvbf,init_idesc_table) (SIM_CPU *current_cpu)
28591{
28592 IDESC *idesc_table = CPU_IDESC (current_cpu);
28593 const struct sem_fn_desc *sf;
28594 int mach_num = MACH_NUM (CPU_MACH (current_cpu));
28595
28596 for (sf = &sem_fns[0]; sf->fn != 0; ++sf)
28597 {
28598 const CGEN_INSN *insn = idesc_table[sf->index].idata;
28599 int valid_p = (CGEN_INSN_VIRTUAL_P (insn)
28600 || CGEN_INSN_MACH_HAS_P (insn, mach_num));
28601#if FAST_P
28602 if (valid_p)
28603 idesc_table[sf->index].sem_fast = sf->fn;
28604 else
28605 idesc_table[sf->index].sem_fast = SEM_FN_NAME (frvbf,x_invalid);
28606#else
28607 if (valid_p)
28608 idesc_table[sf->index].sem_full = sf->fn;
28609 else
28610 idesc_table[sf->index].sem_full = SEM_FN_NAME (frvbf,x_invalid);
28611#endif
28612 }
28613}
28614
This page took 1.040737 seconds and 4 git commands to generate.